20/09/2024

Commandes et Système

Commandes et SystèmeServices

Surveiller les accès au fichier /etc/passwd avec auditd

I. Présentation Je vais ici vous présenter une méthode pour surveiller les accès au fichier « /etc/passwd ». Je note que je viens de découvrir l’outils qui a l’air de contenir des contextes d’utilisation vraiment étendues et intéressants et qui sert globalement à surveiller (auditer) les accès aux fichiers sous une distribution Linux (En sachant que sous Linux, tout est fichier). Notre contexte d’utilisation sera ici le fichier « /etc/passwd » mais on pourrait tout à fait adapter le tutoriel pour un autre fichier. II. Installation Nous allons maintenant installer l’outil (qui est nativement présent sur les distributions CentOS/RHEL). Sous CentOS : yum install auditd Sous Debian : apt-get install auditd On retrouvera donc ensuite la configuration d’auditd dans « /etc/audit/auditd.conf » (Je pense que je ferais un tutoriel plus complet pour décrire complètement auditd un peu plus tard) et l’état des règles qui régissent le périmètre de surveillance d’auditd dans « /etc/audit/auditd.rules ». On peut noter les règles dans ce fichier puis recharger la configuration ou alors

Lire cet article
Base de donnéesCommandes et Système

Sauvegarder une base de données rapidement sous MySQL avec mysqldump

I. Présentation Dans un précédent tutoriel, je vous avais présenté un script qui permettait de sauvegarder une base ou un ensemble de bases de données MySQL. Ce script peut être un peu trop complexe pour une utilisation plus simple de l’outil de sauvegarde disponible nativement dans MySQL, je vais donc vous rappeler ici comment sauvegarder rapidement une base de données MySQL sous Linux en ligne de commande. II. Commande MySQLDump On va donc utiliser la commande MySQLDump qui permet de sauvegarder une base de données pour la stocker dans un fichier .sql que l’on pourra réintégrer plus tard. En somme le fichier .sql contiendra un ensemble de commandes qui, quand il sera lu par MySQL, remettra les données à leur état d’origine (quand elles ont été sauvegardées). MySQLDump est donc directement inclus lors de l’installation d’un serveur mysql. Supposons que l’on souhaite sauvegarder la base de données « web01 » dans le fichier « web01_jeudi19nov.sql », on utilisera la commande suivante : mysqldump -u

Lire cet article
Commandes et Système

Commande shutdown, init 6, reboot, etc, quelle différence ?

I. Présentation Comme beaucoup d’entre vous l’ont probablement déjà remarqué, il existe de multiple commande et façon d’éteindre son système quand on se trouve sous Linux, reboot, halt, poweroff, init 6, init 0, shutdown -r et -h sont des commandes que l’on utilise souvent sans connaitre leur différence, c’est ce que nous allons voir ici. II. Les commandes Il convient ici de commencer par les commandes les plus basiques, ou disons plutôt celles qui sont à la source des autres. Je parle ici de la commande « init » et de ses paramètres « 6 » et « 0 ». La commande init et l’outil qui y est associé permet de gérer le « run-level » du système et des processus qui tournent dessus. Pour faire rapide, un run-level de 0 décrit un système en train de s’arrêter et un run-level de 6 décrit un système en train de redémarrer. Cela a une importance car la mise en run-level 0 ou 6 permet d’envoyer des instructions aux différents

Lire cet article
Commandes et Système

lastb : logs des connexions utilisateurs échouées

I. Présentation Sous Linux, un fichier de log est utilisé pour journaliser les tentatives infructueuses de connexion et, il est consultable grâce à la commande « lastb ». Concernant ce fichier il est situé au chemin suivant : /var/log/btmp II. Le fichier de log Si le fichier « /var/log/btmp » est absent de votre système, vous devez le créer manuellement à l’aide de la commande suivante : touch /var/log/btmp En effet, s’il est absent il ne sera pas créé tout seul à cause d’un choix local de configuration. Si vous désirez activer cette journalisation, créez-le comme indiqué ci-dessus. III. Utilisation Dans le cadre de tests et pour générer des logs, je tente de me connecter sur une machine en utilisant différents comptes utilisateurs. Certains existent réellement, d’autres non. Pour consulter le journal, il suffira d’entrer la commande suivante : lastb Vous obtiendrez un résultat de ce type : On peut voir que les tentatives infructueuses effectuées avec un utilisateur inconnue de la base locale

Lire cet article
Administration RéseauBatchCommandes et Système

Qu’est ce que le traceroute ?

I. Présentation Dans ce tutoriel, nous allons voir qu’est ce que le traceroute, un utilitaire souvent utilisé sous toute distribution qui permet de suivre et de retracer le chemin d’un paquet d’un point A à un point B sur un réseau LAN comme sur internet. Nous verrons comment un traceroute fonctionne, les différences entre les principaux OS et les limites de cet outil. II. Traceroute: qu’est ce que c’est ? Comme dit précédemment, traceroute est un outil qui va permettre, à partir d’un poste A, de suivre le chemin qu’emprunte une communication vers un point B. On dit souvent que « ça passe par Internet » mais nous pouvons avoir des informations plus précises. Traceroute est aussi utilisé dans les réseaux d’entreprises pour connaitre le chemin qu’utilise les flux au sein des réseaux. On peux imaginer une utilisation lors de la configuration d’un protocole de routage par exemple. III. Comment ça fonctionne Techniquement, traceroute a un fonctionnement assez logique. Il utilise le

Lire cet article
Commandes et Système

Vulnix : Solution et explications

I. Présentation Vulnix est une machine virtuelle volontairement vulnérable qui est diffusée sur le site rebootuser.com . Le principe est d’essayer d’attaquer cette machine virtuelle afin de mieux comprendre l’enjeu de la sécurité et de s’entrainer aux tests d’intrusion afin de mieux cerner certaines failles et procédures de sécurité. Nous allons ici voir en détail la solution pour venir à bout de cet exercice et également essayer d’expliquer l’ensemble des procédures et failles de sécurité que nous utilisons. Je déconseille fortement aux lecteurs n’ayant pas essayé de venir à bout de cette machine virtuelle de venir lire ce tutoriel. Le but de l’exercice étant avant tout de découvrir les failles de sécurité par soit même. La machine est à télécharge ici : Télécharger Vulnix Pour l’installer, il suffit de double cliquer sur le .vmx dans l’archive ZIP en ayant un des produits VMware (Player ou Workstation) installé sur sa machine. Pour ma part, j’utiliserais la distribution KaliLinux virtualisée sous VMware

Lire cet article
Commandes et Système

Multitâche et politiques d’ordonnancement sous Linux

I. Présentation Le multitâche a joué (et joue encore !) un rôle primordial dans l’évolution des machines et des systèmes d’exploitation. En effet, il a permis d’augmenter considérablement la capacité de traitement d’un système concernant les différentes tâches qu’il se doit de gérer. Au final, la réactivité du système d’exploitation se voit grandement améliorée. L’une des fonctionnalités principale du noyau Linux, et plus particulièrement de la partie appelée le « Scheduler » ou Ordonnanceur et de gérer la partie multitâche du système d’exploitation, appelée aussi « multitâche préemptif ». Les fonctionnalités principales de l’ordonnanceur d’un noyau Linux est d’élire un processus parmi d’autres qui occupera le processeur pendant un temps donné avant qu’il ne soit préempté au profit d’un autre processus. Ce choix est fait selon la politique d’ordonnancement appliquée et aussi suivant plusieurs critères de sélection personnel à chaque processus dont par exemple la priorité qu’ils ont reçus. La configuration de l’ordonnanceur à travers les différentes politiques d’ordonnancement et

Lire cet article
Commandes et Système

Limiter le nombre de processus créés avec ulimit

I. Présentation Plusieurs sociétés éditrice de système d’exploitation ont choisi de cacher les spécifications de leur produit. Pourquoi ? 1 – En cachant et en verrouillant les spécifications de leurs systèmes, ils évitent (croient éviter ?) qu’un concurrent se base sur leur code pour l’améliorer et en produire un code meilleur, moins bugué et au final produire un système meilleur. 2 – En mettant une couche opaque entre les utilisateurs et le code système, ce dernier devient selon eux moins sujette aux failles et à leurs découvertes puisque on ne divulgue aucunes informations sur la structure du système, son implémentation, etc …, c’est ce qu’on appelle la sécurité par l’obscurité, qui donne une fausse impression de fiabilité et/ou de sécurité. Mais voilà, ceci a peut-être donné ses fruits à un moment donné, mais c’est loin d’être le cas de nos jours. Néanmoins, tous les systèmes heureusement ne sont pas pareils et un d’eux sort tout particulièrement de ce lot et

