FreshRSS

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

Comment exécuter un script PowerShell sous Linux ?

24 juin 2021 à 11:00

I. Présentation

Nous vous parlons très souvent de PowerShell en étant sous Windows, mais il ne faut pas oublier que depuis quelques années, le langage de Microsoft est disponible sous Linux, mais aussi MacOS. Dans ce tutoriel, je vais vous expliquer comment exécuter un script PowerShell sous Linux.

PowerShell Core se base sur une version open source du framework .NET :  le .NET Core. La compatibilité avec les distributions Linux, dépends de la version de PowerShell utilisée : ce ne sera pas la même entre PowerShell 7.0 et PowerShell 7.1.

À l'heure où j'écris cet article, la dernière version stable est PowerShell 7.1.3 et elle est compatible avec Windows bien sûr, mais aussi avec diverses distributions Linux : Ubuntu, Debian, CentOS, RHEL, Fedora ou encore Alpine. Libre à vous d'utiliser une VM, une machine physique ou WSL sous Windows.

Je ne vais pas m'attarder sur l'installation de PowerShell sous Linux, car la méthode peut changer en fonction de la distribution que vous utilisez. Je vous invite à consulter la documentation de Microsoft, vous allez trouver votre bonheur !

II. Utiliser PowerShell sous Linux

Lorsque PowerShell est installé, vous pouvez ouvrir une console PowerShell à partir de votre shell Linux tout simplement avec la commande suivante :

pwsh

Ensuite, il ne reste plus qu'à exécuter vos commandes. L'avantage de ce mode interactif, c'est que vous bénéficiez de l'autocomplétion des commandes PowerShell. Il est à noter que les binaires Linux peuvent être appelés aussi directement depuis la console PowerShell.

Aperçu de la console PowerShell sous Linux

Quand vous avez terminé, pour retourner à votre shell, il suffira de faire :

exit

Attention, en ouvrant PowerShell de cette façon, vous ne pourrez pas exécuter de commandes qui nécessitent des privilèges élevés. Si vous désirez ouvrir une console PowerShell en tant qu'administrateur (si l'on peut dire ça comme ça), il faudra faire :

sudo pwsh

A utiliser avec précautions, bien sûr.

Néanmoins, si vous souhaitez seulement exécuter une commande, ce n'est pas nécessaire d'ouvrir une console... Il y a plus simple. En effet, nous pouvons utiliser l'argument -command ou -c.

Voici un exemple pour lister le contenu d'un répertoire :

pwsh -command "Get-Item /home/florian"

L'inconvénient, c'est qu'il n'y a pas l'autocomplétion, mais comme vous maîtrisez PowerShell ce n'est pas un problème. 😉

Dans le cas où la commande nécessite des privilèges élevés, il suffira d'ajouter "sudo" :

sudo pwsh -command "New-Item -Type File -Path /var/fichier.txt"

Intéressons-nous maintenant à l'exécution d'un script PowerShell sous Linux.

III. Exécuter un script PowerShell sous Linux

Commençons par créer un script... Pour cet exemple, ce script sera tout simple, nous allons récupérer la liste des utilisateurs de la machine Linux à l'aide du contenu du fichier "/etc/passwd".

Ce fichier contient plusieurs informations où les valeurs sont séparées par le caractère ":". On sait aussi que la première valeur correspond au nom de l'utilisateur. À partir de là, il ne reste plus qu'à récupérer la première valeur de chaque ligne.

Avant de créer le script, je vous invite à récupérer le chemin vers le binaire de PowerShell :

which pwsh

La valeur retournée devrait être :

/usr/bin/pwsh

On va utiliser cette valeur pour déclarer le shebang au début du script.

Désormais, nous sommes prêts à créer le script :

nano /home/florian/GetUser.ps1

On commence par ajouter le shebang sur la première ligne :

#! /usr/bin/pwsh

Puis, on ajoute la ligne qui va permettre de récupérer la liste des utilisateurs :

Get-Content "/etc/passwd" | Foreach-Object{ (($_).Split(":"))[0] }

En image, cela donne :

Un script PowerShell, sous Linux

Enregistrez le script... Maintenant, nous allons voir comment l'exécuter. Tout d'abord, comme n'importe quel script, il faut lui ajouter les droits d'exécution :

chmod +x /home/florian/GetUser.ps1

Comme nous avons précisé le shebang, Linux sait quel interpréteur de script il doit utiliser pour exécuter notre script. Il suffit donc de l'exécuter de cette façon :

./GetUser.ps1

Comme vous pouvez le voir sur la copie d'écran ci-dessous, nous obtenons bien la liste des utilisateurs de notre machine Linux.

On récupère la liste des utilisateurs de Linux avec PowerShell

Une autre manière d'exécuter un script PowerShell sous Linux consiste à appeler le binaire et lui indiquer le chemin du fichier via le paramètre -File ou -f :

pwsh -File "/home/florian/GetUser.ps1"

Sous Linux, la politique d'exécution des scripts PowerShell n'est pas prise en charge. La politique "Unrestricted" est appliquée et ne peut pas être modifiée, ce qui nous permet d'exécuter n'importe quel script.

Maintenant que vous savez comment exécuter un script PowerShell sous Linux, vous n'avez plus d'excuse ! 😉

The post Comment exécuter un script PowerShell sous Linux ? first appeared on IT-Connect.

Tailscale – Votre réseau privé virtuel sans prise de tête

25 juin 2021 à 09:00
Par : Korben

Bon, quand je vous dis VPN, vous pensez à NordVPN ou Surfshark pour chiffrer votre surf quand vous êtes sur un wifi public ou accéder au catalogue Netflix US. Mais un VPN c’est principalement un moyen de créer un réseau privé virtuel sur lequel peut se rejoindre l’ensemble de vos appareils (smartphones, ordinateurs, tablettes…etc.) pour communiquer et partager des fichiers au travers d’Internet en toute confidentialité, comme s’ils étaient sur un réseau local.

Hé oui. C’est surtout ça un VPN.

Les plus curieux d’entre vous auront peut-être mis ça en place après avoir suivi mon tuto pour installer WireGuard sur leur propre serveur. Maintenant si vous n’êtes pas un expert technique de la ligne de commande, j’ai une solution à vous proposer.

Cela s’appelle Tailscale et c’est un service qui vous permet de créer un réseau sécurisé entre vos serveurs, vos ordinateurs et vos instances dans le cloud et cela même si vos machines sont séparées par des pare-feu ou des sous-réseaux.

Cela vous rappellera surement des outils de tunneling comme ngrok ou de réseau privé comme Hamachi (rebaptisé Logmein) ou Freelan.

Niveau tarif, c’est gratuit pour une utilisation personnelle ce qui vous donne le droit de connecter jusqu’à 100 appareils sur le réseau privé. Pour installer Tailscale, c’est super simple. Il suffit d’aller sur la page des téléchargements et de choisir le client adapté à votre OS : Windows, Linux, macOS, Android ou encore iOS. Ensuite il suffit de se connecter avec votre compte TailScale et l’appareil rejoindra votre réseau privé virtuel.

Ainsi chacune de vos machines aura sa propre adresse IP sur ce réseau virtuel privé, ce qui vous permettra d’accéder à leurs services (prise de contrôle à distance, un NAS, un Plesk, accès aux fichiers, passerelle domotique ou que sais-je) sans devoir ouvrir des ports sur le net.

Pas de serveur à gérer, toujours en service, même config pour toutes les machines, gestion des utilisateurs simplifiée, IPs fixes avec possibilité de DNS privé et surtout super simple à configurer et à installer. Et vous pouvez même transférer facilement des fichiers entre vos machines grâce à une feature baptisée Taildrop.

Vraiment pratique !

