FreshRSS

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Un nouveau malware s’appuie sur Windows Subsystem for Linux

17 septembre 2021 à 07:56

Des chercheurs en sécurité ont découvert un nouveau malware basé sur Linux et créé pour s'appuyer sur Windows Subsystem for Linux, le composant de Windows qui permet d'utiliser Linux sur Windows.

Les pirates cherchent à trouver une façon d'infecter une machine tout en restant furtif, dans le but de ne pas être détecté par les solutions antivirus. Visiblement, il s'intéresse de près à Windows Subsytem for Linux (WSL) puisque de premiers essais ont été détectés. En regardant les analyses sur le site VirusTotal, on peut voir effectivement que le virus passe entre les mailles du filet, pour le moment.

Ces premiers essais remontent au mois de mai dernier, et depuis, de nouveaux essais sont effectués toutes les deux ou trois semaines. Cela prouve que les pirates travaillent activement sur le sujet.

Le fichier malveillant qui cherche à s'appuyer sur WSL contient lui-même la souche malveillante, ou alors il la récupère depuis un serveur distant, d'après les chercheurs de chez Lumen. D'après eux, l'étape d'après serait d'injecter le malware dans un processus en cours d'exécution par l'intermédiaire d'un appel sur l'API Windows.

Ce fichier malveillant s'appuie sur Python 3 et il se présente sous la forme d'un exécutable ELF pour Debian. La majorité des solutions de sécurité pour Windows n'ont pas de signatures pour les fichiers au format ELF car ils ne sont pas communs sous Windows. Une variante basée à la fois sur PowerShell et Python a également été repérée et celle-ci serait capable de désactiver la solution antivirus de manière permanente grâce à un script qui tourne toutes les 20 secondes.

L'utilisation de WSL sur une machine Windows représente une porte d'entrée supplémentaire pour les attaques et de nouvelles possibilités, et ça les pirates l'ont bien compris. Néanmoins, WSL reste un système très intéressant et très pratique que j'adore personnellement.

Pour rappel, vous pouvez retrouver sur le site une série de 10 articles au sujet de l'utilisation de WSL sous Windows.

Source

The post Un nouveau malware s’appuie sur Windows Subsystem for Linux first appeared on IT-Connect.

Comment changer la police par défaut dans Terminal Windows

22 août 2021 à 11:44

Windows Terminal est l'application de terminal par défaut dans Windows 11. Voici des façons faciles différentes d'ouvrir la borne Windows dans Windows 11.

Contrairement à Windows 10, le nouveau terminal Windows est l'application de terminal par défaut dans Windows 11. Vous n'avez plus besoin de l'installer manuellement. Il est inclus par défaut. Par rapport aux précédents shell de Windows, Windows Terminal est moderne, rapide et puissant. Si vous avez vu Windows Terminal, vous savez qu'il fournit une interface utilisateur unifiée pour accéder à toutes les shell de Windows dans un emplacement central avec une interface utilisateur à onglets.
Grâce à l'option Profils, vous pouvez créer plusieurs profils avec différentes configurations de shell.
Parmi les options pour personnaliser l'affichage et l'apparence, on peut modifier les police de caractères.

Dans ce tutoriel, nous allons voir comment changer la police par défaut dans Terminal Windows.

Comment changer la police par défaut dans Terminal Windows

Comment changer la police par défaut dans Terminal Windows

Par défaut, chaque profil utilise la même police de caractères Cascadia Mono.

La police d'écriture de Windows Terminal
  • Ouvrez Windows Terminal
  • Puis cliquez sur le menu déroulant sur la barre de titre
  • Sélectionnez l'option Paramètres. Notez que vous pouvez accéder directement aux paramètres par le raccourci clavier : CTRL+,
Ouvrir les paramètres de Windows Terminal
  • Ensuite cliquez sur le profil depuis le menu de gauche 1
  • Puis cliquez sur le menu Apparence en haut 2
Accéder au menu Apparence de Windows Terminal
  • Puis vous accédez aux paramètres de polices, texte. Vous pouvez modifier le type de police et en dessous la taille de la police
  • Enfin plus bas, vous pouvez définir l'épaisseur du texte
Comment changer la police par défaut dans Terminal Windows
  • Cliquez sur Enregistrer en bas à droite de l'écran pour prendre en compte les modifications
  • Ouvrez un nouvel onglet du profil pour bénéficier des changements de police de caractères
Comment changer la police par défaut dans Terminal Windows
Bravo ! vous avez réussi à changer la police sur Windows Terminal.

Modifier la police par défaut globale sur Windows Terminal

Comme nous venons de le voir, les modifications des polices se font sur les profils.
Mais comment changer la police par défaut de manière globale sur Windows Terminal ?
Cela se fait dans le fichier de configuration settings.json.

  • Cliquez en bas à gauche sur Ouvrir le fichier JSON
Ouvrez le fichier de configuration settings.json de Windows Terminal
  • Cela ouvre le fichier de configuration Windows Terminal dans l'éditeur de texte. Repérez la ligne du profil par défaut :
"defaults": {},
Modifier la police par défaut globale sur Windows Terminal
  • Puis saisissez fontFace suivi du nom de la police en respectant la syntaxe suivante
"defaults": {
		"fontFace": "Consolas"
	},
  • Enregistrez les modifications par le raccourci clavier CTRL+S
Modifier la police par défaut globale sur Windows Terminal
Bravo ! vous avez réussi à changer la police par défaut de Windows Terminal.

L’article Comment changer la police par défaut dans Terminal Windows est apparu en premier sur malekal.com.

Comment changer l’image d’arrière plan de Windows Terminal (Personnalisation)

21 août 2021 à 13:44

Pour rendre votre Windows Terminal plus esthétique et le personnaliser, il est possible de changer l'image d'arrière plan.
La possibilité de définir l'image de fond de terminal Windows est une option de personnalisation très utiles.
Ainsi, lors de l'exécution de plusieurs coquilles sous la borne Windows, régler des images d'arrière-plan pour chaque coquille le rend beaucoup plus accueillant et facile à reconnaître.

Dans ce tutoriel, je vous guide pour changer l'image d'arrière plan de Windows Terminal de Windows 11 et Windows 10.

Comment changer l'image d'arrière plan de Windows Terminal

Comment changer l'image d'arrière plan de Windows Terminal

Vous pouvez définir des images de fond séparées pour chaque shell du terminal. La bonne chose, contrairement aux versions plus anciennes où vous devez modifier le fichier JSON des paramètres, vous pouvez maintenant utiliser le panneau Paramètres pour définir ou modifier l'image d'arrière-plan.

  • Ouvrez Windows Terminal
  • Puis cliquez sur le menu déroulant sur la barre de titre
  • Sélectionnez l'option Paramètres. Notez que vous pouvez accéder directement aux paramètres par le raccourci clavier : CTRL+,
Ouvrir les paramètres du terminal de Windows
  • Ensuite cliquez sur le profil depuis le menu de gauche 1
  • Puis cliquez sur le menu Apparence en haut 2
Accéder au menu Apparence de Windows Terminal
  • Descendez pour chercher le paramètre Image d'arrière plan
  • Cliquez sur Parcourir
Comment changer l'image d'arrière plan de Windows Terminal
  • Puis naviguez dans vos dossiers pour sélectionner l'image de fond à appliquer
Comment changer l'image d'arrière plan de Windows Terminal
  • Enfin cliquez sur sur le bouton Enregistrer en bas à droite
Comment changer l'image d'arrière plan de Windows Terminal
  • La nouvelle image de fond s'applique automatiquement sur Windows Terminal
Comment changer l'image d'arrière plan de Windows Terminal

Personnaliser l'apparence de l'image de fond dans le terminal Windows

Après avoir défini l'image de fond de terminal Windows, vous pouvez modifier son apparence et vous sentir en modifiant la transparence, l'acrylique, la position et les effets d'étirement.

Toutes ces options sont disponibles sous l'onglet "Apparence" des paramètres Shell.
d".

  • Accédez au menu Apparence du profil
  • Si la position par défaut de l'image de fond n'est pas à votre goût, changez-la sous la section Alignement de l'image de fond
  • Pour rendre l'image un peu transparente, modifiez le curseur Opacité de l'image de fond
Personnaliser l'apparence de l'image de fond dans le terminal Windows

De la même manière, vous pouvez activer l'effet translucide flou en allumant l'option acrylique.

  • Descendez plus bas pour activer Acrylique
  • Puis réglez l'opacité de l'acrylique
  • Enfin cliquez sur sur le bouton Enregistrer en bas à droite
Personnaliser l'apparence de l'image de fond dans le terminal Windows
  • Automatiquement la transparence s'applique au profil
Personnaliser l'apparence de l'image de fond dans le terminal Windows

Changer et personnaliser l'image d'arrière plan de Windows Terminal par settings.json

Vous pouvez aussi personnaliser l'image d'arrière plan et transparence directement dans le fichier settings.json.
On accède à ce dernier par le bouton Ouvrir le fichier JSON en bas à gauche de la page des paramètres.

Ouvrez le fichier de configuration settings.json de Windows Terminal

Dans la partie profil, jouez sur les paramètres suivants pour changer l'image de fond et l'opacité.

"backgroundImage" : "C:/Users/MaK/Images/malekalbanner-phpbb.png",
"backgroundImageOpacity" : 0.75,
"backgroundImageStretchMode" : "fill",

backgroundImageOpacity est la valeur qui permet de jouer sur l'opacité de l'image du Windows Terminal.

Modifier l'image de fond et transparence du Windows Terminal

La transparence se règle grâce à acrylicOpacity.
Les valeurs vont de 0.75 à 0.5.
Enfin useAcrylic doit être réglé sur True.

Par exemple sur le profil Windows Powershell :

{
                "useAcrylic": true
                "acrylicOpacity": 0.31,
                "backgroundImage" : "C:/Users/MaK/Images/malekalbanner-phpbb.png",
                "backgroundImageOpacity" : 0.75,
                "backgroundImageStretchMode" : "fill",
                "commandline": "powershell.exe",
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "hidden": false,
                "name": "Windows PowerShell"             
            },

Pour appliquer la transparence à tous les profils, il faut modifier la section defaults :

  • Modifiez le fichier settings.son
  • Cherchez la sections defaults
  • Enfin modifiez la en ajoutant le code suivant
"defaults":
        {
            "acrylicOpacity" : 0.08,
            "backgroundImage" : "C:/Users/MaK/Images/malekalbanner-phpbb.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStretchMode" : "fill",
            "closeOnExit" : true,
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 12,
            "historySize" : 9001,
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "useAcrylic" : true,
        },

L’article Comment changer l’image d’arrière plan de Windows Terminal (Personnalisation) est apparu en premier sur malekal.com.

Comment ajouter un nouveau profil dans Windows Terminal

20 août 2021 à 09:55

Windows Terminal vous permet de créer plusieurs profils de shell différents.
Voici comment ajouter un nouveau profil sous Windows Terminal.

