Windows Subsytem for Linux ne cesse de s’enrichir de nouvelles distributions
Ne cesse de s’enrichir de nouvelles distributions
Le sous- système Windows pour Linux permet de télécharger à partir du Microsoft Store et d’installer, en version core sur Windows, les distributions Debian, Kali, Open Suse et SLES en plus d’Ubuntu. WSL
Le Windows Subsystem for Linux ( WSfL), en français Sous- système Windows pour Linux, parfois grossièrement appelé « bash » sous Windows, est une couche de compatibilité permettant d’exécuter des fichiers ELF ( binaires exécutables) pour Linux à partir d’un système Windows. Le principe est proche de Wine qui permet d’exécuter certains programmes Windows sous Ubuntu, mais « dans l’autre sens » et de manière bien plus puissante. Il y a deux ans, le shell bash de Linux était intégré dans Windows 10. Depuis, beaucoup de chemin a été fait. Ce bash pour Windows, qui est rapidement devenu Windows Subsystem for Linux, était construit au départ à partir de la distribution Ubuntu Linux ( version 14.04). Il a ensuite été possible d’installer d’autres systèmes Linux depuis le Windows Store. Rappelons qu’Ubuntu sur Windows est une variante d’Ubuntu proposée officiellement par Microsoft et Canonical et qui se déploie nativement sur Windows 10 au moyen de la couche de compatibilité WSL. Elle est donc issue du travail commun des deux éditeurs. Le plus gros du travail étant fait, la porte était ouverte aux autres qui n’ont pas hésité longtemps avant de s’y engouffrer. Le but principal de cette distribution est de simplifier le travail des développeurs en rendant possible la mise en place d’une structure et d’outils Linux sous Windows et en harmonisant les interactions entre les environnements de développement Windows et GNU/ Linux. Cet outil n’est donc pas du tout destiné au grand public. Il n’a pas été conçu pour déployer nativement un environnement de bureau GNU/ Linux sous Windows, bien que cela soit parfaitement faisable. Les applications graphiques ne fonctionnent pas aussi facilement que les applications en ligne
de commande, car elles nécessitent un serveur d’affichage X externe. Les applications utilisant certaines fonctionnalités très spécifiques du noyau Linux risquent aussi de rencontrer des problèmes. En clair, ne confondez pas : s’il vous faut un système Linux vraiment « full » , faites une vm ou un multiboot.
Installation de WSL
Les prérequis sont, tout simplement, une copie à jour de Windows 10 de type 64 bits, un bon numéro de build et, bien sûr, un compte administrateur pour l’installation. Pour savoir si votre système est compatible, allez dans les Paramètres/ Système/ Informations Système. Regardez la build du système ( Version du système d’exploitation) et son type ( Type du système). Vous devez avoir une version de Build égale ou supérieure à la 14393 et un Windows 10 en 64 bits pour profiter des bénéfices de WSL. Si c’est bien le cas, rendez- vous dans les Paramètres / Mise à jour et sécurité et dans le menu Pour les développeurs, cochez le bouton Mode développeur. Reste ensuite à activer le sous- système Linux de Windows. Pour cela, tapez fonctionnalités dans la barre de recherche et cliquez sur Activer ou désactiver des fonctionnalités Windows. Vous verrez alors apparaître la fenêtre des fonctionnalités. Cochez la case Sous- système Windows pour Linux et cliquez sur OK. Vous pouvez obtenir le même résultat un peu plus rapidement en ouvrant une console PowerShell en tant qu’administrateur et en exécutant la commande suivante : Enable- WindowsOptionalFeature - Online - FeatureName MicrosoftWindows- Subsystem- Linux Votre ordinateur devra ensuite redémarrer. Testez la fonctionnalité en tapant bash dans une fenêtre d’exécution. Le système devrait vous afficher un terminal en vous disant que vous n’avez encore installé aucune distribution. Rendez- vous ensuite dans le Microsoft Store. Tapez Linux dans la fenêtre de recherche et choisissez Linux sur Windows/ Obtenir les applications. Sur le Microsoft Store, vous pouvez installer plusieurs versions d’Ubuntu et également d’autres variantes de Linux. L’application Ubuntu ( tout court) installera la
dernière version LTS et pourra être mise à niveau d’une version LTS à la suivante via la commande do- release- upgrade. Sinon, choisissez la distribution de votre choix – Debian, par exemple. Notons qu’il n’est pas obligatoire de créer un compte Microsoft ni de s’identifier pour télécharger ces applications. Toutes ces distributions peuvent être utilisées simultanément, tant que les performances de votre machine le supportent. Le téléchargement devrait se lancer. Installez ensuite la distribution en suivant la procédure d’installation qui démarre juste après. Une fois la distribution Linux installée, vous pouvez lancer Bash du menu Windows. Première chose à savoir, votre C: se trouve dans / mnt/ c Ensuite, eh bien c’est comme avec votre distribution favorite. Vous pouvez utiliser par exemple l’outil apt d’installation de paquets gérant les dépendances si vous avez installé Debian ou Ubuntu, avec ses « copains » apt- get install, apt- get update et autres apt- get upgrade. Pour installer et lancer Matrix, par exemple, tapez : sudo apt- get install cmatrix puis, une fois l’installation terminée, saisissez la commande : cmatrix Vous pouvez faire directement des appels vers des outils ou vers des scripts, du bureau avec un raccourci, depuis le cmd ou PowerShell. Pour lancer directement Matrix, appelez bash avec le paramètre - c suivi de votre commande entre guillemets, comme ceci : bash - c « cmatrix » L’inter face graphique, en revanche, n’est pas de mise. Si vous y tenez vraiment, vous devrez installer un serveur X. Installez par exemple le serveur Xming sur votre Windows puis entrez la commande suivante dans bash pour déporter l’écran : export DISPLAY=: 0 Ajoutez cette ligne à votre f ichier de configurat ion . bashrc pour ne pas la ressaisir à chaque ouverture de session. L’application concernée doit aussi être compatible avec X, sinon cela ne suffira pas. Si ce n’est pas le cas et que vous voulez la faire tourner, vous êtes bon pour monter une vm avec Hyper V ou autres Virtual Box. Il devrait aussi être bientôt possible d’installer les différentes distributions WSL à partir de la ligne de commande, au cas où vous préféreriez cette méthode. Ce n’est encore disponible que pour Ubuntu, mais devrait s’étendre rapidement aux autres distributions Linux du Store.
Installer les logiciels
Le système installé permet d’utiliser des applications Linux en ligne de commande comme nano, vim, ssh, git, npm, gem et bien d’autres, des applications sans interface graphique ( apache, nginx, mongodb, nodejs, ruby, python…) et bien entendu d’exécuter des commandes du shell bash en direct et des scripts. La gestion des paquets se fait en ligne de commande comme sur un système Debian ou Ubuntu classique, avec l’outil apt fourni en standard ou un autre, pour peu que vous l’installiez. Si, après l’installation, vous souhaitez mettre à jour la distribution, tapez tout d’abord dans un terminal Ubuntu : sudo apt update. Puis si, par exemple, vous voulez installer l’éditeur de texte vim : sudo apt install vim Ces commandes doivent, comme sur tout système Linux/ Unix, être exécutées avec des privilèges élevés comme ceux du compte root.
Installer un serveur X
Les applications graphiques nécessitent à minima l’installation d’un serveur X externe pour Windows. Vous pouvez notamment installer Xming ou VcXsrv, tous deux disponibles sur SourceForge. net. Les paramétrages du shell bash sous Linux tels que prompt, couleurs ou dimensions peuvent être appliqués. Après installation d’un serveur X, éditez le fichier ~/. bashrc avec vim ou nano et ajoutez à la fin du fichier la ligne : export DISPLAY=: 0.0
Utilisation de WSL
Ouvrez Ubuntu ( ou Debian, ou OpenSuse) sur Windows et lancez- y vos commandes ou vos applications. Remarquez que rien n’empêche le lancement de plusieurs terminaux en parallèle. Le serveur X, s’il s’avère nécessaire, doit être lancé depuis le menu démarrer ( VcXsrv, par exemple, si c’est lui qui a été installé) avant le lancement dans le terminal du programme qui le nécessite. Des environnements de bureau complets peuvent en pratique être installés et lancés, mais comme WSL n’a pas été initialement conçu pour faire ce genre de choses, des bugs peuvent survenir. Là aussi, cela devrait s’améliorer au fil des versions. Pour expérimenter ce genre de manipulation, des environnements légers, avec un gestionnaire de fenêtres sans composition graphique avancée tels que Xfce, LXDE ou encore OpenBox sont clairement à privilégier. L’installation de polices de caractères plus modernes que celles fournies de base sera sans doute nécessaire pour avoir un système plus convivial.
Accès aux fichiers Windows depuis Linux
Le disque C: est automatiquement monté par la distribution Linux dans le chemin / mnt/ c, et il en est de même pour les autres lecteurs (/ mnt/ d/, / mnt/ e/…) du système Windows, s’ils existent. Tous ces chemins sont accessibles avec les séparateurs Unix/ Linux, c’est- à- dire le slash (/) au lieu de l’antislash (\) pour Windows. Par défaut, tous les fichiers du système W in dowsap partiennent à l’ utilisateur courant avec toutes les permissions ( 777) et celles- ci ne peuvent pas être modifiées. Il est éventuellement possible de changer ce comportement ( avec néanmoins quelques limitations ). Consultez pour cela la documentation suivante : https:// blogs. msdn. microsoft. com/ commandline/ 2018/ 01/ 12/ chmod- chown- wsl- improvements/ Cela peut clairement représenter une faille de sécurité pour le système d’exploitation « physique » Windows et doit sérieusement être pris en considération.
Accès aux fichiers Linux à partir de Windows
La racine du système de fichiers Linux est C:\ Users\% USERNAME%\ AppData\ Local\ Packages\ CanonicalGroupLimited. UbuntuonWindows _ 79rhkp1fndgsc\ LocalState\ rootfs si c’est la dernière version LTS d’Ubuntu qui est installée. Dans le cas d’une version spécifique dans le Windows Store, le chemin sera légèrement différent : C:\ Users\% USERNAME%\ AppData\ Local\ Packages\ CanonicalGroupLimited. Ubuntu18.04onWindows _ 79rhkp1fndgsc \ LocalState\ rootfs. Vous aurez aussi de petites variations en fonction de la distribution installée ( Debian, Kali, OpenSuse…). Ne modifiez jamais ces fichiers directement depuis Windows. Les systèmes de f ichier s n’étant pas les mêmes entre Windows et Linux – NTFS d’un côté, ext3 ou 4, btrfs ou autre pour Linux –, les programmes Windows ne savent pas les gérer et les fichiers auraient de fortes chances d’être corrompus. Pour cela aussi, il faudra attendre quelques versions.
Vous devez installer un serveur X, comme Xming ( https:// sourceforge. net/ projects/ xming/), pour disposer d’une interface graphique sous WSL.
Utiliser des commandes Linux dans l’invite de commande Windows
Pour utiliser une commande Linux depuis l’invite de commande Windows, faites- la précéder de ubuntu run ( ou debian ou autre chose, selon, et run après). Là aussi, si vous avez installé une version spécifique d’Ubuntu sur Windows , l a commande sera légèrement différente : ubuntu1604 run ou ubuntu1804 run, par exemple.
Utiliser des programmes Windows depuis Linux
Vous pouvez également exécuter des programmes Windows depuis une console Linux. Il suffit pour cela de saisir leur nom mais complet, avec leur extension. Il n’y a pas de variable PATHEXT sous Linux. Vous trouverez dans le Microsoft Store Ubuntu en plusieurs versions, SLES, openSUSE Leap, Kali Linux et Debian comme applications UWP permettant la diffusion de ces distributions Linux pour WSL.
Installer Kali Linux sous Windows 10 avec WSL
Bonne nouvelle pour les hackers – Oh ! pardon – pour les professionnels de la sécurité et les testeurs de failles et autres exploits : vous pouvez télécharger et installer Kali Linux sur Windows 10 directement à partir du Microsoft App Store dans bash, si bien sûr le WSfL est activé. Kali Linux ( anciennement Backtrack) est une distribution très répandue, gratuite, open source et très largement utilisée pour les tests d’intrusion. C’est absolument la meilleure suite open source existante dans le domaine et elle est désormais disponible en mode natif sur Windows 10, sans multiboot ni virtualisation. Kali Linux sur Windows n’est pas livré avec des outils de test de piratage ou de pénétration préinstallés, mais il suffit juste de les installer après coup. Vous pouvez aussi le faire depuis le store – ce sont les Ethical Hacking Ressources. Vous en trouverez aussi facilement sur la toile. C’est l’avantage d’utiliser une suite aussi populaire – et efficace. Votre application Antivirus ou Windows Defender déclencheront sans doute un avertissement de type faux positif, comme souvent pour les outils de hack. N’en faites pas tout un plat. Désactivez simplement le contrôle de votre antivirus, mais seulement pour Kali et ses outils. Un outil de hack n’est pas un virus. Il peut en contenir si vous l’avez récupéré n’importe où, mais dans ce cas le malware offert en prime devrait être signalé. Si ce n’est
pas vous qui avez installé ce genre d’outils, là, en revanche il faut vous poser des questions.
Objectifs affichés de Microsoft
Le principal intérêt de WSL est d’offrir aux utilisateurs une expérience similaire à celle de bash sur Linux. C’est d’ailleurs pour cela que cette fonctionnalité est souvent appelée bash sur Windows. Mais WSL a des objectifs qui vont bien au- delà d’avoir bash comme un shell alternatif sur Windows ; bash constitue l’étape préliminaire de l’implémentation de tous les outils de la ligne de commande de Linux sur Windows. WSL constitue un environnement « compatible avec Linux qui ressemble et agit comme Linux. Il vous permet d’exécuter tout votre code Linux – votre système build Linux, vos outils GNU et tout ce que vous devez exécuter, de créer et de tester votre application sans avoir à recourir à une machine virtuelle » , dixit Rich Turner, chez Microsoft. WSL s’appuie sur le kernel Windows. Le sous- système l’utilise pour exécuter les appels du système ELF64, dont dépendent les binaires de Linux. Microsoft a pris la décision de placer WSL dans Windows pour répondre aux besoins des développeurs. En effet, de nos jours, une variété d’outils open source, de langages de programmation et de bibliothèques sont utilisés par les développeurs sous Linux. « Beaucoup de ces outils ont des dépendances de Linux, la couche du système de fichier Linux, ses mécanismes d’interaction réseau, etc. Ce qui fait que beaucoup de ces outils, même s’il en existe une version Windows, ne fonctionnent pas aussi bien sous Windows » , dit encore Rich Turner. Les langages tels que node, Python, Ruby ou même les C et C++ fonctionnent très bien sous Windows, mais si vous voulez accéder aux mêmes gems, paquets, bibliothèques et modules que vous utilisez sur Linux, alors vous devrez utiliser leurs versions Linux. L’idée n’est pas de transformer Windows en Linux, mais bien de donner la possibilité aux développeurs d’utiliser les outils dont ils ont besoin pour réaliser leur travail, en plus d’éventuels autres outils Windows, comme Microsoft Visual Studio par exemple. L’intégration veut dire aussi que les processus de Linux peuvent être vus avec un gestionnaire des tâches Windows, celui fourni en standard par Microsoft ou d’autres comme ProcessHacker ( SourceForge) et ProcessExplorer ( SysInternals). De cette façon, si jamais vous êtes face à un problème – une erreur dans un script bash, par exemple, qui bloque la console ou quelque chose dans le genre –, vous n’aurez qu’à sélectionner sous Windows avec l’outil de votre choix – Powershell peut aussi faire l’affaire, avec ses commandes Get- Process et Stop- Process – le processus correspondant et le supprimer. Les outils de contrôle du réseau et du système peuvent également voir les processus WSL, du fait qu’ils sont exposés à l’interface de gestion de Windows et qu’ils utilisent la stack de réseau Windows et le pare- feu de l’OS. Cela permet aux entreprises et organisations diverses d’utiliser leurs outils de contrôle avec les processus de WSL ainsi qu’avec ceux de Windows. Maintenant que le sous- système de Linux pour Windows est devenu plus mature et couvre un grand nombre de scénarios auxquels les développeurs sont confrontés chaque jour, Turner a expliqué que le développement va continuer à apporter des mises à jour et des améliorations afin de répondre aux requêtes des développeurs. Toutefois, il ne faut pas s’attendre à ce que WSL supporte officiellement Linux desktop. Encore une fois, ce n’est pas le but. Microsoft a également annoncé un projet open source en partenariat avec Boxstarter et Chocolately dont le but est de fournir aux développeurs des exemples de scripts pour les scénarios de développement communs aux deux types d’OS. ❍