10 erreurs de sécurité à ne pas faire sur votre serveur

- Unix

L'auto-hébergement est une aventure en soi, on a pas forcément toutes les compétences nécessaires pour bien héberger ses services, mais on apprend sur le tas. Cela peut être couteux en temps, mais c'est une bonne manière d'apprendre.
Tous le monde n'a pas forcément les compétences pour bien protéger son serveur, voici une petite liste d'erreur à ne pas commettre lorsque l'on débute...

La sécurité d'un serveur auto-hébergé est vraiment importante car si un intrus parvient à pénétrer votre serveur, il peut s'en servir comme bot, c'est également le cas avec les serveurs chez un hébergeur (quoique...). Mais avec un serveur auto-hébergé le pirate aura accès à votre réseau et les ordinateurs qui y sont connectés, ce qui est vraiment dangereux pour vos données personnelles.

C'est pourquoi il vaut mieux s'assurer que son plug est à l'abri avec des petits conseils efficaces et simple à mettre en place. Voici une liste d'erreurs qu'il ne faut pas commettre sur son serveur auto-hébergé :

  1. Ne pas avoir d'utilisateur personnel

    Normalement dès l'installation de votre OS, on vous demande de créer un utilisateur "classique", i.e un utilisateur qui n'a pas de droits d'administrateur. Faites le et utilisez le pour vous connectez à votre serveur.

  2. Autoriser la connexion SSH avec l'utilisateur root

    Si vous autorisez l'utilisateur root à se connecter, il ne reste plus qu'au pirate à brut-forcer le mot passe pour entrer sur votre machine. Editer le fichier `/etc/ssh/sshd_config` et chercher la ligne suivante pour la mettre à "No" si ce n'est pas déjà fait :

    PermitRootLogin no
    
  3. Activer les sudoers

    Les sudoers sont des utilisateurs qui peuvent être assimilés comme des utilisateurs root et faire des actions d'administration sur la machine. Je vous déconseille de les utiliser car, si un intrus arrivent à se connecter avec votre utilisateur, il lui sera très facile de se connecter en root puisqu'il connait votre mot de passe et que c'est ce même mot de passe qui est utilisé pour se connecter avec la commande `sudo`.
    C'est pourquoi je vous déconseille d'installer sudoers et de vous connecter en root avec la commande suivante :

    ``` bash su root ```
  4. Avoir le même mot de passe que root

    Ce conseil peut paraître bateau mais il est tout de même bon de le répéter. Si un intrus parvient à se connecter avec votre mot de passe il se connectera sans problème en root et il aura la totale maîtrise de votre serveur.
    A éviter, même si je sais pas expérience qu'il est plus facile de se souvenir d'un seul mot de passe.

  5. Ne pas installer fail2ban

    Cet utilitaire est vraiment un must-have pour la sécurité de votre serveur. Il permet de bannir des utilisateurs qui ont essayés de se connecter à un service et qui ont échoués. Au bout d'un certains nombre de tentatives, l'IP est black-listée pendant une durée plus ou moins longue. L'installation et la configuration est vraiment simple et c'est d'une efficacité à toute épreuve :

    su root
    apt-get install fail2ban
    
  6. Ne pas avoir de firewall

    Un aspect de la sécurité pas simple à appréhender lorsque l'on ne travaille pas dans le réseau. Personnellement, je dispose d'une Freebox et je l'ai configurée pour avoir le moins de port ouvert possible, le strict minimum vital pour un serveur web. Les autres services étant accessibles uniquement de l'intérieur de mon réseau.

  7. Afficher les tokens de votre serveur

    Les tokens sont des informations sur la version d'un serveur qui sont générés dans les entêtes HTTP d'une page web. Pour ne pas donner cette information sur la version, il faut les cacher ainsi un pirate ne saura pas si la faille qu'il utilise est comblée sur la version de votre serveur.
    Pour nginx, il suffit d'ajouter la ligne suivante dans votre fichier de virtual host, celui qui contient la balise `server` :

    server_tokens off;
    
  8. Ne pas avoir son système d'exploitation à jour

    Il est bien connu que les dernières versions logiciels contiennent les derniers correctifs et les mises à jours de sécurité. Alors pourquoi se priver d'une protection gratuite et simple à mettre en place. Il vous suffit de maintenir votre OS à jour.

  9. Faire un proxy ouvert à tout le monde

    Un proxy est un moyen efficace de relayer des requêtes d'un serveur A vers un serveur B. C'est un outil utilisé par les pirates pour ne pas se faire tracer, par exemple (ou difficilement). Bref, si vous hébergez un proxy sur votre serveur ne l'ouvrez pas au quatre vents, sinon votre machine risque de subir des milliards de requêtes et finalement de tomber.
    Si vous devez utiliser un proxy, je vous recommande de filtrer les requetes par IP, par domaine ou avec de l'authentification, sinon vous comprendrez vite votre bétise.

  10. Mettre les droits de vos fichiers à 777

    Combien de fois, ai-je trouvé des répertoires avec tous les droits pour tous les utilisateurs ? Cette mauvaise pratique est utilisée pour essayer de régler un problème, mais cela peut engendrer d'autres problèmes de sécurité. Evitez au maximum la commande `chmod` pour donner tous les droits à un utilisateur.
    Augmenter les droits progressivement, mais ne passer pas directement en mode 777.

Conclusion

Cette liste de recommandations n'est pas forcément complète et je suis sur que des personnes en connaissent un plus grand rayon que moi. Généralement ces erreurs, je les ai commises à un moment de ma carrière avant de me rendre compte de leur dangerosité pour mon serveur. Je suis presque sur qu'aujourd'hui encore il y a des failles auxquels je n'ai pas pensé et qui mettent mon serveur en danger.
L’intérêt de faire ces erreurs est de progresser et d'améliorer ces compétences dans le monde l'hébergement.