Affichage des résultats 1 à 6 sur 6

Discussion: Bloquer les scans.

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1

    Bloquer les scans.

    Une autre possibilité en plus des fails2ban et autres.
    L'idée ici est de bloquer tout le monde sauf bien sur, les ip externes d'ou on s'enregistre et les fournisseurs de trunk sip ou iax.

    Etape 1:
    Mettre en places un petit script iptables. Ici l'exemple est pour debian.

    On va creer un petit script firewall qui sera executé au demarrage de la machine.
    Code:
    cd /etc/init.d/
    touch firewall
    chmod +x firewall
    update-rc.d firewall defaults

    voila pour l'installation du script firewall. Voyons maintenant son contenu.
    A adapter !!!

    Code:
    #!/bin/sh
    # description: Firewall
    
    
    IPT=/sbin/iptables
    
    
    stop() {
    $IPT -F INPUT
    $IPT -F LOG_DROP
    $IPT -X LOG_DROP
    }
    
    
    
    start() {
    # logs - drop
    # tout n'est pas necessaire, c'est juste le principe
    $IPT -N LOG_DROP
    $IPT -A LOG_DROP -j LOG -p tcp --dport 3306 --log-prefix '[IPTABLES DROP MYSQL] : '
    $IPT -A LOG_DROP -j LOG -p tcp --dport 22 --log-prefix '[IPTABLES DROP SSH] : '
    $IPT -A LOG_DROP -j LOG -p tcp --dport 10000 --log-prefix '[IPTABLES DROP WEBMIN] : '
    $IPT -A LOG_DROP -j LOG -p tcp --dport 5060 --log-prefix '[IPTABLES DROP SIP] : '
    $IPT -A LOG_DROP -j LOG -p udp --dport 5060 --log-prefix '[IPTABLES DROP SIP] : '
    $IPT -A LOG_DROP -j LOG -p tcp --dport 5038 --log-prefix '[IPTABLES DROP ASTMAN] : '
    $IPT -A LOG_DROP -j LOG -p tcp  --log-prefix '[DROP] : '
    $IPT -A LOG_DROP -j REJECT
    
    
    
    # host a bannir
    # $IPT -A INPUT -i eth0 -p tcp --source x.x.x.x -j DROP
    
    
    # facultatif
    # on autorise tout ce qui vient du subnet, a adapter pour vous.
    # iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT
    
    
    
    #asterisk
    # supprime erreur dans log asterisk
    $IPT -A INPUT -p udp -m udp --dport 5060 -m string --string "Cirpack KeepAlive Packet" --algo bm -j DROP
    
    
    # pour le port 5060 on autorise uniquement certaines ips
    # Tout le subnet, a dapter pour VOTRE config
    $IPT -A INPUT  -s 192.168.10.0/24 -i eth0 -p udp --dport 5060  -j ACCEPT
    #on autorise certains fournisseurs sip
    #on ajoutera aussi ses propres ip externes
    $IPT -A INPUT  -s sip.ovh.net -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT  -s sip3.voip-centrex.net -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT  -s sip.intervoip.com -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT  -s sip.a.lomacom.com -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT  -s freephonie.net -i eth0 -p udp --dport 5060  -j ACCEPT
    #keyyo
    $IPT -A INPUT  -s 83.136.161.0/24 -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT  -s 83.136.162.0/24 -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 5060  -j  LOG_DROP
    $IPT -A INPUT -i eth0 -p udp --dport 5060  -j  LOG_DROP
    
    $IPT -A INPUT -i eth0 -p udp -m udp --dport 10000:20000  -j ACCEPT
    
    
    # Le reste est fonction de votre config, juste pour info
    # si vous autorisez le subnetlocal, juste ssh est necessaire normalement.
    # On le mettra sur un autre port de preference.
    # on pourra limiter l'acces ssh a certaines ips avec la meme methode que ci dessus
    $IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
    $IPT -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 143 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 4025 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
    $IPT -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
    $IPT -A INPUT -i eth0 -p tcp --dport 5038 -j ACCEPT
    
    
    #ping
    $IPT -A INPUT -i eth0 -p icmp -j ACCEPT
    
    # on rejette tout les autres
    $IPT -A INPUT -i eth0 -j LOG_DROP
    }
    
    case "$1" in
    
    start)
            start
            echo "FireWall Telisk -- Start OK";
    
    exit 0
    ;;
    
    
    stop)
            stop
            echo "FireWall Telisk -- Stop OK";
    exit 0
    ;;
    restart)
            stop
            start
            echo "FireWall Telisk -- Restart OK";
    
    exit 0
    ;;
    
    *)
    echo "Usage: /etc/init.d/firewall {start|stop|restart}"
    exit 1
    ;;
    esac
    Les blocages du port sip seront loggues dans le fichier log systeme ce qui permettra d'ajouter les ips si necessaires et voir le blocage au cas ou on n'a oublié ce firewall.

    Avec ce script vous bloquez tous les scans sauf les ips de confiance ce qui est assez efficace. Les fails2ban et controle acl sont tout de meme utiles. On est jamais assez prudent.

    Remarques bienvenue.
    Ecrit en 2mn...
    Cheers !!
    Fastm3.
    Dernière modification par fastm3 ; 14/09/2010 à 16h08.

Les tags pour cette discussion

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •