Règles iptables afin de bloquer les scanners SIP

Iptables SIP scanner script

Les serveurs SIP (Asterisk, FreeSwitch … mais aussi les serveurs propriétaires) sont constamment scannés par des automates ou des humains avec pour seule idée, découvrir une faille à exploiter. En effet, les enjeux financiers sont importants.
Je partage avec vous ce jour, un script iptables pour bloquer les scanners SIP (à adapter notamment les ports si vous utilisez des différents de 5060).

iptables -N SIPDOS

iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sundayddr” –algo bm –to 65535 -m comment –comment “deny sundayddr” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sipsak” –algo bm –to 65535 -m comment –comment “deny sipsak” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sipvicious” –algo bm –to 65535 -m comment –comment “deny sipvicious” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “friendly-scanner” –algo bm –to 65535 -m comment –comment “deny friendly-scanner” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “iWar” –algo bm –to 65535 -m comment –comment “deny iWar” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “sip-scan” –algo bm –to 65535 -m comment –comment “deny sip-scan” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: Nmap NSE” –algo bm –to 65535 -m comment –comment “deny Nmap NSE” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “User-Agent: VaxSIPUserAgent” –algo bm –to 65535 -m comment –comment “deny VaxSIPUserAgent” -j SIPDOS
iptables -A INPUT -i eth0 -p udp -m udp –dport 5060 -m string –string “From: sipp <sip:” –algo bm –to 65535 -m comment –comment “deny sipp” -j SIPDOS

iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sundayddr” –algo bm –to 65535 -m comment –comment “deny sundayddr” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sipsak” –algo bm –to 65535 -m comment –comment “deny sipsak” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sipvicious” –algo bm –to 65535 -m comment –comment “deny sipvicious” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “friendly-scanner” –algo bm –to 65535 -m comment –comment “deny friendly-scanner” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “iWar” –algo bm –to 65535 -m comment –comment “deny iWar” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “sip-scan” –algo bm –to 65535 -m comment –comment “deny sip-scan” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: Nmap NSE” –algo bm –to 65535 -m comment –comment “deny Nmap NSE” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “User-Agent: VaxSIPUserAgent” –algo bm –to 65535 -m comment –comment “deny VaxSIPUserAgent” -j SIPDOS
iptables -A INPUT -i eth0 -p tcp -m tcp –dport 5060 -m string –string “From: sipp <sip:” –algo bm –to 65535 -m comment –comment “deny sipp” -j SIPDOS

iptables -A SIPDOS -j LOG –log-prefix “firewall-sipdos: ” –log-level 6
iptables -A SIPDOS -j DROP

Si vous avez des idées pour l’améliorer, toutes les suggestions sont les bienvenues, l’idée étant de faciliter la sécurisation des serveurs SIP au plus grand nombre.

Mises à jour :

  • 4 août 2016 : ajoût de règles + correction typo suite au commentaire de Ztur

Auteur/autrice : Mathias

Qui suis-je ? Je travaille dans les télécoms et réseaux depuis 1996 (oui, le siècle dernier). Je suis ingénieur en génie électrique et informatique industrielle réseaux et télécoms. Je suis passionné de technologies et je participe à plusieurs projets touchant les télécoms (asterisk et freeswitch notament) et la sécurité informatique (PfSense). J’interviens en tant que freelance afin d'accompagner les entreprises et opérateurs en leur apportant mon expérience et mon expertise.

2 réflexions sur « Règles iptables afin de bloquer les scanners SIP »

  1. Salut,

    Super, cool, par contre je pense que tu as fais une petite erreur dans la ligne suivante (dernière ligne du bloque tcp) :

    iptables -A INPUT -i eth0 -p udp -m tcp –dport 5060 -m string –string “User-Agent: sipcli” –algo bm –to 65535 -m comment –comment “deny sipcli” -j SIPDOS

    Tu as écrit « -p udp -m tcp » au lieu de « -p tcp -m tcp »

    Personnellement, j’ai les règles suivantes en place : Nmap, VaxSIPUserAgent et sipp en plus 😉

    iptables -A INPUT -p udp -m udp –dport 5060 -m string –string « User-Agent: friendly-scanner » –algo bm –to 65535 -j DROP
    iptables -A INPUT -p udp -m udp –dport 5060 -m string –string « User-Agent: sipsak » –algo bm –to 65535 -j DROP
    iptables -A INPUT -p udp -m udp –dport 5060 -m string –string « User-Agent: sipcli » –algo bm –to 65535 -j DROP
    iptables -A INPUT -p udp -m udp –dport 5060 -m string –string « User-Agent: Nmap NSE » –algo bm –to 65535 -j DROP
    iptables -A INPUT -p udp -m udp –dport 5060 -m string –string « User-Agent: VaxSIPUserAgent » –algo bm –to 65535 -j DROP
    iptables -A INPUT -p udp -m udp –dport 5060 -m string –algo bm –to 65535 –string « sipvicious » -j DROP
    iptables -A INPUT -p udp -m udp –dport 5060 -m string –algo bm –to 65535 –string « From: sipp <sip:" -j DROP

    1. Bonjour,

      Je te remercie pour ton message. Je corrige et complète avec les 3 user agents complémentaires. Sachant que pour sipp, il faut garder cette règle en mémoire, sinon on risque d’obtenir un résultat inattendu pendant les tests 😉

      Merci

      Mathias

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *