Résumé des épisodes précédents. Nous avons évité les freeze de notre Dédibox puis avons commencé à la sécuriser.

Nous allons maintenant terminer le boulot.

Seconde partie - Chapitre 2 : Un peu de /proc, une once de fail2ban et un soupçon de chkrootkit

1/ Sécuriser les accès réseau :

Pour cette partie, je vous conseille de vous référer à cette excellente documentation.

  • Protection contre le synflood :

Tapez[1] :

# echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
# echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
  • Protection contre les redirections ICMP :
# echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
# echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects
  • Logguer les Martiens[2]
# echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
  • Faire fi du Source Routing :
# echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
  • Yo. Pas de Smurf Attack chez moi :
# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Vous pouvez compléter en fouillant plus avant dans les options sysctl, si vous le souhaitez.

2/ Installer fail2ban :

Fail2ban permet d'éviter les gros nazes - et ils sont nombreux - qui tentent de s'introduire chez vous en les bannissant dès lors que le nombre de tentatives de connexion défini par vous est dépassé.

Installons la bête :

# apt-get install fail2ban

puis, éditons le fichier de configuration de fail2ban :

# nano /etc/fail2ban/jail.conf

Modifions les lignes de jail.conf comme suit :

[ssh] 

enabled = true 
logpath = /var/log/auth.log 
port = ssh 
filter  = sshd 
timeregex = S{3}s{1,2}d{1,2} d{2}:d{2}:d{2} 
timepattern = %%b %%d %%H:%%M:%%S 
failregex = : (?:(?:Authentication failure|Failed [-/\w+]+) for(?: illegal user)?|Illegal user|Did not receive identification) .$ 
maxretry = 3 
findtime = 600 
bantime = 1800 

[postfix] 

enabled  = false 
port     = smtp 
filter   = postfix 
logpath  = /var/log/postfix.log

Redémarrons fail2ban-client et relançons le :

# fail2ban-client stop
# fail2ban-client start

Et pour terminer, vérifions le bon fonctionnement :

# fail2ban-client -d

Vous devriez obtenir les premiers signes de fonctionnement de l'engin.

3/ Un détecteur de rootkit

Nous allons maintenant passer à l'installation de chkrootkit. Nous programmerons un envoi de mail automatique du rapport quotidien ensuite :

Tapez :

# sudo apt-get install chkrootkit

et éditez votre crontab

# crontab -e

et insérez cette ligne :

0 3 * * *  chkrootkit 2>&1 | mail votre@adresse.mail -s "Rapport quotidien RootKit"

De cette manière, vous recevrez tous les matins à 3 heures l'état des tentatives rootkit éventuelles.

C'est tout pour l'instant. La suite est consacrée à l'installation de PHP5, Mysql et Apache

Notes

[1] Je le rappelle, une ligne précédée de $ se tape en utilisateur courant, et précédée de # en root

[2] Je me comprends