Tailscale propose également un outil pour lister les services présents sur les machines pour plus facilement retrouver les ports ouverts et accéder en un clic à certains d’entre eux (comme VNC si vous l’avez installé)

Une fonctionnalité baptisée Magic DNS permet également d’enregistrer automatiquement les noms DNS des machines de votre réseau. Ainsi, si vous ajoutez un nouveau serveur web appelé « mon-server » à votre réseau, vous pourrez utiliser directement son nom dans la barre d’adresse de votre navigateur ou dans vos lignes de commande. Tailscale saura les retrouver.

Tailscale permet également de définir des contrôles d’accès basés sur les rôles pour restreindre les serveurs sensibles ou autoriser les personnes de votre choix à ne voir que ce dont ils ont besoin.

Niveau sécurité, Tailscale s’appuie sur le protocole de chiffrement utilisé dans WireGuard (Noise), et tout le trafic réseau reste privé et ne transite jamais par les serveurs de Tailscale. De plus concernant les clés de chiffrement, il y a une rotation automatique des clés chaque heure, ce qui permet de réduire les risques en cas de clé volée ou d’identifiants révoqués.

Enfin, pour plus de traçabilité, chaque connexion est enregistrée de manière centralisée des deux côtés, et peut être consultée à partir d’un tableau de bord et d’une API de journalisation.

Grâce à Tailscale, vous pourrez enfin créer votre propre réseau privé virtuel pour bosser depuis n’importe où comme si vous étiez sur votre réseau local et ça c’est top !

À découvrir d’urgence ici.

Testez la montée en charge de votre serveur avec Locust

17 juillet 2021 à 09:00
Par : Korben

Si vous voulez tester la résistance de votre serveur et l’évolution de ses performances lors d’une augmentation du trafic, rien de mieux qu’un outil de test de montée en charge.

Et c’est pourquoi je vous présente aujourd’hui Locust.

Locust est un outil de test de charge facile à utiliser qui vous permet d’écrire et de jouer des scénarios de test en Python. Ainsi, avec un peu de code, vous pouvez simuler des comportements utilisateurs, qui bouclent ou qui prennent des chemins conditionnels différents.

Locust est également distribué, ce qui signifie que vous pouvez lancer des tests de charges répartis sur plusieurs machines, ce qui permet de simuler des milliers d’utilisateurs simultanés.

Ce qui est sympa également, c’est que Locust possède une interface graphique qui vous affichera la progression de votre test en temps réel. Vous pourrez même modifier la charge pendant l’exécution du test et comme il peut également fonctionner en ligne de commandes, vous pouvez l’intégrer à vos process CI/CD.

Ne pensez pas non plus que Locust soit uniquement dédié à du test de site web. En écrivant un client spécifique, vous pourrez ainsi tester d’autres systèmes ou protocoles.

Pour installer Locust, il vous faudra Python >= 3.6 et lancer la commande suivante :

pip3 install locust

Vous aurez également besoin d’écrire un premier scénario de test. Voici un exemple :

