====== Sécurité sur les serveurs (sysadmin) ====== Cet article s'adresse aux personnes qui gèrent l'infrastructure et le système des serveurs : les sysadmin. Il concerne un système sous Linux (dans nos exemple, Debian stable). C'est un pense-bête plus qu'un vrai cours. Voir aussi * [[fr:consignes_securite_people]] * [[fr:consignes_securite_admins]] * [[fr:consignes_securite_sysadmins]] ===== Outils de sécurité ===== Installer fail2ban, Rkhunter, debsums (pour debian) apt-get install fail2ban rkhunter debsums ==== Rkhunter ==== Lorsque que Rkhunter détecte "quelque chose", ça ne veut pas forcément dire que c'est grave, mais il faut enquêter. Retrouver les warnings dans les logs : cat /var/log/rkhunter.log | grep -i "warning" Remonter les logs pour plus de détail dans ''/var/log/rkhunter.log'' === Commandes utiles === Vérifier la version de rkhunter : rkhunter --versioncheck Mettre à jour le programme : rkhunter --update Lister les différents tests effectués : rkhunter --list Effectuer une vérification : rkhunter --checkall === Documentation === * https://doc.ubuntu-fr.org/rkhunter ==== Fail2ban ==== [[http://www.fail2ban.org/wiki/index.php/Main_Page|Fail2ban]] permet de surveiller les tentatives de connexion ratées. Il est un peu technique à configurer, mais bien documenté. Il permet de bloquer les attaques destinées à craquer un mot de passe en essayant toutes les combinaisons possibles (attaque par //bruteforce//). Fail2ban peut aussi prendre pas mal de mémoire s'il est mal configuré. Surveillez uniquement les services utiles. apt-get install fail2ban cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local Prenez le temps de lire ce fichier et la doc, tranquillement. Quelques trucs à configurer quoi qu'il arrive : * **ignoreip =** Mettez votre ip personnelle, si vous n'êtes pas en dynamique, ça vous évitera d'être bloqué parce que vous avez oublié le mot de passe... [[http://www.mon-ip.com/ip-dynamique.php|Savoir si on a une IP dynamique, et sinon, quel est notre adresse IP]]. * **bantime = 86400** Temps de ban en secondes. 86400 secondes correspond à une journée, ce qui est un temps assez long pour embêter les bots, et assez court pour ne pas bloquer un admin amnésique. * **findtime = 3600** Temps avant de recommencer. Ne pas mettre trop grand pour éviter que fail2ban analyse de longs fichiers de log, mais quand même assez long pour que les attaquants ne recommencent pas trop vite. 3600 correspond à une heure. * **maxretry = 6** Maximum de tentative autorisée par une adresse IP avant d'être bannie (pour le temps du bantime). 6 me semble un bon nombre : un humain a de quoi se tromper un peu, mais aucun mot de passe sérieux ne peut être craqué en 6 tentatives. Ensuite, chaque service est configuré dans la section [JAIL]. [ssh] enabled = true # Pour activer la surveillance de ce service port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6 Relancez la configuration avec fail2ban-client reload Vérifiez l'état des prisons : fail2ban-client status Pour la doc, voir * http://doc.ubuntu-fr.org/fail2ban * http://www.fail2ban.org/wiki/index.php/Main_Page ==== Debsums ==== Debsums va comparer l'empreinte md5 avec les empreintes officielles. Pour lister les erreurs : debsums -s Vérifier les paquets installés et leurs fichiers de configuration et lister les fichiers modifiés : debsums -ca ==== Les ports et le pare-feu ==== Bien configurer le pare-feu. Cette partie est à améliorer, parce que les pare-feu, iptable et tout ça, c'est le bordel, c'est sacrément compliqué, et pourtant essentiel. Pour lister les ports ouverts sur son serveur : netstat -a Depuis un autre ordi : nmap ip Dans l'absolu, vos serveurs doivent être protégé par un pare-feu qui est si possible situé sur une machine différente. Les connexions en provenance d'internet passent par le pare-feu (qu'il s'agisse de requête web, ssh et autres) qui les redirigent ensuite vers les divers serveurs ; même trajet au retour, les serveurs passent par le pare-feu avant que l'information soit retransmise aux utilisateurs. {{ :fr:reseau_parefeu.jpg | Schéma des communications via le pare-feu}} Cela veut dire que c'est sur le serveur du pare-feu que le certificat ssl sera configuré, entre autre. ===== Configuration des services de base ===== ==== SSH ==== SSH doit être bien configuré afin de limiter la portée des attaques. Voir l'article détaillé sur [[fr:ssh|SSH]]. ==== HTTPS ==== Sauf cas très particulier, toutes les pages web devraient être accessibles uniquement via https. C'est absolument incontournable lorsque le serveur et le client échangent des informations, afin que les mots de passe ne soient pas transmis en clair sur le réseau. Donc on configure bien son https. Voir [[fr:https_ssl|l'article détaillé]]. ==== Apache2 ==== Voir la page dédiée [[fr:apache]]. {{tag> Serveur Sysadmin Sécurité }}