Logo Khaganat
Traductions de cette page?:

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.

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

Fail2ban

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… 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

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.

 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 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 l'article détaillé.

Apache2

CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/securite_sysadmin.txt · Dernière modification : 2023/06/21 08:30 de zatalyz

Licences Mentions légales Accueil du site Contact