Changement port ssh
Il est évident que la sécurité de votre Asterisk depends aussi avant tout de la sécurité de votre serveur. Les règles de sécurité d'un serveur Linux s'appliquent donc évidemment pour sécuriser votre asterisk.
Si vous ne l'avez pas fait, changer le port ssh est pas mal du tout, c'est trés simple et limite déjà quelques scans. Soit on édite /etc/ssh/sshd_config en spécifiant un port diffèrent du port 22, soit encore plus simple si on est derrière un routeur, on forwarde un port externe diffèrent de 22 vers le port 22 de votre serveur.
Install Fail2ban
Fail2ban permet ensuite de bloquer des tentatives de logins.
Le principe de fail2ban est d'examiner des fichiers de logs à la recherche de tentatives d'accès erronées. A partir d'un certain nombre d'erreurs paramétrables, il crée une règle iptables bloquant l'ip d'ou vient la tentative rendant toute tentative ultérieure impossible.
Sous debian, la ligne de commande ci-dessous suffit. Par défaut, les règles pour le port ssh seront activées.
Code:
aptitude install fail2ban
Par principe, j'ajoute le subnet local et d'autres ips fixes externes. Un exemple ci dessous.
Code:
ignoreip = 127.0.0.1 192.168.10.1/24 hosta.infimo.fr hostb.infimo.fr
A ce stade, fail2ban est opérationnel pour ssh. La config se trouve un peu plus bas dans jail.conf si vous désirez regarder la config.
Config fail2ban pour Asterisk
Occupons nous désormais de la protection d'asterisk.
D'abord nous allons créer un filtre dans /etc/fail2ban/filter.d pour detecter les echecs de connection.
Code:
cd /etc/fail2ban/filter.d touch asterisk.conf
EDIT _AK_ : attention le site interprete certaines balises et les regles ne sont pas complète, il faut faire un copier coller des regles dans le fichier texte 'filter-asterisk' ci joint
On rajoute la section activant ce filtre dans /etc/fail2ban/jail.conf
Code:
[asterisk-iptables] enabled = true filter = asterisk action = iptables-allports[name=ASTERISK, protocol=all] sendmail-whois[name=ASTERISK, dest=admin@asterisk_france.org, sender=fail2ban@asterisk_france.org] logpath = /var/log/messages maxretry = 5 bantime = 600000
Si on detecte 5 echecs ( détecté grâce au filtre asterisk défini dans /etc/fail2ban/filter.d/asterisk.conf ),
on réalise les actions suivantes:
- blocage par iptables complet de l'ip source des échecs
- envoi d'un email à admin@asterisk_france.org provenant de fail2ban@asterisk_france.org
Dernière étape indispensable. Le fichier log ici est /var/log/messages. Il faut donc que asterisk loggue les infos correctement au bon format compris par fail2ban dans /var/log/messages
Il suffit pour cela de rajouter la ligne suivante dans /etc/asterisk/logger.conf
Code:
syslog.local0 => notice ;
Code:
asterisk -rx "logger reload"
Code:
dateformat=%F %T
Code:
/etc/init.d/fail2ban restart
A noter que fail2ban scanne les fichiers de logs indiqués. Ceux-ci sont généralement bufferisés par le système. Fail2ban ne pourra donc se déclencher que à l'écriture réelle sur le fichier ce qui explique pourquoi il peut y avoir plus de tentatives que le nombre indiqué dans la conf avant le blocage.
Voila. L'installation est en fait très simple et elle complète efficacement la mise en place du firewall indiqué dans un précédent article.
Tellement simple qu'il serait dommage de s'en priver...
Fastm3.
Message vBulletin