Sécuriser un serveur linux (Partie 1)

juillet 16th, 2008
|

Vous le savez, Linux est un -si ce n’est le- plus stable des OS que l’on puisse croiser de nos jours. C’est aussi un système très populaire. Peut importe ce dont vous avez besoin, vous trouverez chaussure a votre pied… Mais il ne faut pas faire les choses n’importe comment, je vais donc essayer d’aborder ici un point très important: La sécurité.

Attention, je n’ai jamais eu la prétention d’être un expert dans ce domaine, je vais donc seulement vous parler de ce je connais.. (les bases). Lire cet article ne vous rendra pas aussi populaire que Kevin Mitnik ou assimilé. De plus c’est un domaine très vaste et en constante évolution. Un bon administrateur saura se tenir informé et devra s’y intéresser: http://www.securityfocus.com/, http://www.linuxsecurity.com/… seront de bonnes sources d’inspiration :)

  • l’Installation
  • Tout d’abord je vais supposer que vous savez installer la distribution qui vous intéresse et que c’est fait – beau raccourci, hein ! – Mais sans X11.. parceque-c’est-moche-et-que-je-suis-un-l33t ? Non. Mais dans ce tutoriel, je ne l’aborderais pas.

    Règle n°1: Si vous n’avez pas besoin de quelque chose (services, applications..) ne l’activez pas ! C’est très important, la raison est simple: Plus vous avez de services activés, plus vous encourez le risque d’être vulnérable a un exploit… Un chemin royal pour qui en voudrait a vôtre machine.

  • Verrouillage
  • Première étape pour sécuriser vôtre serveur, plusieurs choses importantes:

    Changer le mot de passe root: J’insiste sur ce point, mais je vois trop souvent de mot de passes composés de quelques lettres ! Dans la plupart des cas, il devra être composé d’au moins 12 caractères dont 4 spéciaux (%*/;…) et 4 numériques. ex: Rv1-45/o;.V6 qui est considéré comme fort. Hey, vous au fond ! Inutile de l’écrire sous le clavier, juste un petit effort pour le retenir.. ;)
    De plus, le changer régulièrement c’est pas une mauvaise chose.. tout les 2 mois par exemple.
    Sachez qu’il existe des application qui peuvent « scanner » vos machines pour essayer différents mot de passes a partir de « dictionnaires », donc évitez la date de naissance de votre belle-mère.
    Pour ce qui est des scanners (brute-force) nous verrons, plus tard comment s’en protéger un minimum.

    Pour changer votre mot de passe root:

    1
    # passwd

    Pour changer le mot de passe de l’un de vos utilisateurs:

    1
    # passwd lenomdelutilisateur

    Désactiver les suid: Parfois très pratiques – et très dangereux – le SUID (« Set User ID ») vous permet de faire fonctionner une application en tant qu’autre utilisateur. Imaginez que quelqu’un ai accès a l’une de ces applications (via un shell, apache).. et puisse lire votre /etc/shadow.. toute la sécurité de votre serveur serait compromise.

    Pour trouver tout les binaires qui utilisent un SUID, tapez la ligne suivante:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    # ls -alF `find / -perm -4000` | more
    -rwsr-xr-x    1 root     root  60104 Apr  1  2002 /bin/mount*
    -rwsr-xr-x    1 root     root    35192 Apr 18  2002 /bin/ping*
    -rwsr-xr-x    1 root     root    19116 Apr  8  2002 /bin/su*
    -rwsr-xr-x    1 root     root    30664 Apr  1  2002 /bin/umount*
    -r-sr-xr-x    1 root     root    120264 Apr  9  2002 /sbin/pwdb_chkpwd*
    -r-sr-xr-x    1 root     root    16992 Apr  9  2002 /sbin/unix_chkpwd*
    -rwsr-xr-x    1 root     root    37528 Jan 17  2002 /usr/bin/at*
    -rwsr-xr-x    1 root     root    34296 Mar 27  2002 /usr/bin/chage*
    -rws--x--x    1 root     root    12072 Apr  1  2002 /usr/bin/chfn*
    -rws--x--x    1 root     root    11496 Apr  1  2002 /usr/bin/chsh*
    -rwsr-xr-x    1 root     root    21080 Apr 15  2002 /usr/bin/crontab*
    -rwsr-xr-x    1 root     root    36100 Mar 27  2002 /usr/bin/gpasswd*
    -rwsr-xr-x    1 root     root    19927 Apr 17  2002 /usr/bin/lppasswd*
    -rws--x--x    1 root     root    4764 Apr  1  2002 /usr/bin/newgrp*
    -r-s--x--x    1 root     root    15104 Mar 13  2002 /usr/bin/passwd*
    -rwsr-xr-x    1 root     root    14588 Jul 24  2001 /usr/bin/rcp*
    -rwsr-xr-x    1 root     root    10940 Jul 24  2001 /usr/bin/rlogin*
    -rwsr-xr-x    1 root     root    7932 Jul 24  2001 /usr/bin/rsh*
    -rwsr-xr-x    1 root     root    219932 Apr  4  2002 /usr/bin/ssh*
    ---s--x--x    1 root     root    84680 Apr 18  2002 /usr/bin/sudo*
    -rwsr-xr-x    1 root     root    32673 Apr 18  2002 /usr/sbin/ping6*
    -r-sr-xr-x    1 root     root    451280 Apr  8  2002 /usr/sbin/sendmail.sendmail*
    -rwsr-xr-x    1 root     root    20140 Mar 14  2002 /usr/sbin/traceroute*
    -rwsr-xr-x    1 root     root    13994 Apr 18  2002 /usr/sbin/traceroute6*
    -rws--x--x    1 root     root    22388 Apr 15  2002 /usr/sbin/userhelper*
    -rwsr-xr-x    1 root     root    17461 Apr 19  2002 /usr/sbin/usernetctl*

    NOTE: Le « s » signifie que le fichier est SUID.

    La plupart des administrateurs systèmes recommandent de désactiver les services comme « ping » ou traceroute » (lorsque vous n’en avec pas besoin).. Je vous conseillerais de désactiver, dans ce cas: chage, chfn, chsh, mount, umount, gpasswd, usernetctl, traceroute, traceroute6, newgrp, ping6, ping.

    Désactiver le SUID sur ces binaires empêche tout autre utilisateur que le propriétaire de l’exécuter (tout en sachant que la plupart de ces services aurons besoin d’être exécuté en root pour fonctionner)

    1
    2
    # chmod 111 /chemin/du/binaire
    # chattr +I /chemin/du/binaire

    Leave a comment: