Publié le 15-08-2023 | Catégorie: Les prérequis pour la cybersécurité
Le but de cet article est de vous enseigner les bases de linux ainsi que les connaissances nécessaires pour pouvoir vous débrouiller avec les commandes linux. Quand je dis "vous débrouiller avec les commandes linux", je veux dire que vous serez capables de passer à une distribution de pentesting et de progresser sans trop de freins dans le domaine de la cybersécurité avec linux.
Introduction à linux
linux est un système d'exploitation open-source, c'est-à-dire que le code linux est accessible à tous. Il a été créé en 1991 par Linus Torvalds, qui a souhaité développer un système d'exploitation similaire à UNIX, mais accessible à tous et gratuit. Depuis lors, linux a connu une croissance exponentielle, avec de nombreuses distributions et une communauté passionnée de développeurs et d'utilisateurs.
Les quatre grandes libertés de l'open-source
La liberté d'exécution pour tous les usages
La liberté d'étudier le fonctionnement du programme et de l’adapter à ses besoins.
La liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies).
La liberté d’améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.
Les distributions linux
Une distribution linux est un ensemble cohérent de logiciels basés sur le noyau linux, associé à des utilitaires système, des gestionnaires de paquets, des environnements de bureau et d'autres outils. Chaque distribution est adaptée pour répondre aux besoins spécifiques des utilisateurs. Certains d'entre vous connaissent peut-être kali linux qui est spécialisée dans le pentesting, mais il y en a beaucoup d'autres telles que debian (réputée pour sa stabilité) ou Ubuntu (la plus connue),... En effet, étant donné que le code linux est open-source, tout le monde peut reprendre le code, y intégrer ses propres programmes et interfaces et ainsi créer sa propre distribution linux. Le gros point positif est que malgré la grande diversité des distributions, les commandes linux resteront les même peu importe votre distribution. Cet article est donc valable pour toutes les distributions.
Les avantages de linux
Gratuit et open-source : linux est distribué sous une licence open-source, ce qui signifie qu'il est gratuit et que le code source est accessible. Les utilisateurs peuvent l'étudier, le modifier et le distribuer librement.
Sécurité : linux est réputé pour sa sécurité. Étant moins répandu que certains autres systèmes d'exploitation, il est moins sujet aux attaques ciblées. De plus, les mises à jour régulières et les correctifs de sécurité maintiennent le système robuste.
Performance et stabilité : linux est réputé pour sa stabilité et sa performance. Le noyau linux est bien optimisé et peut être utilisé sur diverses plates-formes, y compris les serveurs, les ordinateurs de bureau et les appareils mobiles.
Liberté de personnalisation : avec une multitude de distributions et d'environnements de bureau disponibles, les utilisateurs ont la liberté de personnaliser leur expérience linux selon leurs préférences.
Gestionnaire de paquets : les gestionnaires de paquets facilitent l'installation, la mise à jour et la suppression de logiciels de manière centralisée.
Compatibilité matérielle : de nombreuses distributions linux offrent une excellente compatibilité matérielle, ce qui permet de redonner vie à des ordinateurs plus anciens.
La communauté : linux est doté d'une communauté actives et composée de nombreux passionnés. Lorsque vous rencontrerez un problème, vous serez sûr d'avoir une aide de qualité dans un délai relativement raisonnable.
Les désavantages de linux
Courbe d'apprentissage : pour les nouveaux utilisateurs, la courbe d'apprentissage de linux peut être abrupte, surtout si l'on passe d'un système d'exploitation propriétaire tel que Windows ou macOS.
Compatibilité logicielle : bien que linux offre de nombreuses alternatives logicielles, certains logiciels spécifiques ne sont pas disponibles ou nécessitent des solutions de contournement.
Support technique : comparé aux systèmes d'exploitation grand public, le support technique pour linux peut être limité pour certaines distributions. Mais généralement, la communauté autour de linux vous aidera toujours
Les jeux : linux a énormément d'avantages mais ce système d'exploitation n'est vraiment pas fait pour les gamers. Il y a certe quelques jeux intégrés (et encore, ça dépend des distributions) mais la plupart des salons de jeux les plus connus ne sont pas compatibles sur linux.
Les raisons de passer à linux
Liberté et éthique : en choisissant linux, vous soutenez la philosophie de l'open-source et la libre circulation des connaissances.
Sécurité et stabilité : linux est réputé pour sa sécurité, ce qui en fait un choix attrayant pour les utilisateurs soucieux de leur vie privée et de la protection de leurs données.
Performances et ressources système : linux est souvent plus léger en termes de ressources système, ce qui signifie qu'il peut permettre de meilleures performances sur des machines moins puissantes.
Personnalisation : vous pouvez personnaliser l'apparence et le comportement de votre système selon vos préférences. De plus, vous pouvez intégrer les programmes que vous souhaitez et même créer les vôtres.
Apprendre la cybersécurité : en effet, en raison de l'efficacité du travail en ligne de commande linux, des outils de script et des programmes/distributions liés au pentesting, il est fortement recommandé de passer à linux lorsque l'on veut s'améliorer dans le domaine de la cybersécurité.
Quelle distribution choisir?
Personnellement, je vous en conseillerais trois en fonction des différents profils d'utilisateurs.
Si vous n'êtes pas très expérimenté, je vous conseille la distribution Debian. Elle est réputée pour sa stabilité et de nombreuses distributions que vous utiliserez par la suite sont basées sur Debian. C'est la bonne option pour se faire la main et apprendre à travailler avec le terminal en lignes de commande linux
Ensuite, si vous êtes un peu familiarisé avec les commandes linux et que vous comptez faire de votre PC linux votre Pc principal, je vous conseille Ubuntu qui est la distribution la plus utilisée et donc celle avec le plus de programmes pré-intégrés pour les tâches quotidiennes d'un ordinateur.
Pour finir, si vous vous lancez dans la cybersécurité, vous aurez besoin d'une distribution spécialisée dans le pentesting. C'est là que je vous propose kali linux avec une énorme communauté (pas toujours expérimentée) autour de cette distribution, vous pourrez échanger avec d'autres personnes qui sont potentiellement dans la cybersécurité comme vous.
Introduction aux commandes linux
Comme vous le savez peut-être, il y a des compétences importantes à apprendre avant de se lancer dans la cybersécurité. Apprendre à utiliser linux en est une et c'est ce que nous allons commencer à apprendre ici en voyant les principales commandes linux.
Après avoir lu et étudié les commandes linux exposées dans cet article, vous serez capables de vous débrouiller avec le terminal et donc, vous serez aptes à progresser sans trop de freins avec n'importe quelle distribution linux.
Pourquoi apprendre linux?
Il y a plein de raisons d'apprendre linux mais nous allons uniquement parler des raisons liées à la cybersécurité. D'abord, linux est open-source et vous pouvez coder vous-même vos propres programmes et les intégrer directement à votre distribution. Ensuite, la communauté active et passionnée autour de linux vous assure d'avoir de l'aide rapidement en cas de problème technique. Pour finir, il y a toutes les distributions linux spécialisées dans le pentesting qui vous aideront énormément tout au long votre carrière de hacker éthique. La maîtrise du terminal de linux est la première compétence que vous devez apprendre concernant ce système d'exploitation. En effet, la plupart des programmes que vous allez utiliser n'auront pas d'interface graphique et vous devrez donc savoir utiliser vos programmes en lignes de commande linux.
Premières commandes linux
sudo *une commande* : ceci vous permet d'exécuter des commandes linux en tant qu'administrateur pour peu que vous connaissiez le mot de passe admin
sudo su : Permet de passer en mode superutilisateur (avec tous les droits).
man *une commande* : c'est la commande qui permet d'avoir une des informations sur une commande. Vous tapez man et une commande sur laquelle vous voulez des informations.
pwd : indique le répertoire dans lequel on est.
cd *chemin vers un répertoire* : change de répertoire (un répertoire est un dossier).
cat *chemin absolu vers un répertoire* : affiche ce qu'il y a dans le répertoire.
cat *nom d'un fichier* : affiche ce qu'il y a dans le fichier
Commandes d'installation (apt-get)
apt-get update : met à jour la liste des paquets disponibles à partir des sources de logiciels.
apt-get upgrade : met à jour les paquets installés vers les versions les plus récentes disponibles.
apt-get install *nom_du_paquet* : installe un nouveau paquet logiciel.
apt-get remove *nom_du_paquet* : Supprime un paquet logiciel, mais conserve ses fichiers de configuration.
Commandes de gestion de fichiers/dossiers
touch *nom d'un nouveau fichier* : crée un nouveau fichier.
rm *nom d'un fichier (ou chemin absolu)* : supprime le fichier en question.
cp *nom d'un fichier existant* *nom d'un nouveau fichier* : copie le fichier existant sous le nom d'un nouveau fichier.
mv *nom d'un fichier existant* *nom d'un nouveau fichier* : renomme un fichier.
mv *nom fichier* *chemin absolu* : déplace le fichier.
ls -la *nom d'un fichier* : montre les droits d'un fichier.
chmod _ _ _ *nom d'un fichier* : modifie les droits d'un fichier.
echo *une chaîne de caractères* > *un nom de fichier* : écrit la chaîne de caractère dans le fichier EN SUPPRIMANT L'ANCIEN CONTENU.
cat *nom d'un fichier 1* >> *nom d'un fichier 2* : met le contenu du fichier 2 à la suite du contenu du fichier 1.
Pour insérer une chaîne de caractères à la suite d'un contenu dans un fichier, on utilise >> à la place de > dans les commandes linux et inversément si on veut remplacer du contenu par un autre. En ce qui concerne les droits sur les fichiers, c'est un peu plus compliqué. Il y a 3 groupes sur un système linux : les propriétaires, le groupe, et les autres. Dans la commande linux chmod _ _ _ *nom d'un fichier*, les trois tirets du bas représentent respectivement les 3 groupes. Il y a également 3 droits sur les fichiers : lecture (r), écriture (w) et exécution (x). La lettre r=4 la lettre w=2 et la lettre x=1. Et lorsqu'on veut modifier les droits. On doit additionner les lettres en fonction des droits qu'on veut donner. Par exemple si on veut que le groupe des proprios aient tous les droits (4+2+1=7) et que les deux autres groupes aient les droits de lecture et d'écriture sur le fichier1, on écrira : chmod 766 fichier1.
Commandes linux pour la gestion de services
ps : permet de voir les processus du système linux
systemctl disable *nom de service* : ne redémarre pas le service au prochain redémarrage du système.
systemctl stop *nom de service* : arrête un service jusqu'au prochain démarrage.
systemctl status *nom de service* : affiche l'état actuel d'un service.
nohup *nom d'une commande* &: permet de continuer une commande linux après avoir éteint la machine (oui cela vous servira notamment quand vous essayerez de brute forcer des mots de passe).
Conclusion
Pour résumé, nous avons que linux est un système d'exploitation open-source divisé en plein de distributions avec chacunes leurs spécificités. Nous avons également vu tous les avantages et inconvénients de linux ainsi que les profils types d'utilisateurs qui seraient adaptés à ce système d'exploitation. Pour finir, malgré la difficulté d'utilisation en lignes de commande linux et les autres quelques désavantages, je vous recommande vivement de vous intéresser à linux voire de l'essayer en machine virtuelle et pourquoi l'installer sur votre PC de tous les jours. Nous avons également vu les commandes linux utiles que vous utiliserez couramment lors de votre parcours. Je vous conseille de vous familiariser avec toutes ces commandes linux en travaillant sur une machine virtuelle de type debian (elle est réputée pour sa stabilité) pendant quelques temps avant de passer sur votre machine de pentesting (kali ou autre). Ensuite, bien que je pense que ce soit suffisant pour apprendre le hacking, rien ne vous empêche d'approfondir vos connaissances du terminal de linux en vous documentant de votre côté. Vous pouvez rejoindre des forums, demander à chat gpt ou simplement consulter la documentation officielle de linux.