La sécurité sur Linux

Accès root à une machine

Si vous avez un accès physique et que vous êtes capable de la redémarrer

Si c'est grub sans mot de passe, on peut éditer la ligne de commande, et rajouter 1 ou init=/bin/sh à la ligne du kernel (habituellement sur la deuxième ligne). Ensuite, le mode single sera utilisé. Sous redhat/fedora, aucun mot de passe est demandé. On se retrouve en compte root. On peut dès lors éditer le fichier /etc/passwd, enlever le x sur la ligne root:x:... et rebooter normalement. Le compte root (local) de l'ordinateur n'a plus de mot de passe. On peut ensuite le changer avec la commande passwd.

Si grub contient un mot de passe et que la partition avec grub n'est pas encrypté, il faut être capable de charger un système alternatif au démarrage (exemple: knoppix, ubuntu live). Ensuite, on monte le disque dur avec grub (mount /dev/hda1), on édite le fichier /boot/grub/menu.lst. On regarde la ligne qui commence par "password". Soit qu'on regarde le mot de passe (non encodé en md5), soit qu'on commente ou efface. On reboote avec un grub sans mot de passe, ou avec un mot de passe connu.

Autre: faille de sécurité

Je n'indique rien pour ce cas.

Sécurité des fichiers sur un partage NFS

La sécurité des fichiers sur un partage NFS est presque nulle. Surtout si on a accès au compte root d'un ordinateur qui monte le NFS. Si on veut consulter un fichier d'un usager il suffit de faire cette démarche:

Regarder le uid (user identificator) du fichier avec ls -ln fichier. Il s'agit du 2e nombre après les droits d'accès.

-rw-r--r-- 1 1000 500 4096 Oct 10 18:56 fichiertest

Ici, le uid est 1000, le gid est 500 et la taille est 4096. Le 1 au début est le nombre de références au fichier et ne nous sert pas ici.

Ensuite, on se connecte en root sur notre ordinateur avec su - ou sudo su -.

En usager root, on ajoute un compte avec le uid 1000. S'il existe déjà, alors il faut faire un su nomUser. Pour ajouter le compte, on ajoute la ligne en fin de fichier /etc/passwd:

test::1000:500::/:/bin/bash

On enregistre le fichier, et on se connecte en tant qu'usager test: su - test.

Une fois que nous sommes en usager test, on peut vérifier qu'on a bien le bon uid avec la commande: id test

Avec ce uid, on peut maintenant éditer à volonté les fichiers qui appartiennent au uid 1000 sur le partage NFS.

Sécurité dans les applications

  • Jabber: le mot de passe est codé en clair sur le serveur et habituellement dans les préférences du client. Sécurité = confiance à l'administrateur du serveur
  • Gaim: le mot de passe est codé en clair dans le répertoire ~/.gaim/accounts.xml
  • Firefox/Thunderbird/Mozilla: les mots de passe retenus sont codés en base 64 dans le répertoire des profils de l'application. Le fichier possède l'extension ".s". Dans les fichiers ".s", il y'a une ligne *\=password=\ suivi d'une ligne avec ~UnMotDePasse. Ce mot de passe (sans le tilde) est codé en base64. On peut facilement le décoder en ligne de commande comme suit:
    php -r echo "echo base64_decode('UnMotDePasse');" 
    ou avec des scripts sur internet
  • mysqld: le mot de passe root peut être changé par n'importe qui qui peut redémarrer le serveur avec l'option --skip-grant-tables. Seul le root peut redémarrer le serveur habituellement. Une fois redémarrer avec l'option, on peut se connecter sans mot de passe, et modifier le mot de passe actuel du root. Sur debian, on peut utiliser le compte administrateur de debian (/etc/mysql/debian.cnf) si on peut être root sur la partition.

Sécurité sur le réseau

Les mots de passe envoyés en HTTP, protection Apache simple (.htaccess sans digest) et FTP (en autres) sont codés clairement dans les paquets TCP. Cela signifie que tout ceux qui ont accés á votre ordinateur (en root), aux routeurs (root) ou au serveur distant (root) peuvent voir les paquets et vos mots de passe.