Dans Windows 11 et Windows 10, Microsoft propose une nouvelle application de Terminal.
Celle-ci regroupe tous les Shells dans une seule application pour centraliser la ligne de commandes.
Ainsi avec Windows Terminal, vous pouvez ouvrir un Shell PowerShell, Invite de commandes, une distribution Linux Ubuntu, Debian ou autres via WSL mais aussi Azure Cloud Shell.
Les applications et les développeurs peuvent également ajouter un nouveau profil dans le terminal Windows. C'est l'une des raisons pour lesquelles vous voyez le shell Linux dans Windows Terminal dès que vous installez un système d'exploitation basé sur Linux via le sous-système Windows pour Linux.
Outre les profils par défaut, il peut y avoir des situations dans lesquelles vous devez créer des profils personnalisés sous Windows Terminal. Le nouveau profil peut être un nouveau shell ou dupliquer un shell existant ou un shell existant avec des arguments et une configuration personnalisée. Dans ces cas, vous pouvez facilement créer et ajouter un nouveau profil sous Windows Terminal.
Enfin puisque vous pouvez personnaliser les profils de terminal Windows individuellement, il sera facile de différencier les profils en double.

Ce tutoriel rapide et simple me permet de vous montrer comment ajouter un nouveau profil sous Windows Terminal.

Comment ajouter un nouveau profil dans Windows Terminal

Comment ajouter un nouveau profil dans Windows Terminal

  • Ouvrez Windows Terminal
  • Puis cliquez sur le menu déroulant sur la barre de titre
  • Sélectionnez l'option Paramètres. Notez que vous pouvez accéder directement aux paramètres par le raccourci clavier : CTRL+,
Ouvrir les paramètres du terminal de Windows
  • Ensuite cliquez sur Ajouter un nouveau profil dans le menu de gauche
Comment ajouter un nouveau profil dans Windows Terminal
  • Vous avez la possibilité de dupliquer un profil existant. Pour créer un nouveau profil de zéro, cliquez sur le bouton bleu en haut Nouveau profil vide
Comment ajouter un nouveau profil dans Windows Terminal
  • Puis saisissez les informations du profil, commencez par saisir un Nom
  • Puis dans ligne de commandes, cliquez sur Parcourir pour naviguer dans vos dossiers et sélectionnez l'exécutable du profil. Dans notre exemple, j'ajoute l'exécutable de Cygwin

(Facultatif) Si vous souhaitez définir un répertoire de départ personnalisé, vous pouvez le faire en décochez la case "Utiliser le répertoire de processus parent" et en ajoutant le chemin au champ Démarrer le répertoire.
Cette option est bénéfique si vous souhaitez que la coquille commence dans un répertoire spécifique plutôt que dans le répertoire par défaut.

Comment ajouter un nouveau profil dans Windows Terminal
  • Puis dans Icône, cliquez sur Parcourir pour sélectionner l'icône du profil, en général, en sélectionnant le fichier EXE. Sinon utilisez le fichier C:\Windows\system32\shell32.dll ou C:\Windows\System32\imageres.dll pour ouvrir la bibliothèque d'icônes de Windows
Comment ajouter un nouveau profil dans Windows Terminal
  • Enfin saisissez le nom de l'onglet tel qu'il apparaîtra lorsque vous ouvrez ce dernier
Comment ajouter un nouveau profil dans Windows Terminal
Vous pouvez personnaliser l'affichage de ce profil, notamment en modifiant l'image d'arrière plan pour mieux identifier ce dernier.
Cela se fait depuis le menu Apparence. Pour plus de détails, suivre ce tutoriel : Comment changer l'image d'arrière plan de Windows Terminal (Personnalisation).
  • Enfin cliquez sur Enregistrer en bas à droite
Comment ajouter un nouveau profil dans Windows Terminal
  • Le nouveau profil Windows Terminal s'ajoute dans la liste de gauche
Comment ajouter un nouveau profil dans Windows Terminal

Enfin vous pouvez très facilement ouvrir ce nouveau profil :

  • Cliquez sur le menu déroulant sur la barre de titre
  • Le nouveau profil doit apparaître, cliquez dessus
Comment ajouter un nouveau profil dans Windows Terminal
  • Dans mon cas, Cygwin s'ouvre dans une fenêtre différente et pas dans Windows Terminal
Comment ajouter un nouveau profil dans Windows Terminal
Bravo ! vous avez réussi à ajouter et créer un nouveau profil sur Windows Terminal.

L’article Comment ajouter un nouveau profil dans Windows Terminal est apparu en premier sur malekal.com.

Comment ouvrir Windows Terminal sur Windows 11

19 août 2021 à 14:00

Windows Terminal est l'application de terminal par défaut dans Windows 11.
Voici plusieurs façons faciles pour ouvrir Windows Terminal dans Windows 11.

Contrairement à Windows 10, Windows Terminal est l'application de terminal par défaut dans Windows 11.
Il est est moderne, rapide et puissant avec une interface utilisateur unifiée pour accéder à toutes les shell de Windows dans un emplacement centralisé avec une interface utilisateur à onglets.
Vous pouvez créer plusieurs profils avec différentes configurations de shell : PowerShell, WSL, Azure Cloud Shell ou Invite de commandes.
Sans parler, le soutien aux fonctionnalités avancées telles que le rendu GPU, la transparence, opacité, etc.

Ce tutoriel rapide et simple vous montre les différentes manières d'ouvrir Windows Terminal dans Windows 11.

Comment ouvrir Windows Terminal sur Windows 11

Comment ouvrir Windows Terminal sur Windows 11

Depuis le clic droit du menu Démarrer

Les outils Windows les plus utilisés sont toujours disponibles dans le menu Win + X.. Auparavant, Windows PowerShell est disponible dans le menu Win + X. Dans Windows 11, cette option a été remplacée par le terminal Windows.
C'est la façon la plus rapide pour accéder au Terminal de Windows 11.

  • Appuyez sur le raccourci
    + X ou cliquez avec le bouton droit de la souris sur le menu Démarrer.
  • Dans le menu Flyout, sélectionnez l'option "Windows Terminal". Si vous souhaitez ouvrir le terminal Windows avec les droits de l'administrateur, sélectionnez l'option "Terminal Windows (admin)"
Ouvrir Windows Terminal sur Windows 11 avec le clic droit du menu Démarrer

Par les applications du menu Démarrer

Voici une méthode classique puisqu'elle consiste à ouvrir l'application Terminal à partir de la liste des applications du menu Démarrer de Windows 11.

  • Cliquez sur le menu Démarrer de Windows 11
  • Puis en haut à toutes les applications
Ouvrir toutes les applications du menu Démarrer de Windows 11
  • Descendez dans les W pour ouvrir le Windows Terminal
Ouvrir Windows Terminal sur Windows 11 avec le menu Démarrer

Avec la commande wt

Comme avec une invite de commande ou PowerShell, vous pouvez également ouvrir Windows Terminal à l'aide de la commande Exécuter. Voici comment faire.

  • Sur votre clavier, appuyez sur les touches
    + R
  • puis dans la fenêtre exécutez saisissez wt
  • Windows Terminal s'ouvre
Ouvrir Windows Terminal sur Windows 11 avec la commande wt
  • Windows Terminal s'ouvre avec le profil par défaut

Par la recherche Windows

  • Ouvrez le menu Démarrer de Windows 11
  • Ensuite saisissez Windows Terminal afin de lancer une recherche
  • Enfin cliquez sur le résultat pour ouvrir l'application Terminal
Ouvrir Windows Terminal sur Windows 11 par la recherche Windows
  • Vous accédez à l'application Windows Terminal

Depuis le bureau de Windows 11

Cette autre méthode est aussi très rapide pour accéder à Windows Terminal.

  • Accédez au bureau de Windows 11
  • Faites un clic droit pour ouvrir le menu contextuel
  • Puis cliquez sur Ouvrir dans Windows Terminal
Ouvrir Windows Terminal  de Windows 11 depuis le bureau de Windows 11

Depuis l'explorateur de fichiers

Saviez-vous que vous pouvez ouvrir le terminal Windows directement à partir d'Explorateur de fichiers? La meilleure chose à propos de cette méthode est qu'elle ouvrira directement la terminaison Windows dans le dossier de votre choix plutôt que dans le dossier de maison ou le dossier System32 par défaut.
Ceci est très utile si vous ne voulez pas naviguer dans un dossier après avoir ouvert le terminal Windows manuellement.

Pour ouvrir le terminal Windows depuis l'explorateur de fichiers :

  • Appuyez sur
    + E pour ouvrir l'explorateur de fichiers
  • Ouvrez le disque vers le dossier qui vous interresse
  • Puis cliquez avec le bouton droit de la souris sur le dossier
  • Enfin sélectionnez l'option Ouvrir dans la borne Windows
Ouvrir Windows Terminal sur Windows 11 avec l'explorateur de fichiers
  • Windows Terminal s'ouvre sur le dossier

Depuis le gestionnaire de tâches

Enfin dans cette dernière méthode pour accéder à Windows Terminal, je vous propose de le faire depuis le gestionnaire de tâches.
Cela est utile, si le menu Démarrer de Windows 11 se bloque ou ne répond pas.

Ouvrir le gestionnaire de tâches sur Windows 11
  • Ensuite cliquez sur le menu Fichier > Exécuter une nouvelle tâche
  • Saisissez wt puis cliquez sur OK. Pour ouvrir Windows Terminal en administrateur, cochez l'option Créez cette tâche avec les privilèges d'administration
Ouvrir Windows Terminal sur Windows 11 avec le gestionnaire de tâches
  • Vous arrivez sur l'interface de Windows Terminal

L’article Comment ouvrir Windows Terminal sur Windows 11 est apparu en premier sur malekal.com.

EasyWSL : Exécuter Linux dans Windows 10, 11 WSL

16 août 2021 à 10:13

WSL (Windows SubSystem Linux) est un sous système qui permet d'exécuter Linux dans Windows 10, 11.
On active WSL puis télécharge et installe la distribution Linux depuis le Windows Store.
Le Microsoft Store propose de nombreuses distributions Preguilt Linux WSL, telles que Fedora, Ubuntu, Alpine, Kali, Debian, etc.
Cependant, de nombreuses distributions Linux populaires telles que Archlinux ou Centos sont indisponibles ou nécessitent de les payer.
Il s'agit également de ce nombre de distributions WSL payantes qui ne sont pas créées par les responsables initiaux,

Si vous ne trouvez pas votre sous-système Windows préféré pour la distribution Linux disponible dans Microsoft Store, un nouveau programme appelé EasyWSL peut convertir presque toute image Docker Linux en une distribution WSL.
EasyWSL permet de rendre l'installation de Linux dans Windows 10, 11 plus simple mais donne aussi accès à beaucoup plus de distributions Linux à partir de Docker.

Dans ce tutoriel, je vous explique comment utiliser EasyWSL afin d'exécuter n'importe quelle distribution Linux dans Windows 10, 11 grâce à WSL.

EasyWSL : Exécuter Linux dans Windows 10, 11 WSL

EasyWSL : Installer Linux dans Windows 10, 11 WSL

Activer Windows SubSystem Linux

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Installer WSL (Windows Subsystem for Linux) sur Windows 10
  • Redémarrez votre PC pour prendre en compte les changements

Installer EasyWSL

  • Téléchargez EasyWSL depuis ce lien :
Installer EasyWSL pour exécuter Linux dans Windows 10, 11 WSL
  • Puis double-cliquez sur EasyWSL pour l'exécuter
Installer EasyWSL pour exécuter Linux dans Windows 10, 11 WSL
  • La protection SmartScreen peut se déclencher et afficher un message Windows a protégé votre ordinateur, cliquez sur Exécuter quand même
Installer EasyWSL pour exécuter Linux dans Windows 10, 11 WSL

Installer une distribution Linux WSL dans Windows 10, 11 avec EasyWSL

  • EasyWSL s'ouvre et affiche la liste des distributions Linux supportées par défaut
Installer une distribution Linux WSL dans Windows 10, 11 avec EasyWSL
  • Chaque distribution Linux est identifiée par un numéro :
    1. ArchLinux
    2. Ubuntu 20.04
    3. Ubuntu 20.10
    4. Alpine
    5. DebianStable
    6. DebianUnstable
    7. DebianTesting
    8. CentOS
    9. Clear Linux
    10. Fedora
    11. Manjaro
    12. Scientific Linux
    13. Crux Linux
    14. Void Linux
    15. Kali Linux
    16. OpenSuse Leap
    17. Parrot Security OS
    18. Gentoo
  • Saisissez le numéro de la distribution Linux que vous souhaitez installer sur votre PC en Windows 10, 11. Par exemple pour installer Fedora, saisissez 10
  • Puis indiquez le nom de la distribution, cela permet d'installer plusieurs distribution Linux identiques sous des noms différents
  • Ensuite indiquez le chemin d'installation, sinon laissez tel quel en faisant entrée
  • L'installation de Linux s'effectue
Installer une distribution Linux WSL dans Windows 10, 11 avec EasyWSL

Exécuter Linux dans Windows 10, 11

  • Une fois terminé, vous pouvez lancer votre distribution par la commande suivante :
wsl -d [Nom Distribution]
  • Par exemple, je l'ai nommé Fedora, donc je dois saisir :
wsl -d Fedora
Exécuter Linux dans Windows 10, 11 avec EasyWSL
Exécuter Linux dans Windows 10, 11 avec EasyWSL

Au besoin, vous pouvez créer un raccourci sur votre bureau afin d'exécuter Linux en WSL :

Bravo ! vous avez réussi à exécuter Linux dans Windows 10, 11 avec EasyWSL.

Installer une distribution Linux depuis un Docker

EasyWSL ne s'arrête pas là car il permet aussi d'installer des distributions Linux non présente dans le Microsoft Store.
En effet, comme expliqué dans l'introduction, EasyWSL peut convertir presque toute image Docker Linux en une distribution WSL
Ainsi, on peut installer un Linux dans Windows par une image Docker.

  • Relancez EasyWSL
  • Puis saisissez 19 (pour Specify a docker image)
  • Ensuite saisissez le nom du Docker sous la forme : image:tag. Par exemple pour installer la dernière version de Photon, il faut saisir photon:latest
  • Ensuite nommez la distribution Linux
  • Puis le chemin d'installation
Installer une distribution Linux dans Windows 10, 11 depuis un Docker avec EasyWSL
  • A nouveau on peut exécuter Linux par la commande wsl -d, soit donc ici wsl -d Photon
  • Le terminal s'ouvre alors dans Windows 10, 11
Installer une distribution Linux dans Windows 10, 11 depuis un Docker avec EasyWSL

L’article EasyWSL : Exécuter Linux dans Windows 10, 11 WSL est apparu en premier sur malekal.com.

Installer un serveur Web LAMP (Apache, MySQL, PHP) sur WSL 2

30 juillet 2021 à 11:30

I. Présentation

Dans ce tutoriel, nous allons installer un serveur Web sur WSL 2 (Windows Subsystem for Linux 2), à partir d'une distribution Ubuntu (Linux). L'objectif étant d'avoir un serveur LAMP complet basé sur Apache2, MySQL et PHP.

Pour ce dixième épisode de ma série d'articles au sujet de WSL, nous allons mettre en œuvre un rôle sur une distribution Linux. Puisque WSL 2 intègre un noyau Linux complet, c'est l'occasion de monter un serveur Web facilement, sans devoir monter sa propre machine virtuelle, et sans devoir installer WAMP ou XAMPP sur sa machine Windows directement.

Comme nous avons pu le voir, on peut facilement accéder aux données de notre machine Linux depuis Windows, ce qui sera pratique au quotidien ! Du coup, avec WSL 2, on a tout ce qu'il faut à disposition pour monter un serveur Web le temps du développement, avant de le basculer en production sur un serveur dédié à cet usage.

Si l'idée vous plaît, vous n'avez plus qu'à suivre les étapes ci-dessous.

II. Installation du serveur LAMP sur Ubuntu via WSL

Je pars du principe que WSL 2 est déjà actif et que vous avez déjà une distribution Ubuntu 20.04 installée également. Pour ma part, je me trouve sur Windows 10 pour réaliser les manipulations.

wsl -l -v

Je vais démarrer ma distribution Ubuntu et directement accéder à sa console.

wsl -d Ubuntu

Commençons par mettre à jour le cache des paquets :

sudo apt update

Puis, mettons à jour les paquets en eux-mêmes pour partir sur une bonne base :

sudo apt upgrade

Une fois cette première étape franchie, passons à l'installation des paquets nécessaires à la mise en œuvre d'un serveur LAMP sous Ubuntu.

Pour faciliter l'installation des paquets Apache2, MySQL et PHP, ainsi que certains modules, nous allons directement utiliser le meta package "lamp-server". Cela va éviter d'installer les composants séparément, mais cela fonctionnerait aussi.

Voici la commande à exécuter (le caractère "^" à la fin est important) :

sudo apt-get install lamp-server^

Sur la copie d'écran ci-dessous, vous pouvez voir tous les paquets qui seront installés :

Serveur LAMP WSL 2

III. S'assurer du bon fonctionnement du serveur Web

Une fois que l'installation des paquets est effectuée, on peut démarrer notre serveur Web Apache2 :

sudo service apache2 start

D'ailleurs, il est livré avec une page index.html très basique, mais qui va permettre de s'assurer que le serveur Web est joignable. Ce fichier est disponible dans le répertoire "/var/www/html", qui correspond au répertoire du site par défaut d'Apache2.

ls /var/www/html/

Depuis la machine Windows, nous pouvons accéder à la page d'accueil de notre site Web via un navigateur :

http://localhost

Serveur Apache avec WSL

Pour vérifier que notre moteur de script PHP est bien actif lui aussi, on peut créer un fichier phpinfo.php (ou un autre nom) à la racine de notre site Web :

sudo nano /var/www/html/phpinfo.php

Dans ce fichier, indiquez le code suivant :

<?php
phpinfo();
?>

La fonction phpinfo() permet d'afficher la configuration actuelle de PHP sur notre serveur. Elle est très intéressante et riche en information. Il faudra penser à supprimer ce fichier quand votre site deviendra public : les informations ne doivent pas être à la disposition de n'importe qui...

Si l'on retourne sur la machine Windows 10 et que l'on accède à notre page phpinfo.php, on voit bien que ça fonctionne !

http://localhost/phpinfo.php

Pour éditer la configuration du site par défaut d'Apache2, il faut s'attaquer au fichier suivant :

sudo nano /etc/apache2/sites-available/000-default.conf

Quant à la partie MySQL 8.0, elle mérite aussi un peu d'attention. Commençons par démarrer le service :

sudo service mysql start

La commande ci-dessous va permettre d'obtenir la version actuelle de MySQL que l'on a déployé sur notre distribution Ubuntu :

sudo mysql -V
mysql Ver 8.0.25-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

Ensuite, nous allons exécuter une opération de sécurisation de notre instance MySQL en exécutant la commande suivante :

sudo mysql_secure_installation

Un assistant va s'exécuter et vous allez avoir le droit à un interrogatoire ! 😉

Première étape : le composant "Validate Password", que je vous recommande d'activer en indiquant "y". Il va permettre entre autre d'imposer une politique de mots de passe au niveau de votre MySQL. Ensuite, il faut choisir une politique de validation des mots de passe entre LOW (0), MEDIUM (1) et STRONG (2).

Une fois que c'est fait, vous devrez définir le mot de passe "root" de l'instance MySQL : un mot de passe complexe à ne surtout pas perdre !

S'en suit une série de questions... Pour sécuriser au minimum votre instance MySQL, je vous recommande de répondre "Oui" ("y") à toutes les questions. Par exemple, cela va permettre d'empêcher les accès anonymes et de désactiver les connexions distantes avec l'utilisateur "root".

Une fois que c'est fait, vous pouvez accéder à la ligne de commande MySQL grâce à la commande suivante :

sudo mysql -u root -p

Il ne reste plus qu'à saisir le mot de passe "root" de MySQL.

Notre serveur LAMP sur Ubuntu, via WSL 2 (et Windows 10) est en place ! Il ne reste plus qu'à configurer le serveur Web comme on pourrait le faire dans une machine virtuelle classique. Libre à vous de déployer votre application favorite sur ce serveur : WordPress, Nextcloud, etc... Ou développer votre propre projet.

The post Installer un serveur Web LAMP (Apache, MySQL, PHP) sur WSL 2 first appeared on IT-Connect.

WSL 2 : gérer les ressources allouées à Linux avec .wslconfig

28 juillet 2021 à 11:30

I. Présentation

Lorsque l'on utile WSL 2 sous Windows pour faire tourner des distributions Linux, nous n'avons pas trop de visibilité sur les ressources utilisées, ou en tout cas, sur le maximum de ressources que peuvent utiliser nos machines Linux. Microsoft a intégré un fichier de configuration nommé ".wslconfig" qui permet de gérer les ressources, c'est ce que nous allons voir.

II. WSL : ressources utilisées par les distributions Linux

Pour commencer, cherchons à voir quelles sont les ressources consommées par les distributions Linux. Je vous rappelle que l'on peut voir l'état de chaque distribution Linux (démarrée/arrêtée) avec la commande suivante :

wsl -l -v

Ensuite, au niveau des processus, nous avons bien des processus "wsl.exe", mais ils ne sont pas du tout représentatifs des ressources consommées. Pour avoir des informations précises, il faut s'intéresser à d'autres processus : vmmem. Ce processus permet de visualiser les ressources consommées par les machines virtuelles, en l'occurrence dans notre cas, la machine virtuelle WSL qui fait tourner les distributions Linux.

À partir de la console PowerShell, on peut voir facilement les ressources consommées par ce processus :

Get-Process vmmem

Bien entendu, vous pouvez voir ces informations à partir du Gestionnaire des tâches, en mode graphique. On peut voir sur la copie d'écran ci-dessous que le démarrage d'une distribution Linux entraîne la création d'un nouveau processus, et surtout cela entraîne une consommation de RAM : 436 Mo. On peut également voir le taux d'occupation du CPU.

Ressources consommées par WSL (RAM et CPU)

Si la distribution Linux tourne, mais que l'on ne fait rien avec, elle consomme relativement peu de RAM. Encore que, sur une machine avec 8 Go de RAM, on peut vite le sentir.

Ce que je vous recommande, c'est d'arrêter une distribution Linux quand vous ne l'utilisez plus (sans pour autant arrêter la machine virtuelle WSL). Comme nous l'avions vu dans un autre article, cette opération s'effectue avec la commande suivante :

wsl -t <nom de la distribution>
wsl -t Ubuntu

Voilà qui devrait libérer un peu de ressources sur votre machine Windows. Passons maintenant à la gestion des ressources.

III. Gérer les ressources avec .wslconfig

Depuis Windows 10 2004 (ou 20H1 ou May 2020 Update), il est possible de gérer les ressources utilisables par WSL grâce à un fichier .wslconfig que l'on va venir créer à la racine du profil de notre utilisateur :

C:\Users\<mon utilisateur>\.wslconfig

Par exemple, pour l'utilisateur "Florian" :

C:\Users\Florian\.wslconfig

Au sujet de la consommation des ressources, voici ce que nous dit la documentation de Microsoft :

  • Mémoire (RAM) : 50 % de la mémoire RAM totale de Windows ou 8 Go (la valeur la plus faible étant retenue). Sur les versions antérieures à la Build 20175 : 80 % de la mémoire RAM totale de Windows, en sachant qu'actuellement Windows 10 21H1 correspond à la Build 19043.
  • Mémoire (SWAP) : 25 % de la taille de la mémoire RAM disponible pour Windows, arrondie au Go le plus proche.
  • Processeur : la machine WSL peut utiliser le même nombre de processeurs que Windows, autrement dit tous les cœurs du CPU.

En lisant ces informations, on voit que la machine virtuelle WSL 2 peut consommer beaucoup de ressources sur notre machine. Nous allons pouvoir maîtriser cette consommation de ressources en jouant avec le fichier .wslconfig.

Commencez par créer un fichier nommé ".wslconfig" au sein de votre profil utilisateur. Pour rappel, cela va donner :

C:\Users\<mon utilisateur>\.wslconfig

Ou tout simplement :

%USERPROFILE%\.wslconfig

Dans ce fichier, commencez par créer une section sur la première ligne :

[wsl2]

A. WSL 2 : limiter la RAM

Pour limiter la RAM utilisable au maximum, par exemple à 4 Go, on va spécifier :

memory=4GB

Si vous souhaitez définir une valeur très faible, comme 512 Mo, c'est possible aussi :

memory=512MB

B. WSL 2 : limiter la mémoire SWAP

Pour la mémoire SWAP, le principe est le même qu'avec la RAM, si ce n'est que le nom du paramètre est différent :

swap=2GB

Pour désactiver le SWAP, on fera :

swap=0

Par définition, la mémoire SWAP s'appuie sur un fichier. Ici, ce sera sur un disque virtuel au format VHDX. Par défaut, ce disque est créé dans le profil de l'utilisateur à l'emplacement suivant :

%USERPROFILE%\AppData\Local\Temp\swap.vhdx

Pour définir un nouvel emplacement, Microsoft propose une option, mais elle ne fonctionne pas chez moi...! Voici tout de même pour information, si vous voulez essayer :

swapFile="C:\TEMP\swap.vhdx"

C. WSL 2 : gérer le nombre de processeurs virtuels

Pour le CPU, nous pouvons définir le nombre de processeurs virtuels de la machine virtuelle, comme on le ferait avec une VM dans Hyper-V.

Pour limiter la machine virtuelle à deux processeurs virtuels, voici la ligne à inclure :

processors=2

D. WSL 2 : exemple de fichier .wslconfig

Si l'on reprend les directives que l'on vient de voir, cela nous donne le résultat suivant :

[wsl2]
memory=4GB
swap=2GB
processors=2

Enregistrez le fichier .wslconfig et fermez-le pour le moment. Pour que les changements soient pris en compte, nous devons arrêter la VM WSL 2 et la relancer. Pour l'arrêter, voici la commande :

wsl --shutdown

Pour la relancer, il suffit de lancer une distribution Linux ou d'exécuter la commande "wsl"... La mécanique va se lancer ! 😉

Si l'on regarde les ressources de la distribution Linux, on peut voir que la RAM est bien définie à 4 Go et qu'il n'y a pas de SWAP (je l'ai défini à "0" dans le fichier de configuration pour cet essai) :

top

Le fichier de configuration .wslconfig intègre deux, trois, options supplémentaires. Vous pouvez spécifier un noyau Linux personnalisé (option kernel), mais aussi désactiver la possibilité de faire du port forwarding vers votre distribution Linux lorsque vous ciblez "localhost" (comme on a pu voir dans les épisodes précédents).

localhostForwarding=false

Voilà, vous connaissez l'essentiel du fichier de configuration .wslconfig pour gérer les ressources de WSL ! Vous allez retrouver le contrôle !

N'oubliez pas de consulter les autres épisodes de cette série d'articles pour maîtriser pleinement WSL sous Windows.

The post WSL 2 : gérer les ressources allouées à Linux avec .wslconfig first appeared on IT-Connect.

Utilisation de WSL 2 et Docker pour exécuter des containers Linux sur Windows

22 juillet 2021 à 11:30

I. Présentation

Pour utiliser les containers sous Windows, il est possible d'utiliser le client Docker Desktop. Dans ces containers, on peut faire tourner des applications Windows. Néanmoins, il ne permet pas d'exécuter des containers Linux directement sur Windows, à cause des dépendances et de l'absence du noyau Linux. Lorsque l'on est sur Linux, on peut exécuter des applications Linux au sein de containers.

Sous Windows, grâce à Docker Desktop et la fonctionnalité Windows Subsystem for Linux, nous allons pouvoir contourner cette limitation. Depuis Windows, nous allons pouvoir exécuter des containers Linux grâce à une distribution Linux qui tourne avec WSL 2.

En effet, avec WSL 2, Microsoft a introduit un changement significatif dans l'architecture de la fonctionnalité WSL. En version 2, WSL intègre un noyau Linux complet, ce qui va nous permettre d'exécuter des containers Linux en mode natif.

Dans ce tutoriel, nous allons voir comment installer et configurer Docker pour WSL 2 dans le but d'exécuter des containers Linux à partir d'une machine Windows 10. Cet article est un épisode de ma série dédiée à WSL.

🎥 Episode n°8 disponible au format vidéo (comme les précédents) :

II. Prérequis

Avant de commencer, nous partons du principe que vous avez déjà :

  • Une machine Windows avec la fonctionnalité WSL 2 installée
  • Une distribution Linux opérationnelle, via WSL (Ubuntu, Kali Linux, etc.)

Dès que c'est bon, vous pouvez passer à la suite.

III. Installer Docker Desktop pour WSL 2

Commencez par télécharger "Docker Desktop" (environ 500 Mo) sur le site officiel de Docker :

Démarrez l'installation, elle est très simple. Il faut veiller à bien cocher "Install required Windows components for WSL 2" lors de l'installation.

Docker WSL 2

Lancez l'installation, et patientez... Coffee break.

Lorsque l'installation est terminée, vous devez redémarrer votre machine. Cliquez sur "Close and restart" pour procéder au redémarrage.

IV. Configurer Docker Desktop pour WSL 2

Notre machine est équipée de WSL 2 et de Docker Desktop : c'est une bonne nouvelle. Je vous propose d'ouvrir une console PowerShell et d'exécuter la commande ci-dessous pour lister les distributions Linux enregistrées dans WSL :

wsl -l -v

On remarque que mes distributions "Kali-linux" et "Ubuntu" sont bien là. Docker quant à lui a ajouté deux distributions, ou plutôt deux composants. Voyez par vous-même :

Les entrées "docker-desktop" et "docker-desktop-data" servent respectivement à gérer les containers Docker que l'on va exécuter et à assurer le stockage dans un disque virtuel.

Maintenant, ouvrez Docker Desktop s'il n'est pas déjà ouvert. Cliquez sur l'icône paramètres en haut à droite. Dans l'onglet "General", je vous invite à cocher l'option "Use the WSL 2 based engine" si elle n'est pas déjà cochée.

Ensuite, cliquez sur l'onglet "Resources" puis sur "WSL Integration". C'est ici qu'il faut sélectionner les distributions pour lesquelles vous souhaitez activer la prise en charge de Docker.

Par défaut, l'option "Enable integration with my default WSL distro" est cochée. Cela signifie que votre distribution Linux par défaut bénéficie déjà de Docker. Pour savoir quelle est votre distribution Linux par défaut, utilisez la commande "wsl -l" : ce sera précisé "(par défaut)" au niveau de la distribution par défaut actuelle.

Dès que votre choix est fait, vous pouvez continuer. Tout en sachant qu'il sera possible d'y revenir à tout moment, vous connaissez le chemin maintenant.

V. Exécuter son premier container Docker sur WSL 2

Ce que je vous propose, c'est d'ouvrir une distribution pour laquelle vous avez activé Docker. Pour ma part, je vais accéder à la distribution Kali-Linux en mode console :

wsl -d Kali-linux

Une fois dans la console Linux, je vous invite à exécuter le container Docker "Hello World". Très basique, il va permettre de valider que Docker fonctionne bien sur notre machine Linux.

Voici la commande à exécuter :

docker run hello-world

L'image "hello-world" ne sera pas trouvée sur la machine, donc le container sera téléchargé depuis la librairie officielle. Une fois que ce sera fait, vous devriez obtenir deux lignes qui permettent de confirmer que tout est OK :

Hello from Docker!
This message shows that your installation appears to be working correctly.

En image, cela nous donne :

Si l'on regarde le message ci-dessus, on peut voir que nous sommes invités à exécuter un autre container. Ce container va permettre d'exécuter une imagine Ubuntu avec un shell (bash) en mode interactif. Je vous invite à tester :

docker run -it ubuntu bash

Suite à l'exécution de cette commande, on se retrouve avec un shell Linux entre les mains. Ce container est un environnement isolé de Windows et de notre distribution Linux gérée par WSL (bien qu'il en dépende). Si l'on regarde le nom de l'hôte, on peut voir qu'il a été généré aléatoirement.

En parallèle, ouvrez une seconde console au sein de votre distribution Linux et exécutez la commande ci-dessous pour lister les containers Docker actifs :

docker ps

Le container Docker basé sur l'image Ubuntu est bien en cours d'exécution.

VI. Un serveur Web avec Docker et WSL 2

Pour finir, nous allons exécuter un serveur Web Lighttpd en utilisant l'image "sebp/lighttpd". D'après la documentation, voici comment s'exécute cette image :

sudo docker run --rm -t -v <home-directory>:/var/www/localhost/htdocs -p <http-port>:80 sebp/lighttpd

Pour le "home-directory", c'est-à-dire la racine du site Web, nous allons choisir la racine du dossier personnel de l'utilisateur "florian", ce dernier étant l'utilisateur de ma distribution Kali Linux. Ce qui donne : /home/florian.

Nous devons aussi choisir un port d'écoute. Au sein du serveur Lighttpd, le port 80 sera utilisé, mais nous devons le mapper vers un autre port au niveau de notre distribution Linux (WSL). Par exemple, le port 8080.

Avant d'exécuter le container Docker, on va créer la page d'index de notre site :

nano /home/florian/index.html

Avec le contenu suivant :

<html>
<head></head>
<body>
<p>Hello from IT-Connect :)</p>
</body>
</html>

Maintenant, on va démarrer notre serveur Web :

sudo docker run --rm -t -v /home/florian:/var/www/localhost/htdocs -p 8080:80 sebp/lighttpd

L'image va être téléchargée et le container lancé... Pour s'y connecter, il suffit de prendre un navigateur et d'indiquer l'adresse suivante :

http://localhost:8080

ou

http://<adresse-IP-distribution-Linux>:8080

Nous arrivons bien à atteindre notre serveur Web puisque notre page index.html s'affiche ! Bravo ! 😉

Cela n'était qu'un exemple : maintenant à vous de jouer pour exécuter les containers Docker de vos rêves 😉.

The post Utilisation de WSL 2 et Docker pour exécuter des containers Linux sur Windows first appeared on IT-Connect.

WSL : personnaliser le démarrage de Linux avec /etc/wsl.conf

19 juillet 2021 à 11:30

I. Présentation

Le démarrage de chaque distribution Linux qui tourne via WSL (Windows Subsystem for Linux) peut être personnalisé avec le fichier de configuration /etc/wsl.conf.

Si vous souhaitez maîtriser le fichier de configuration "/etc/wsl.conf", vous êtes au bon endroit ! Dans ce tutoriel, je vais vous expliquer comment utiliser le fichier wsl.conf pour personnaliser le démarrage de la distribution Linux gérée par WSL.

Ready ? Go...

🎥 Ce 7ème épisode sur WSL est également disponible au format vidéo :

II. Création du fichier /etc/wsl.conf

Par défaut, le fichier de configuration /etc/wsl.conf n'existe pas. Nous devons le créer grâce à une simple commande :

sudo touch /etc/wsl.conf

Ensuite, il ne reste plus qu'à le modifier à l'aide de notre éditeur préféré (oui, mon éditeur préféré c'est nano, ahah) :

sudo nano /etc/wsl.conf

Le fichier est créé, il est ouvert, c'est bien, mais on fait quoi maintenant ?

Sachez que pour le moment, il y a quatre sections prises en charge sur les versions stables de Windows :

[user]
[automount]
[network]
[interop]

Passons à la suite, où je vais vous montrer quelques exemples.

Reportez-vous aussi à la documentation Microsoft de wsl.conf.

III. WSL [user] : modifier l'utilisateur par défaut

Commençons en douceur : la section [user] accepte un seul paramètre nommé "default". Il sert à spécifier l'utilisateur qui doit être connecté par défaut lorsque l'on démarre la distribution Linux. Bien entendu, cet utilisateur doit exister au préalable, ce qui signifie qu'il doit être créé avec la commande "adduser".

Au sein du fichier wsl.conf, le principe est le suivant : on commence par déclarer le bloc :

[user]

Puis, on ajoute notre directive en dessous. Pour définir "itconnect" comme utilisateur par défaut, cela donne :

[user]
default=itconnect

Au prochain redémarrage, on sera directement connecté avec ce compte sur cette distribution.

Fichier wsl.conf - Exemple [user]

IV. WSL [automount] : Monter les disques locaux de Windows

La section [automount] va permettre de monter les disques locaux de Windows au sein de la distribution Linux. De cette manière, vous pouvez accéder aux données de votre machine Windows depuis Linux. Cette section permet aussi de monter un partage SMB au sein de Linux, automatiquement.

Au sein du fichier wsl.conf, voici comment monter automatiquement les disques Windows dans Linux, au sein de la racine "/windows/" :

[automount]
enabled=true
root=/windows/

Après redémarrage de la machine Linux, ici Ubuntu, on voit bien que je suis directement au sein du dossier "/windows/c/" qui correspond au disque C de Windows.

ls -l
Accès au disque C de Windows depuis Linux

L'alternative consiste à monter manuellement le lecteur ou à partir du fichier /etc/fstab qui permet de déclarer les points de montage (et donc de monter un partage distant via SMB). Cela est possible grâce à la directive mountFsTab de la section [automount] qui est par défaut sur True.

V. WSL [network] : reprendre le contrôle de resolv.conf et hosts

La section [network] sert à paramétrer deux options :

  • generateHosts : est-ce qu'il faut générer le fichier /etc/hosts ? Il sert à déclarer l'adresse localhost, mais aussi d'autres adresses si l'on veut (idéale pour des tests). Avec WSL, il reprend le contenu du fichier hosts de Windows.
  • generateResolvConf : est-ce qu'il faut générer le fichier /etc/resolv.conf ? Il sert à déclarer le DNS, sans lui impossible d'utiliser Internet

Par défaut, ces deux options sont à "True" c'est-à-dire que les fichiers sont générés et préconfigurés. Ce qui permet d'avoir Internet sur la machine, en s'appuyant sur votre machine Windows. Le problème, c'est que si vous modifiez ces fichiers, à chaque redémarrage ce sera écrasé.

Définir ces options à "False" va permettre de reprendre le contrôle sur ces deux fichiers. Par exemple, cela va permettre de définir un DNS personnalisé sur votre machine.

[network]
generateHosts=false
generateResolvConf=false

Si l'on prend l'exemple de "generateResolvConf" qui correspond au fichier /etc/resolv.conf. Actuellement, son contenu est le suivant :

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.30.224.1

Si l'on veut définir un DNS personnalisé dans WSL, par exemple le DNS local de notre entreprise, voici ce qu'il faut faire. Définir l'option sur "False" comme ci-dessus :

[network]
generateResolvConf=false

Redémarrer la machine WSL (depuis Windows ou Linux) :

wsl --shutdown

Retourner sur le Shell Linux et supprimer le fichier /etc/resolv.conf dans le but de le recréer, sinon nous ne pouvons pas le modifier.

sudo rm /etc/resolv.conf

On modifie le fichier (ce qui va le recréer en même temps) :

sudo nano /etc/resolv.conf

On ajoute notre serveur DNS personnalisé :

nameserver 192.168.100.11

On valide, voilà nous avons défini un serveur DNS personnalisé sur notre distribution Linux ! Au prochain redémarrage, le fichier ne sera pas écrasé ! 😉

Il est à noter que si vous déclarez generateResolvConf sur "False" et que vous ne définissez pas de DNS vous-même dans le fichier, votre machine Linux ne pourra plus résoudre les noms.

VI. WSL [interop] : empêcher l'ouverture des programmes Windows depuis Linux

La section [interop] agit sur l'interopérabilité entre les deux systèmes : Windows et Linux. En fait, à partir du shell Linux, vous pouvez exécuter des commandes Windows pour ouvrir des programmes. Essayez les deux commandes ci-dessous, vous verrez :

notepad.exe
calc.exe

La section [interop] a deux paramètres possibles :

  • enabled : permets d'activer ou désactiver la prise en charge des commandes Windows depuis Linux. Par défaut, c'est sur "True" (vrai). Lorsque c'est False (faux), ce n'est plus possible
  • appendWindowsPath : permet d'ajouter les chemins de la variable Windows "PATH", notamment "C:\Windows\System32", à la variable d'environnement $PATH de Linux. Par défaut, c'est sur "True" ce qui permet de trouver le Bloc-notes d'un simple "notepad.exe".

L'image ci-dessous permet de voir le contenu de la variable $PATH de Linux lorsque l'option appendWindowsPath est sur True, puis en bas de l'image, lorsqu'elle est sur False.

Sur le même principe que pour les directives précédentes, voici comment déclarer ces options :

[interop]
enabled=false
appendWindowsPath=false

Un redémarrage s'impose, et le tour est joué : le divorce entre la machine Windows et la machine Linux commence maintenant ! 😉

VII. WSL [boot] : exécuter une commande au démarrage de Linux

Comme je vous l'indiquais en janvier 2021, Microsoft a introduit la possibilité d'exécuter une commande au démarrage de Linux via WSL. Néanmoins, c'est disponible uniquement au sein des versions en cours de développement de Windows 10. À l'époque, au sein de Windows 10 Build 21286. À ce jour, et malgré la sortie de Windows 10 21H1, cette nouvelle section [boot] n'est toujours pas incluse dans une version stable de Windows 10.

Malgré tout, je vais vous expliquer son fonctionnement. Comme ça, quand ce sera disponible en version stable, l'article sera déjà au point. Voici comment elle se déclare dans le fichier wsl.conf :

[boot]
command="<commande>"

Reprenons l'exemple proposé par Microsoft et qui permet d'écrire dans un fichier (/home/florian/wslBootHistory.txt) la date et l'heure à chaque fois que la distribution Linux est lancée. Ce qui donne :

[boot]
command="echo WSL booted at $(/bin/date +'%Y-%m-%d %H:%M:%S') >> /home/florian/wslBootHistory.txt"

En image :

Fichier wsl.conf avec [boot]
Fichier wsl.conf avec [boot]
Il n'est pas utile de créer le fichier TXT en amont. Pour tester le bon fonctionnement de notre commande, nous allons faire un shutdown de WSL et relancer le shell de la distribution. Depuis Windows, exécutez :

wsl --shutdown

Ensuite, depuis Linux, si l'on regarde le contenu de notre fichier, on verra qu'il y a bien du contenu :

cat /home/florian/wslBootHistory.txt

Voilà, le tour est joué !

Pour exécuter un script, ce n'est pas plus compliqué :

command="bash /home/florian/monscript.sh"

La section [boot] est très pratique, car elle va permettre de faciliter l'exécution de commandes et de scripts, par exemple pour démarrer un service. Vivement qu'elle soit disponible sur la version stable de WSL !

The post WSL : personnaliser le démarrage de Linux avec /etc/wsl.conf first appeared on IT-Connect.

WSL : comment accéder aux fichiers Linux depuis Windows 10 ?

15 juillet 2021 à 11:30

I. Présentation

Lorsque l'on utilise WSL pour faire tourner une distribution Linux sur Windows 10, chaque système dispose de son propre espace de stockage. Pour diverses raisons, on peut avoir besoin d'accéder aux fichiers de Linux à partir de l'hôte Windows 10. Découvrons comment cela est possible, tout en sachant que les méthodes détaillées dans cet article fonctionnent sur Windows 10 v1903 et supérieur.

Dans cet article, je ne vais pas revenir sur l'installation de WSL et d'une distribution Linux.

🎥 Comme les autres épisodes, il est disponible au format vidéo :

II. Le partage spécial \\wsl$

À partir de Windows, vous pouvez accéder facilement aux données de vos distributions Linux grâce à un partage un peu spécial nommé "wsl$". Ce partage masqué est un point d'entrée pour accéder à toutes vos distributions. Il suffit de spécifier à la suite le nom de la distribution que l'on veut cibler :

\\wsl$\<nom de la distribution>

Par exemple, pour accéder aux fichiers de la distribution Linux :

\\wsl$\Ubuntu

Le fait d'accéder à ce point de montage va démarrer automatiquement la distribution Linux cible, si elle n'était pas déjà démarrée. Ce chemin réseau peut être mappé au travers d'un lecteur réseau.

Aperçu du partage \\wsl$\Ubuntu
Aperçu du partage \\wsl$\Ubuntu

À partir de la console PowerShell, on peut aussi se déplacer au sein de notre machine Linux :

cd \\wsl$\Ubuntu

On pourrait même copier un fichier de Windows vers Linux avec Copy-Item :

Copy-Item -Path "<chemin vers fichier source>" -Destination "\\wsl$\<distribution\<dossier destination>"

Pour copier le fichier "C:\TEMP\Image.png" de Windows vers la machine Linux Ubuntu dans "\\wsl$\Ubuntu\home\florian" :

Copy-Item -Path "C:\TEMP\Image.png" -Destination "\\wsl$\Ubuntu\home\florian"

Lorsque le fichier est copié, il y a un second fichier avec le même nom et l'extension Zone.Identifier qui est créé également. Normalement, il s'agit d'un attribut qui indique de quelle zone provient le fichier, ce qui permet de savoir s'il provient d'Internet. On peut voir ce fichier facilement en listant le contenu du dossier depuis Windows (ou Linux) :

ls \\WSL$\Ubuntu\home\florian\

Ce n'est pas spécifique à la commande PowerShell, car même avec la commande xcopy, le résultat est identique. En revanche, ce n'est pas le cas avec une copie directe depuis l'Explorateur de fichiers.

III. Découverte de la commande "explorer.exe ."

Je vous propose maintenant une seconde façon d'utiliser le partage WSL$, en tout cas pour accéder à ce partage. Lorsque l'on se situe dans la console Linux, on peut ouvrir l'Explorateur de fichiers de Windows directement dans le dossier courant de la machine Linux à l'aide de la commande suivant :

explorer.exe .

Il faut bien spécifier "explorer.exe", car "explorer" ne sera pas reconnu. Lorsque l'on exécute cette commande, si l'on se situe dans "/home/", l'Explorateur de fichiers de Windows va s'ouvrir dans ce dossier :

\\wsl$\Ubuntu\home

Voici un exemple en image :

WSL et la commande explorer.exe

IV. Linux directement dans l'Explorateur de fichiers

Microsoft travaille sur une implémentation plus poussée de Linux au sein de l'Explorateur de fichiers de Windows. Sur les dernières versions Dev de Windows 10, comme ici avec la Build 21390, il y a une entrée "Linux" sur la gauche de l'Explorateur de fichiers.

Cette entrée permet d'accéder aux fichiers de notre distribution Linux gérée par WSL. C'est bien pratique, car c'est automatique ! Lorsque l'on regarde le chemin d'accès, il est différent : ce n'est pas "\\wsl$" mais :

\\wsl.localhost\<nom de la distribution>

Par exemple :

\\wsl.localhost\kali-linux

Voici l'entrée "Linux" dans l'Explorateur de fichiers :

Il faut encore être patient avant que cette méthode soit disponible dans une version stable de Windows 10. Espérons que ce soit pour la fin de l'année 2021. En attendant, vous pouvez utiliser les méthodes décrites dans ce tutoriel.

The post WSL : comment accéder aux fichiers Linux depuis Windows 10 ? first appeared on IT-Connect.

10 commandes pour maîtriser WSL sous Windows 10

12 juillet 2021 à 11:30

I. Présentation

Avec ce tutoriel, je souhaite vous proposer 10 commandes indispensables pour bien maîtriser WSL (Windows Subsystem for Linux) sous Windows 10.

🎥 Disponible au format vidéo (avec chapitres) :

J'ai choisi les commandes en fonction de mes propres besoins, qui seront surement aussi les vôtres, mais aussi en fonction des limitations actuelles de WSL sous Windows 10. La dernière version à l'heure où j'écris cet article est Windows 10 21H1.

À l'aide d'une console, l'exécutable "wsl.exe" que l'on peut appeler d'un simple "wsl" donne accès à un jeu de commande très intéressant, qu'il est important de maîtriser pour bien prendre en main WSL sous Windows. Toutes les options disponibles sont visibles dans l'aide :

wsl --help

Précédemment, nous avons comment installer WSL 2 sur Windows 10, mais aussi comment installer Kali Linux avec WSL et comment mettre en place une règle de redirection de port avec WSL.

II. Lister les distributions WSL installées sur Windows 10

Lorsque l'on commence à déployer plusieurs systèmes Linux sur Windows 10 à partir de WSL, il arrive à un moment où l'on ne sait plus trop ce que l'on a déployé ou non. Il y a une commande bien pratique qui permet de lister les distributions installées (enregistrées) sur votre machine :

wsl --list

Que l'on peut écrire aussi :

wsl -l

Personnellement, je préfère utiliser la même commande avec l'option --verbose car cela affiche des informations supplémentaires : l'état de la distribution et la version.

wsl --list --verbose

Que l'on peut écrire aussi :

wsl -l -v

On peut voir que l'on a deux colonnes supplémentaires : STATE et VERSION. La commande sans l'option --verbose indique également quelle est la distribution Linux par défaut, ici : Kali Linux (Default). Sur la version avec --verbose, il faut se référer au caractère "*".

wsl --list --verbose
Exemple : wsl --list --verbose

III. WSL : modifier la version d'une distribution Linux

WSL est proposé en deux versions : la version 1 et la version 2. La seconde est plus pertinente, car elle permet de s'appuyer sur une machine virtuelle WSL et d'avoir un véritable noyau Linux à disposition.

Si vous avez une distribution Linux en version 1 actuellement et que vous souhaitez la basculer en version 2, il faut utiliser le paramètre --set-version. Voici un exemple pour la distribution nommée "kali-linux" :

wsl --set-version kali-linux 2

Un processus de conversion va débuter pour transformer la distribution en version WSL 2. À l'inverse, on peut définir la version 1 également :

wsl --set-version kali-linux 1

La conversion fonctionne dans les deux sens. Si l'on veut définir la version 2 comme étant la version par défaut à utiliser pour les futures distributions, on va utiliser cette commande :

wsl --set-default-version 2

IV. Démarrer une distribution WSL en ligne de commande

Pour démarrer une distribution WSL, il suffit d'accéder à son shell, par exemple à partir du raccourci qui est créé dans le menu Démarrer de Windows.

Sachez que l'on peut également forcer le démarrage de la distribution WSL grâce à une simple commande. De quoi faire un petit script qui s'exécute au démarrage de votre machine Windows, par exemple. 😉

Pour démarrer la distribution Ubuntu, on utilisera la commande suivant :

wsl --distribution Ubuntu

Que l'on peut aussi écrire :

wsl -d Ubuntu

Il n'y a pas de commande pour démarrer toutes les distributions en même temps.

V. Exécuter une commande dans une distribution WSL depuis Windows

Il n'est pas nécessaire d'ouvrir le Shell de la distribution Linux pour exécuter une commande à l'intérieur. On peut le faire directement depuis Windows et notre commande wsl. Avec les bonnes options bien sûr.

Pour exécuter la commande "sudo apt update" au sein de la distribution Linux nommée "Ubuntu", on utilisera la commande suivante :

wsl --distribution Ubuntu sudo apt update
Exemple : wsl --distribution Ubuntu sudo apt update

C'est important de spécifier "sudo" devant toutes les commandes qui nécessitent des droits "root" sur le système Linux. Si c'est une commande basique telle que "hostname" qui permet d'obtenir le nom de l'hôte, ce n'est pas utile :

wsl --distribution Ubuntu hostname

On aurait pu exécuter aussi la commande ci-dessous, où il n'est pas spécifié de distribution cible.

wsl sudo apt update

Dans ce cas, la commande va s'exécuter au sein de la distribution WSL qui est définie par défaut sur votre machine Windows 10 (souvenez-vous de ce que l'on a vu précédemment). C'est un détail qui a son importance.

