Protéger SSH avec sshguard OLD (1.4)

De Linux Server Wiki
Aller à la navigation Aller à la recherche

Debian Lenny : Vérifiez que vous avez les dépôts backports configurés dans /etc/apt/sources.list :

deb http://backports.debian.org/debian-backports lenny-backports main
aptitude install sshguard

Configurez la whitelist :

echo "127.0.0.1" > /etc/sshguard_whitelist
echo "::1" >>  /etc/sshguard_whitelist

Lancement manuel

Support IPv4 :

iptables -N sshguard

Support IPv6 :

ip6tables -N sshguard

Paramétrer le blocage pour les ports ssh, ftp, pop, imap, http et https :

iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143,80,443 -j sshguard
ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143,80,443 -j sshguard

Configurez la restauration automatique des règles iptables lors d'un reboot :

iptables-save > /etc/sshguard_iptables
ip6tables-save > /etc/sshguard_ip6tables

Créez le fichier /etc/network/if-up.d/sshguard contenant :

#! /bin/sh
iptables-restore < /etc/sshguard_iptables
ip6tables-restore < /etc/sshguard_ip6tables

Rendez ce fichier exécutable :

chmod +x /etc/network/if-up.d/sshguard

Après un reboot, vous pouvez vérifier que les règles ont bien été redéfinies :

iptables --list sshguard
ip6tables --list sshguard

Enfin, voici comment lancer sshguard :

tail -n0 -F /var/log/auth.log | /usr/sbin/sshguard -a 2 -p 1800 -w /etc/sshguard_whitelist &

Vous pouvez ajouter cette ligne à la fin du fichier /etc/rc.local

Lancement automatique avant ssh

Créez le fichier /etc/init.d/sshguard :

#! /bin/sh

case "$1" in
        start)
                iptables -N sshguard
                ip6tables -N sshguard
                iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143,80,443 -j sshguard
                ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143,80,443 -j sshguard
                tail -n0 -F /var/log/auth.log | /usr/sbin/sshguard -a 2 -p 1800 -w /etc/sshguard_whitelist &
        ;;
        stop)
                killall /usr/sbin/sshguard
                iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143,80,443 -j sshguard
                ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143,80,443 -j sshguard
                iptables -X sshguard
                ip6tables -X sshguard
        ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        ;;
esac

Rendez le exectuable :

chmod +x /etc/init.d/sshguard
update-rc.d sshguard start 15 2 3 4 5 . stop 85 1 .