Bonjour,
Tout d'abord merci. Super tuto, très clair. Je venais de me faire autoban par mon serveur (une vrai galère, et je ne sais pas pourquoi cela est arrivé...). Petit ssh du bureau pour réaliser le tuto, et en rentrant, je pouvais à nouveau me connecter en ssh.
Par contre, j'ai eu un petit problème sous Debian 8 avec le script. J'ai du le modifier pour qu'il s'exécute sans lancer d'erreur.
Pour ce qui ont rencontre le même problème :
#!/bin/bash
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
xx=$(host xxx.ddns.net | awk '{print $4}') #récupère mon ip externe du domicile
vv=`sed -n 25p /etc/portsentry/portsentry.ignore.static` # récupère l'ip mise en whitelist de portsentry, modifier le N° de ligne en
#fonction du contenu de ce fichier
if [ "$xx" = "" ];then exit;fi #au cas ou le serveur ne soit pas joignable
sed -in "/$xx/d" /etc/hosts.deny #supprime mon ip externe d'un bannissement éventuel
if [ "$vv" != "$xx" ] #si changement d'ip
sed -i "15d;14aALL: $xx" /etc/hosts.allow #remplace l'ancienne ip par la nouvelle, modifier N° de ligne en fonction du contenu
#actuel du fichier
sed -i -e "s/\/8.*/\/8 $xx/g" /etc/fail2ban/jail.local #idem pour fail2ban ligne : ignoreip = 127.0.0.1/8 xxx.yyy.zzz.hhh
sed -i "25d;24a$xx" /etc/portsentry/portsentry.ignore.static #idem pour portsentry, et modifier N° ligne
service fail2ban restart && service portsentry restart
fi
devient :
#!/bin/bash
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
xx=$(host xxx.ddns.net | awk '{print $4}') #récupère mon ip externe du domicile
vv=`sed -n 25p /etc/portsentry/portsentry.ignore.static` # récupère l'ip mise en whitelist de portsentry, modifier le N° de ligne en
#fonction du contenu de ce fichier
if [ "$xx" = "" ];then exit;fi #au cas ou le serveur ne soit pas joignable
sed -in "/$xx/d" /etc/hosts.deny #supprime mon ip externe d'un bannissement éventuel
if [ "$vv" != "$xx" ] ; then #si changement d'ip
sed -i "15d;14aALL: $xx" /etc/hosts.allow #remplace l'ancienne ip par la nouvelle, modifier N° de ligne en fonction du contenu
#actuel du fichier
sed -i -e "s/\/8.*/\/8 $xx/g" /etc/fail2ban/jail.local #idem pour fail2ban ligne : ignoreip = 127.0.0.1/8 xxx.yyy.zzz.hhh
sed -i "25d;24a$xx" /etc/portsentry/portsentry.ignore.static #idem pour portsentry, et modifier N° ligne
service fail2ban restart && service portsentry restart
fi
Il faut se renseigné un minimum sur le fonctionnement de sed si l'on veut bien choisir ses lignes.
A sa voir, si je prends la ligne
sed -i "15d;14aALL: $xx" /etc/hosts.allow
elle signifie que sed ouvrira le fichier /etc/hosts.allow, supprimera le contenu de la ligne 15 et ajouter à la ligne 14 le contenu de la variable $xx (votre nouvelle ip)
donc, à adapter à vos fichier.
Bravo Jean-Luc, la frustration de l'autoban est juste horrible.