VI. Définir une distribution Linux par défaut sous WSL

Pour finir sur la notion de distribution par défaut, sachez que l'on peut choisir celle que l'on veut définir par défaut. Par exemple, pour définir Ubuntu comme distribution par défaut :

wsl --set-default Ubuntu

Que l'on peut écrire aussi :

wsl -s Ubuntu
wsl --set-default
Exemple : wsl --set-default

Comme le montre cette commande, dans l'ensemble les commandes WSL sont simples.

VII. Démarrer la distribution WSL avec un utilisateur spécifique

Au sein votre distribution Linux, vous pouvez créer plusieurs utilisateurs. Si vous souhaitez lancer la distribution WSL en étant directement connecté avec un utilisateur spécifique, vous devez utiliser l'option --user.

Par exemple, sur ma distribution Ubuntu, je crée un nouvel utilisateur "itconnect" :

sudo adduser itconnect

Ensuite, je peux lancer la distribution Linux avec cet utilisateur :

wsl --user itconnect --distribution Ubuntu

Que l'on peut raccourcir de cette façon :

wsl -u itconnect -d Ubuntu

Sur le même principe que précédemment, si vous ne précisez pas de distribution, Windows prendra la distribution par défaut. Une fois le shell ouvert, je peux vérifier quel utilisateur j'utilise (même si c'est précisé au tout début du prompt) :

whoami
Exemple : wsl -u itconnect -d Ubuntu

VIII. Eteindre une distribution Linux WSL

Puisqu'une distribution peut être démarrée ou arrêtée, et que l'on a vu comment démarrer une distribution, il me semble intéressant de voir comment éteindre.

Avant cela, une petite commande bonus pour lister les distributions en cours d'exécution :

wsl --list --running

Pour stopper une distribution spécifique, par exemple "Ubuntu" qui est en cours d'exécution, voici la commande à utiliser :

wsl --terminate Ubuntu

Que l'on peut raccourcir de cette façon :

wsl -t Ubuntu

Il  y a aussi une commande globale qui sert à stopper immédiatement toutes les distributions et la machine virtuelle WSL 2 :

wsl --shutdown

Elle est... comment dire... radicale ! 🙂

IX. Supprimer une distribution Linux WSL

Quand on installe une distribution WSL sur son poste, cela peut être pour un besoin ponctuel. D'ailleurs, c'est aussi l'intérêt de ce système. Du coup, si l'on n'utilise pas une distribution, autant la supprimer ! C'est aussi une façon de réinstaller une distribution.

Si l'on veut supprimer la distribution Ubuntu, on va exécuter la commande suivante :

wsl --unregister Ubuntu

Cette commande va supprimer la distribution, mais les sources vont rester sur votre machine. Si vous décidez d'utiliser de nouveau cette distribution, vous repartirez de zéro mais ce sera rapide à démarrer, car les sources sont déjà là !

C'est une commande que j'ai déjà utilisée plusieurs fois pour réinstaller une distribution. Une fois que la distribution est supprimée avec cette commande, on peut la démarrer via l'interface graphique : l'installation va démarrer. Par la suite, on pourra aussi installer des distributions avec la commande "wsl" mais pour le moment, c'est en version preview.

Exemple : wsl --unregister Ubuntu

X. Exporter une distribution Linux de WSL

WSL offre la possibilité d'exporter une distribution Linux, ce qui est particulièrement intéressant pour deux raisons :

  • Réaliser une sauvegarde en quelque sorte, avant d'effectuer une opération sensible sur la machine
  • Partager la distribution Linux préconfigurée avec une autre personne

Pour exporter une distribution WSL au format TAR, nous allons utiliser l'option --export. Prenons un exemple... Nous allons exporter la distribution "Ubuntu" vers le dossier "C:\TEMP\Ubuntu-Backup.tar" :

wsl --export Ubuntu "C:\TEMP\Ubuntu-Backup.tar"

L'opération est relativement rapide et nous permet d'obtenir une archive compressée au format TAR, avec le contenu de notre distribution. Le poids de l'archive quant à lui dépend du contenu de votre distribution, notamment de la quantité de paquets installés.

Exemple : wsl --export Ubuntu "C:\TEMP\Ubuntu-Backup.tar"

Il est à noter qu'une distribution exportée restera enregistrée sur votre machine, dans son état actuel. Elle n'est pas supprimée. Si vous souhaitez l'exporter puis la supprimer, vous devez utiliser la commande que l'on a vue précédemment pour cette seconde étape.