Lire cet article
Commandes et SystèmeNetfilterServices

Débannir une IP bannie via iptables par Fail2ban

I. Présentation Dans un précédent tutoriel, nous avons vu comment fonctionnait Fail2ban et comment l’installer et le configurer pour une utilisation basique. Nous savons que Fail2Ban peut, entre autre, bannir des IP selon certains critères via le manager de pare-feu Linux. Il peut arriver que nous souhaitions dé-bannir une IP qui a été bannie par Fail2ban en utilisant iptables. C’est ce que nous allons voir ici. II. Afficher l’IP bannie dans iptables La première étape pour dé-bannir une IP bannie via iptables est de repérer la ligne à laquelle elle se trouve dans iptables. On utilise pour cela la ligne de commande suivante : iptables -L Nous aurons alors la sortie suivante : On voit donc plusieurs IP dans la chaine « fail2ban-ssh » qui est le nom par défaut de la chaine où sont indiquées l’état et les IP bannies. On repère donc la ligne sur laquelle se trouve notre IP (par exemple la ligne 2 pour l’IP « 192.168.21.10 » puis ont

Lire cet article
Commandes et Système

Configurer une interface réseau sous CentOs

I. Présentation Dans ce tutoriel, nous allons apprendre à configurer une interface réseau sous la distribution CentOS. II. Créer un fichier interface Nous allons activer l’interface pour qu’elle puisse nous permettre d’accéder au réseau. On se rend pour cela dans le dossier « /etc/sysconfig/network-scripts ». Nous allons ensuite créer un fichier interface. Ce fichier interface correspondra donc à une interface réseau physique et doit être construit d’une manière bien précise. Nous le nommerons « ifcfg-eth0 » en référence à l’interface « eth0 » qui est normalement la première interface utilisée : vim ifcfg-eth0 Nous allons ensuite mettre ces lignes comme base dans le fichier : # Nom du périphérique DEVICE=eth0 # Activation au démarrage ONBOOT=yes # Nom de l’interface NAME=lan # Adresse MAC de l’interface MAC=00:50:56:9F:89:7C III. DHCP Nous allons commencer par configurer l’interface pour qu’elle utilise le protocole DHCP. On ajoute pour cela dans notre fichier la ligne suivante : BOOTPROTO=dhcp On peut également, si on le souhaite, ajouter l’adresse de

Lire cet article
Commandes et Système

Changer le nom d’une machine CentOS

I. Présentation Dans ce tutoriel, nous allons voir comment changer le nom « hostname » d’une machine Linux sous CentOS. Note : Ce tutoriel est valable pour CentOS 6, se référer à cet autre tutoriel pour CentOS 7 : Changer l’hostname CentOS 7 II. Configuration réseau Pour changer le nom d’une machine CentOS, nous avons besoin d’aller modifier un fichier se trouvant dans la configuration réseau de la machine. On ouvre donc avec un éditeur de texte le fichier « /etc/sysconfig/network » et on modifiera la ligne « HOSTNAME= » comme suivant : On mettra donc le nom de notre machine sur cette ligne (« mark-XIII » dans mon exemple ci-dessus). III. Configuration hosts Le fichier hosts permet une résolution des noms au sein d’un réseau, il n’est plus beaucoup utilisé de nos jours mais doit au moins contenir la résolution de nom de notre hôte, nous allons donc aller vérifier si cette information est présente, on ouvre avec un éditeur de texte le fichier « /etc/hosts ». Si l’on

Lire cet article
Commandes et SystèmeServices

Désactiver SELinux sous les distributions Linux

I. Présentation Security Enhanced Linux (SELinux) est un LSM (Module de sécurité Linux) qui à pour fonction de définir une politique de contrôle d’accès plus fine en plus des permissions basiques Linux aux éléments issus d’un système. II. Pourquoi désactiver SELinux SELinux peut, sur des configurations poussées ou spécifiques, devenir bloquant. Il est le plus souvent à activer lorsqu’on le gère totalement ou sur des environnements finaux après l’installation des éléments/services du serveur. C’est un élément de sécurité fiable mais qui n’est pas une nécessité propre au système bien qu’il soit présent par défaut sur certaine distribution comme CentOS. III. Désactivation temporaire Pour désactiver SELinux temporairement, dans le cadre d’un test par exemple : setenforce 0 L’action de cette commande propre à SELinux est de mettre la valeur du fichier /selinux/enforce à 0. Cela signifie qu’il est en mode « permissive », soit en écoute des évènements et en écriture de logs mais il ne bloquera aucun processus et aucune commande. On

Lire cet article
Commandes et SystèmeNetfilter

Désactiver iptables au démarrage sous CentOS

I. Présentation Sous CentOS ou les distributions dérivées, le gestionnaire du pare-feu Netfilter Iptables est par défaut activé. De plus, une configuration restrictive est également par défaut appliquée. Dans certains cas comme lorsqu’un firewall est présent en entrée de réseau, nous voudrons désactiver l’iptables sur notre serveur, c’est ce que nous allons apprendre à faire dans ce tutoriel. II. Désactivation d’Iptables au démarrage Nous allons donc commencer par éteindre iptables sur la machine service iptables stop Dans un deuxième temps nous allons utiliser la commande « chkconfig » qui permet de gérer les processus à démarrer au démarrage de la machine. On pourra voir qu’iptables est bien présent dans ces applications de démarrage avec la commande suivante : chkconfig -list | grep iptables Nous pouvons également voir que l’application « ip6tables » est lancée, il s’agit de l’iptables pour le protocole IPv6 que nous allons également désactiver. Nous pourrons alors désactiver iptables et ip6tables avec les commandes suivantes : chkconfig iptables off chkconfig ip6tables

Lire cet article
Commandes et Système

Un logo au démarrage de votre distribution Linux

I. Présentation Dans ce tutoriel, nous allons voir comment afficher une image au démarrage du terminal, ce qui personnalisera un peu plus votre shell. Vous aurez le choix entre 26 images en ASCII. Elles sont toutes représentatives d’une distribution Linux. A vous de choisir celle qui vous convient. II. Procédure Pour commencer, il nous faudra télécharger le paquet : linux_logo apt-get install linuxlogo Une fois installé, vous pouvez visualiser les différentes images. linux_logo -L 1 Vous verrez alors la première image de la liste. Pour voir les suivantes, changez le chiffre. Vous pouvez aller de 1 à 26. Une fois que vous avez trouver l’image qui vous plait, il suffit de modifier ce fichier. vi /etc/linux_logo.conf Dans ce fichier, toutes les images sont listées. Pour en sélectionner une, il suffit de décommenter la ligne auquel elle correspond. Maintenant, nous allons éditer une autre fichier pour que l’image s’affiche à chaque démarrage. vi /etc/profile Rajoutez cette ligne : linux_logo, à la

Lire cet article
Commandes et Système

Désactiver la prise en charge de l’IPv6 sous Linux

I. Présentation Dans ce tutoriel, nous allons désactiver la prise en charge de l’IPv6 qui est active par défaut dans les systèmes d’exploitation Linux. La plupart des systèmes d’exploitation Linux écrivent leur paramétrage réseau dans le système sysctl (system control). Nous allons utiliser ce système pour effectuer nos modifications. II. Désactiver la prise en charge de l’IPv6 temporairement Pour désactiver la prise en charge de l’Ipv6 temporairement, il suffit de saisir les commandes suivantes : echo ‘1’ > /proc/sys/net/ipv6/conf/lo/disable_ipv6 echo ‘1’ > /proc/sys/net/ipv6/conf/all/disable_ipv6 echo ‘1’ > /proc/sys/net/ipv6/conf/default/disable_ipv6 Ces commandes se chargent respectivement de désactiver la prise en charge de l’IPv6 pour l’interface lo, pour toutes les interfaces actives puis pour toutes les interfaces qui seront crées par la suite. Dans le systèmes de contrôle, « 1 » signifie actif. Cela veut donc dire que la désactivation de l’IPv6 est bien en place. Ces commandes se chargent seulement de stocker les valeurs dans les fichiers respectifs qui sont : /proc/sys/net/ipv6/conf/lo/disable_ipv6 /proc/sys/net/ipv6/conf/all/disable_ipv6 /proc/sys/net/ipv6/conf/default/disable_ipv6 Ces

Lire cet article