import time
from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(1, 2.5)

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_items(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")
            time.sleep(1)

    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

Si vous regardez le code, vous pouvez voir qu’il y a 2 @task.

Ce sont les tâches qui seront effectuées par les utilisateurs simulés. Lorsque le QuickstartUser s’exécutera, il choisira au hasard l’une des tâches déclarées. Notez que la @task(3) a une pondération plus élevée, donc il y a 3 fois plus de chances que ce soit celle-ci qui soit choisie.

Ensuite, le reste n’est qu’une histoire de post et de get sur différents endpoints de votre site.

Bref, sauvegardez ce script sous la nom de fichier :

locustfile.py

Puis lancez locust :

locust -f locustfile.py

L’outil se lancera et vous donnera une URL à laquelle accéder avec votre ordinateur. Ensuite y’a plus qu’à mettre vos paramètres et à lancer le test.

Le test commencera alors en vrai. J’espère que votre serveur tiendra le coup 🙂

Et vous pourrez voir de beaux graphiques en temps réel, les erreurs rencontrées et bien sûr récupérer toutes les données pour les exploiter ensuite dans d’autres outils.

Locust est distribué sous licence libre et vous pouvez trouver son code en vous rendant sur le github.

Je vous invite également à lire la documentation ici.

Accéder à une partition Linux (ext4, ext3, ext2) depuis Windows

26 juillet 2021 à 17:12
Par : Nautilus

Windows et Linux sont deux systèmes d’exploitation totalement différents. Pour faire simple, ils ne sont pas programmés de la même façon et parlent deux langages différents. Linux est d’ailleurs le noyau de nombreux systèmes tels que Debian, Ubuntu, Mint, etc. Il en résulte qu’un disque (HDD ou SSD) subit un formatage différent pour Windows ( NTFS ou FAT32) ou pour un système basé sur Linux (ext2...

Source

Comment scanner le code de votre infrastructure (IaC) à la recherche d’erreurs ?

31 juillet 2021 à 09:00
Par : Korben

Si vous avez pour habitude de déployer du code dans Docker, Kubernetes, Terraform (pour AWS, Google Cloud Platform ou encore Azure)…etc., vous connaissez peut-être l’IaC.

IaC pour « infrastructure as code » consiste à gérer votre infrastructure technique à l’aide de fichiers de configuration. En gros plutôt que de créer ou modifier manuellement ou au travers de scripts, la configuration de vos serveurs, vous codez tout simplement l’infrastructure dont vous avez besoin dans des fichiers descriptifs de type IaC.

Ce fichier peut ensuite être placé sur un Git ou tout autre outil de versioning. Et c’est au moment de la création de l’infrastructure ou de sa modification qu’il sera utilisé pour automatiser tout le processus. Il existe différents services permettant de déployer de l’IaC parmi lesquels :

  • AWS CloudFormation
  • Ansible
  • Azure Resource Manager
  • Chef
  • Google Cloud Deployment Manager
  • Puppet
  • Rex
  • SaltStack
  • Terraform
  • Vagrant

Cette pratique déjà mise en place dans pas mal de boites permet tout d’abord d’aller beaucoup plus vite dans les déploiements de prod, de QA, de staging…etc. Évidemment, comme on est sur du code qui est versionné, on peut suivre chaque changement au niveau de la config et revenir en arrière ou corriger plus efficacement d’éventuels problèmes de paramétrage.

Et surtout, ça permet d’éviter les étapes manuelles, donc les erreurs humaines et s’assurer que la config est identique ou correcte partout.

Toutefois, les fichiers IaC peuvent parfois contenir des erreurs. Et c’est là qu’entre en jeu Checkov.

Checkov est un outil d’analyse de code permettant de rechercher dans les fichiers IaC, les erreurs de configuration susceptibles d’entraîner des problèmes de sécurité ou de conformité. Checkov s’assure également de la conformité des standards en vigueur dans le domaine (ceux de CIS et AWS notamment)

Checkov comprend plus de 750 règles prédéfinies pour vérifier les problèmes de configuration courants. Et bien sûr, vous pouvez également y ajouter vos propres règles spécifiques si besoin.

Et vous pouvez bien sûr intégrer Checkov dans vos process CI/CD Jenkins, Github Actions, Gitlab…etc

Cet outil supporte le code de déploiement IaC des plateformes :

  • Terraform (pour AWS, GCP & Azure)
  • CloudFormation
  • Azure Resource Manager (ARM)
  • Kubernetes
  • Docker
plateformes IaC

Pour installer Checkov vous pouvez utiliser pip :

pip install checkov

Puis scanner un fichier spécifique comme ceci :

checkov --file /user/korben/example.tf

Ou tout un répertoire :

checkov --directory /user/path/to/iac/code
code checkov

Pour en savoir plus, c’est par ici que ça se passe.

Merci à Laurent

❌