XI. Importer une distribution WSL sous Windows 10

Pour terminer, nous allons prendre la distribution Linux que l'on a exportée précédemment, et nous allons la réimporter.


Pour importer notre machine précédemment exportée, il va falloir spécifier trois informations : le nom de la machine, l'emplacement pour la stocker et le chemin vers le fichier TAR à importer.

wsl --import <nom-distribution> "<dossier-stockage>" "<chemin complet vers fichier .tar>"

Ce qui donne :

wsl --import Ubuntu "C:\TEMP\WSL\Ubuntu" "C:\TEMP\Ubuntu-Backup.tar"

Pensez à indiquer un chemin vers un dossier qui a le nom de la distribution, car la fonction d'import ne va pas créer un sous-dossier. Donc, vous allez obtenir un fichier VHDX (format WSL 2) avec un nom qui ne sera pas significatif du tout ("ext4.vhdx").

Si l'on essaie d'importer notre machine Ubuntu avec le même nom, nous avons un message d'erreur, car elle existe déjà. Ce qui est logique.

A distribution with the supplied name already exists.

Nous avons deux options : changer le nom (il y aura donc les deux machines Ubuntu utilisables), soit supprimer la machine actuelle et importer la nouvelle. Pour rappel, voici la commande pour supprimer :

wsl --unregister Ubuntu

Note : cette méthode basée sur un export et un import permet aussi de cloner facilement une distribution WSL !

Voilà, c'était la dernière astuce de l'article au sujet de Windows Subsystem for Linux ! J'espère que ces différentes commandes pourront vous aider au quotidien si vous aimez travailler avec WSL sous Windows 10 !

The post 10 commandes pour maîtriser WSL sous Windows 10 first appeared on IT-Connect.

opinion: The Future of Windows is the meta OS for all platforms and devices

30 juin 2021 à 00:26

Microsoft announced Windows 11 last week, and the biggest news isn’t a new version of Windows. We all know that’s coming, but what’s surprising is that Microsoft will allow Android apps to run on Windows 11. They purposely saved this part of the announcement towards the end of the event. Much like Apple’s “one more thing.” The key takeaway is that Windows 11 will come with an Amazon Marketplace to download and install Android apps.

The Unknowns

Microsoft has not detailed exactly how Android apps are running in Windows 11. Only have press news referring to Intel’s Bridge technology to help Microsoft realize the ability to run Android apps with Windows 11. It should also be noted that running Android apps is not limited to Intel; AMD also supports it. It will be very interesting to find how if Windows 11 ARM supports the Android app. In theory, it should, but we have not heard any or seen any evidence of that.

What it means

Obviously, the choice of partnering with Amazon instead of Google is deliberate. Given Google created Android OS, Microsoft can run the app that bypasses the android OS platform entirely suggests they still have the ambition to pursue the mobile platform. And they see Google as their direct competitor in this market.

If Microsoft can make Android apps running seamlessly inside Windows 11, this opens the door for it to make a comeback to your phone. Imagine a distant future where your phone runs Windows, and all your apps are just there regardless if it’s a desktop or mobile device running on the palm of your hand.

We know that the Android app in Windows 11 isn’t running under some traditional emulator that runs Android. Because we have emulator apps that allow the user to run Android apps ever since the inception of Android, what Microsoft is offering here has to be something better than that, something more ‘native.’ Much like how Microsoft was able to bring Linux kernel in WSL, the same pattern can be applied with Android. The biggest challenge will be on the CPU instruction set ARM vs x86. As of today, Microsoft has announced ARM64EC new ways to build ‘native’ ARM apps.

Now combine this with all the groundwork Microsoft has laid with WSL/WSL2 with Windows 10. The future of Windows is really a meta OS where you can run any app, just not Apple’s. Windows has a Linux kernel running inside each Windows 10 if WSL is enabled. Microsoft is making improvements to its WSL platform for each release of Windows 10. Just recently, Microsoft introduced WSLg, where you can now add GUI to your Windows Subsystem for Linux.

Where does this take us from here? Microsoft definitely sees what Apple’s M1 enabled them to do with their ecosystem. The ability to run Android apps on Windows 11 is a part of the answerback. But I think this can be a trojan horse whose main goal is to deaminate the Operating System market once and for all.

The post opinion: The Future of Windows is the meta OS for all platforms and devices appeared first on Next of Windows.

WSLg is Microsoft’s Offical GUI for WSL2

29 juin 2021 à 21:04

Ever since WSL and subsequent major improvements with WSL2 in Windows 10. Running Linux apps in Windows has become a reality increasingly. If you are messing with the command line interface, most of the toolchains are now fully functional with WSL2. However, using Linux as a traditional desktop GUI out-of-the-box WSL2 experience does not allow you to have a GUI. I showed you some ways to enable WSL2 GUI with RDP last year. Now there are better and more native ways that you can run GUI apps with WSL2.

Microsoft introduced WSLg (g, stands for graphic interface) where it enables you to run GUI Linux apps straight from WSL2.

You need Windows 10 Insider Preview to build 21362+ or higher to enable and try this out. And because you want to run GUI apps, depends on the type of GUI application, you need supports from your GPU driver.

If you already have WSL2 installed all you need to do is

wsl --update

Once it’s update updating, you need to restart WSL or simply run

wsl --shutdown

This will restart the WSL service.

Depends on the distro you have installed you can try apps like

sudo apt install gedit -y

To launch gedit GUI editor as an example. Below is a full example demonstrating the power of WSLg.

Under the hood it’s running FreeRDP

Weston leverages FreeRDP to implement its backend RDP Server. FreeRDP is used to encode all communications going from the RDP Server (in Weston) to the RDP Client (mstsc on Windows) according to the RDP protocol specifications. It is also used to decode all traffic coming from the RDP Client into the RDP server.

This means if you want to RDP into WSL2 with WSLg upgrade it would be possible as well. For more details check out Microsoft’s dev blog post here.

The post WSLg is Microsoft’s Offical GUI for WSL2 appeared first on Next of Windows.

WSLg : comment utiliser WSL pour ouvrir des applications GUI Linux ?

30 juin 2021 à 11:30

I. Présentation

Dans la continuité de mes précédents articles sur WSL, je vais vous parler aujourd'hui de WSLg. C'est le nom donné par Microsoft à la nouvelle fonctionnalité de WSL qui permet d'ouvrir des applications GUI Linux directement depuis Windows. En fait, il faut imaginer une distribution Linux installée via WSL, avec un paquet d'une application avec une interface graphique installé sur cette même distribution, et l'on va venir ouvrir cette application Linux directement à partir de Windows et du raccourci dans le menu Démarrer.

🎥 Episode disponible au format vidéo :

Pour le moment, cette fonctionnalité est disponible seulement sur les versions preview de Windows 10 (je n'ai pas testé sur la version preview de Windows 11), accessibles par l'intermédiaire du programme Windows Insiders. Plus précisément, la fonctionnalité est disponible depuis Windows 10 Build 21364. Elle devrait être intégrée à Windows 11 lors de la sortie de la prochaine version stable prévue pour fin 2021.

L'alternative consiste à installer une interface graphique comme XFCE sur la distribution Linux géré par WSL 2 et de venir se connecter sur la machine via RDP ou VNC. Ensuite, on peut utiliser les applications sur la machine Linux, localement.

WSLg Windows 10

Si l'on regarde de plus près le schéma ci-dessus, qui provient de la documentation de Microsoft, on remarque que Microsoft s'appuie sur trois composants pour l'affichage :

- XWayland qui permet de faire fonctionner des applications Xorg (X11) avec Wayland. D'ailleurs, Wayland est destiné à remplacer le protocole de serveur d'affichage X11.

- Weston qui est une implémentation du protocole d'affichage Wayland et qui servira à gérer l'affichage des applications, aussi bien celles compatibles Wayland, que celles compatibles X11 (grâce à XWayland).

- FreeRDP qui est une implémentation open source du protocole RDP. Grâce à lui, le client Bureau à distance de Windows va pouvoir afficher l'application Linux dans le même esprit qu'une Remote App.

En complément, il faut savoir que WSLg supporte le copier-coller entre Windows et l'application Linux, ainsi que le multi-écrans, et la gestion de l'audio grâce au composant Pulse Audio Server.

Note : la majorité des commandes wsl.exe de cet article ne fonctionne pas sur les versions stables actuelles de Windows 10. Ce sont des commandes qui seront intégrées sur la future version de Windows, prévue pour fin 2021.

II. Prérequis de WSLg sur Windows 10

Comme je le disais, il faut au minimum Windows 10 Build 21364 pour pouvoir tester WSLg et utiliser les applications GUI de Linux depuis Windows. Ensuite, il faudra procéder à l'installer de WSL au sein de la machine Windows 10.

Avant de parler installation, sachez que WSL 2 est installable au sein d'une machine virtuelle hébergée sur un serveur VMware ESXi ! Il suffit d'activer l'option "Exposer la virtualisation assistée du matériel au SE invité" au sein des paramètres de la VM.

Pour revenir sur l'installation, vous pouvez utiliser mon tutoriel qui explique la méthode classique pour installer WSL 2 sur Windows 10.

À l'avenir, l'installation de WSL sera plus simple, enfin disons que ce sera plus par les fonctionnalités optionnelles de Windows. Il ne sera plus nécessaire également d'installer le Kernel WSL 2 manuellement, ce sera inclus. On pourra faire l'installation de WSL 2 directement à l'aide d'une seule commande :

wsl.exe --install

Une fois que la fonctionnalité est installée, pour être sûre de bien avoir tous les composants à jour, une petite mise à jour s'impose. On commence par stopper la machine virtuelle WSL :

wsl.exe --shutdown

Puis, on effectue la mise à jour :

wsl.exe --update

Une nouvelle fois, nous devons arrêter la machine virtuelle :

wsl.exe --shutdown

Passons à la suite.

III. Installer un distribution Linux sous WSL

Si vous avez déjà une distribution Linux via WSL sur votre poste de travail, vous pouvez passer à la suite. Pour rappel, l'installation d'une distribution Linux s'effectue généralement à partir du Microsoft Store.

Néanmoins, j'en profite là encore pour vous parler d'une nouvelle commande qui va permettre d'installer une distribution Linux depuis une commande wsl.exe. Par exemple, pour installer Ubuntu :

wsl --install --distribution Ubuntu

Tout en sachant que les distributions disponibles peuvent être listées :

wsl.exe -l -o

Pour utiliser WSLg, nous devons avoir une distribution Linux en version 2. Si vous venez de l'installer, normalement elle est en version 2 par défaut. Dans le doute, on va forcer l'utilisation de cette version :

wsl.exe --set-version <Nom de la distribution> 2
wsl.exe --set-version Ubuntu 2

Il est fort possible que le message "La distribution présente déjà la version demandée." s'affiche.

IV. Installer une application GUI Linux sous WSL

Venons en maintenant à la question du jour : comment installer une application GUI Linux avec WSL ? La réponse se trouve ci-dessous... En fait, le plus gros est déjà fait : installer WSL et le mettre à jour. Ensuite, c'est classique finalement. On met à jour le cache des paquets (pour récupérer les dernières versions) :

sudo apt update

On met à jour les paquets sur la machine (tous les paquets installés ayant besoin d'être mis à jour) :

sudo apt upgrade

Enfin, on installe l'application graphique de son choix. Prenons par exemple l'éditeur de texte Gedit :

sudo apt install gedit -y

Dès qu'il est installé, si l'on ouvre le menu Démarrer de Windows 10, on voit un nouvel icône : Text Editor (Ubuntu). Intéressant.

Si on ouvre l'application, Gedit s'ouvre sur Windows 10 et permet d'accéder au contenu de la machine Linux, en l'occurrence ici Ubuntu.

V. Installer VSCode sous WSL

Pour finir cet article, je vous propose de voir comment installer Visual Studio Code alias VSCode, un éditeur de code gratuit disponible sous Windows, mais aussi Linux. De quoi coder sous Linux directement à partir de sa machine Windows.

Suivez ces quelques étapes. Les commandes sont à exécuter directement depuis la machine Linux.

Positionnez-vous dans le dossier /tmp (ou ailleurs) :

cd /tmp

Téléchargez les sources de VSCode pour Ubuntu / Debian (fichier .deb) :

wget https://go.microsoft.com/fwlink/?LinkID=760868

Vous allez obtenir un fichier avec un "nom bizarre". On va le renommer en "vscode.deb" :

mv 'index.html?LinkID=760868' vscode.deb

Via Aptitude, on va installer notre paquet à partir du fichier .deb :

sudo apt install ./vscode.deb

Ce qui donne :

Dès que c'est terminé, on retrouve le raccourci "Visual Studio Code (Ubuntu)" directement dans le menu Démarrer de Windows 10. Il ne reste plus qu'à l'ouvrir et à coder ! Si vous installez PowerShell sur Linux, vous pouvez coder un script depuis VSCode et l'exécuter sur la machine Linux directement ! 🙂

Vous voyez, c'est assez simple d'utiliser les applications graphiques de Linux sous Windows 10 ! Le plus chiant, c'est d'attendre que ce soit disponible au sein d'une version stable de Windows. En attendant, vous pouvez toujours tester en VM.

The post WSLg : comment utiliser WSL pour ouvrir des applications GUI Linux ? first appeared on IT-Connect.

WSL 2 Port Forwarding : comment accéder à sa machine virtuelle à distance ?

21 juin 2021 à 11:30

I. Présentation

Dans ce tutoriel, je vais vous expliquer comment configurer Windows 10 pour faire du port forwarding avec WSL 2 et permettre l'accès à distance à notre machine virtuelle Linux.

Comme les autres épisodes, celui-ci est disponible au format vidéo :

Le passage de WSL 1 à WSL 2 s'accompagne de différents changements comme le précise Microsoft sur son site. Parmi ces changements, il y a la manière dont la distribution Linux va accéder au réseau, que ce soit le réseau local ou Internet. Par défaut, on ne peut pas accéder à distance à notre machine virtuelle WSL 2, peu importe la distribution que l'on utilise. Autrement dit, depuis un autre poste de notre réseau local, on ne peut pas se connecter sur notre machine, ni même tester l'accès à un service.

Nous partons du principe que notre distribution Linux gérée par WSL 2 est accessible via RDP sur le port 3390. Pour le moment, cet accès fonctionne uniquement depuis notre machine Windows, en local. L'idée, c'est que l'accès fonctionne à partir d'une autre machine de notre réseau local.

II. Le réseau avec WSL 2

Avant de partir dans la configuration et la résolution de ce problème, faisons un point sur le fonctionnement du réseau avec WSL 2. Lorsqu'une distribution Linux est connectée au réseau via WSL 2, nous obtenons le schéma suivant :

Le réseau avec WSL 2

Un réseau virtuel et privé est créé entre la VM WSL 2 et l'hôte Windows 10. Pour accéder à Internet, la machine Linux passe par l'hôte Windows 10 et le réseau virtuel s'appuie sur du NAT. Sans le NAT, la machine Linux ne pourrait pas accéder à Internet car le routeur ne connaît pas le réseau virtuel.

Dans l'exemple ci-dessus, ma machine Windows 10 bénéficie de l'adresse IP 172.23.240.1/20 tandis que la machine Linux dispose de l'adresse IP 172.23.254.29/20. Les deux machines sont bien sur le même réseau (merci au masque de sous-réseau /20).

Ma machine Windows 10 est également connectée à mon réseau local, via Wi-Fi mais ça pourrait être en câble, dans le but d'avoir Internet.

Pour vérifier ce que je viens de dire, il suffit d'ouvrir une console PowerShell (ou Invite de commande) sur la machine Windows 10 et de regarder les adresses IP.

La carte réseau principale de ma machine (c'est un pont réseau car elle est bridgée et partagée avec Hyper-V) me permettant d'accéder à Internet :

Ma machine Windows 10 bénéficie d'un adaptateur réseau virtuel pour communiquer avec ma machine Linux. Cette carte est créée automatiquement et se nomme "Carte Ethernet vEthernet (WSL)".

Enfin, la machine Linux quant à elle dispose bien d'une adresse IP sur le réseau virtuel évoqué. On peut le vérifier en ligne de commande :

ip add | grep "eth0"

Depuis la machine Windows 10, je peux communiquer avec ma machine WSL. A partir d'une autre machine connectée à mon réseau local, je ne peux pas joindre ma machine WSL 2. Pour le ping, ce n'est pas bien grave, mais c'est plus gênant car on ne peut pas tester une page Web, ou se connecter en RDP. Nous allons apporter une réponse à ce problème.

III. Créer une règle de port forwarding pour WSL 2

Pour le moment, la solution proposée par Microsoft pour répondre à cette problématique consiste à créer une règle de redirection de ports (port forwarding) de la machine Windows 10 vers la machine WSL 2. Cette opération s'effectue avec la commande netsh et les paramètres qui vont bien.

Les commandes qui suivent sont à exécuter en tant qu'administrateur.

Voici la syntaxe de cette commande :

netsh interface portproxy add v4tov4 listenport=<port d'écoute sur la machine Windows 10> listenaddress=0.0.0.0 connectport=<port de destination sur la machine Linux> connectaddress=<adresse IP machine Linux>

Par exemple, si l'on veut que les connexions qui arrivent sur le port d'écoute 3390 (listenport) de notre machine Windows 10 soient redirigés vers le port 3390 (connectport) de notre machine Linux (connectaddress), cela donne :

netsh interface portproxy add v4tov4 listenport=3390 listenaddress=0.0.0.0 connectport=3390 connectaddress=172.23.254.29

Note : le fait d'indiquer "listenaddress=0.0.0.0" permet à notre machine Windows 10 d'écouter sur toutes ses adresses IP. Sinon, il faudrait modifier la règle à chaque fois que la machine Windows 10 change d'adresse IP. A moins que vous utilisiez toujours la même adresse IP sur votre réseau local, mais ce ne sera pas forcément le cas en déplacement.

On peut s'assurer que la règle est bien créée avec la commande suivante :

netsh interface portproxy show v4tov4

D'ailleurs, le résultat retourné est facilement compréhensible.

WSL 2 netsh interface portproxy

A tout moment, vous pouvez supprimer l'ensemble des règles avec la commande ci-dessous :

netsh interface portproxy reset

Il nous reste une dernière étape avant de tester la connexion : créer une règle de pare-feu.

IV. Créer une règle de pare-feu pour autoriser le flux WSL 2

Le flux entrant et sortant sur notre machine Windows 10, avec le port 3390, n'est pas autorisé par défaut par le pare-feu Windows (ou le pare-feu de votre antivirus). Nous devons créer une règle entrante et une règle sortante au sein du pare-feu. Voici les deux commandes à exécuter pour créer ces règles (le port 3390 peut être modifié) :

Les commandes qui suivent sont à exécuter en tant qu'administrateur.

New-NetFireWallRule -DisplayName 'WSL 2' -Direction Outbound -LocalPort "3390" -Action Allow -Protocol TCP
New-NetFireWallRule -DisplayName 'WSL 2' -Direction Inbound -LocalPort "3390" -Action Allow -Protocol TCP

Ces règles seront ensuite visibles via l'interface graphique de Windows 10, dans les paramètres avancés du pare-feu.

Tout est prêt, il ne reste plus qu'à tester une connexion RDP depuis un hôte distant vers notre machine WSL.

Je n'avais pas d'autre PC sous la main pour tester, je l'ai fait directement avec mon smartphone connecté au même Wi-Fi. On peut voir que ça fonctionne parfaitement ! Au niveau de la connexion RDP, j'ai indiqué l'adresse IP de ma machine Windows 10 et le port, ce qui donne : 192.168.5.56:3390.

Pour finir, intéressons-nous à une problématique vous allez forcément rencontrer. 🙂

V. Gérer les règles de pare-feu et redirection automatiquement

A chaque fois que vous allez redémarrer la machine virtuelle WSL 2 ou votre machine hôte, la machine Linux va changer d'adresse IP. C'est contraignant car cela signifie qu'il faudra modifier notre règle de redirection de ports à chaque redémarrage, ainsi que notre règle de pare-feu. Mais rassurez-vous, il existe une solution à l'aide d'un script.

Ce script va venir récupérer l'adresse IP de la carte eth0 de la machine Linux et générer la règle de redirection de ports avec la bonne adresse IP de destination. Les règles de pare-feu sont également créées. A chaque fois que le script est exécuté, toutes les règles sont supprimées et recréées. On retrouve ce script sur certains posts du GitHub WSL, notamment celui-ci.

Voici le script ci-dessous avec des commentaires en français. En fait, il faut modifier la liste des ports ($ports) que vous souhaitez rediriger vers votre machine WSL.

# Récupérer l'adresse IP de la machine Linux WSL
$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';

if( $found ){
  $remoteport = $matches[0];
} else{
  echo "Le script va se fermer car l'adresse IP de la machine WSL 2 est introuvable.";
  exit;
}

# Tous les ports forwarder vers votre machine WSL 2
[email protected](80,443,3390);

# Adresse IP sur laquelle écouter au niveau de la machine Windows 10
$addr='0.0.0.0';
$ports_a = $ports -join ",";

# Supprimer la règle de pare-feu "WSL 2 Firewall Unlock"
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";

# Créer les règles de pare-feu (flux entrant et sortant) avec chacun des ports de $ports
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";

# Créer les règles de redirection de ports pour chacun des ports ($ports)
for( $i = 0; $i -lt $ports.length; $i++ ){
  $port = $ports[$i];
  iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr";
  iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$remoteport";
}

Note : si vous utilisez Ubuntu (ou certaines autres distributions), il faudra penser à installer le paquet net-tools pour bénéficier de la commande ifconfig : sudo apt install net-tools

Dans le pare-feu, on voit bien la règle créée par le script, comme toute à l'heure quand on l'a fait manuellement.

Deux options avec ce script : le lancer en tant qu'administrateur à chaque fois que vous avez besoin d'utiliser la machine WSL 2 à distance, ou le mettre dans une tâche planifiée directement. A vous de choisir.

Voilà ! Vous avez entre vos mains toutes les informations nécessaires pour que votre machine Linux WSL 2 soit disponible à distance sur votre réseau local !

N'hésitez pas à poster un commentaire si vous avez une question ou tout simplement pour confirmer que cela a bien fonctionné chez vous. 😉

The post WSL 2 Port Forwarding : comment accéder à sa machine virtuelle à distance ? first appeared on IT-Connect.
❌