Affichage des résultats 1 à 6 sur 6

Discussion: Bloquer les scans.

Vue hybride

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.

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    Citation Envoyé par fastm3 Voir le message
    Avec ce script vous bloquez tous les scans sauf les ips de confiance ce qui est assez efficace.
    j'ai pas bien compris le mécanisme. on bloque les scan ou on bloque toute les IP non autorisées (ie, comptes nomades, etc...) ? si c'est que les scan, peux tu expliquer comment ?

    merci

    J.

  3. #3
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    Citation Envoyé par jean Voir le message
    j'ai pas bien compris le mécanisme. on bloque les scan ou on bloque toute les IP non autorisées (ie, comptes nomades, etc...) ? si c'est que les scan, peux tu expliquer comment ?

    merci

    J.
    Le port 5060 est la porte d'entree d'Asterisk. Ici, on limite l'acces à la porte d'entrée a une liste d'ips ( ton/tes fournisseurs sip, tes extensions enregistrees en remote le cas echeant ).
    Donc toutes les autres ips n'ayant pas accés a la porte d'entrée ( drop par iptables ), il n'y aura plus de scan sauf potentiellement des ips autorisées ce qui est peu probable puisque normalement ce sont des ips de confiance.

    Une fois les ips de confiance identifiées ce qui sera facile vu que j’intègre un log des tentatives bloquées sur le port 5060, ton serveur fonctionnera comme avant , les scans en moins. Tiens je viens de voir qu'il manque une ligne pour udp 5060 pour le log des tentative bloquées, je fixe.
    Fastm3.

  4. #4
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    J'ai extrait ci-dessous juste la partie bloquant les ips qui ne sont pas de confiance pour que ca soit plus simple.
    Code:
    $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 ipconfiance_1 -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT  -s ipconfiance_n -i eth0 -p udp --dport 5060  -j ACCEPT
    $IPT -A INPUT -i eth0 -p udp --dport 5060  -j  LOG_DROP
    En gros, on dit ok pour ipconfiance_1 et ipconfiance_1 et tous les autres, on les bloque en les envoyant vers la chaine qui va logger le blocage. Si on ne veux pas de log, remplacer LOG_DROP par DROP.
    J'espere que c'est plus clair.
    Fastm3.

  5. #5
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    ok - donc en fait, c'est pas un mécanisme qui bloque les scan, c'est un mécanisme qui bloque les IP inconnues.

    Comment gère tu les comptes nomades ou clients avec IP dynamique ?

  6. #6
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    Citation Envoyé par jean Voir le message
    ok - donc en fait, c'est pas un mécanisme qui bloque les scan, c'est un mécanisme qui bloque les IP inconnues.
    Oui et non, car si tu bloques les ips inconnues, tu bloques les scans...Mais je pense qu'en effet tu as saisi le principe.
    Comment gère tu les comptes nomades ou clients avec IP dynamique ?
    C'est a eviter. Free, sfr pro, orange pro ont tous des ips fixes, donc c'est souvent possible pour des postes fixes externes sinon, la solution est le vpn.
    Mais rien ne t'empeche deja de mettre un /24 ou meme /16 des differents subnets pour les ips dynamiques.
    Si tu ne peux pas faire autrement, fail2ban + acl pour toutes les extensions ou l'on peut.
    On limite aussi les comptes nomades a 1 canal par exemple et un script d'alerte quand le volume augmente significativement. Mais ce ne sont que des mesures qui limiteront la casse.
    Je ne suis pas sur d'ailleurs de l'interet des postes nomades en sip sachant que plein d'offres pro seront quasi aussi competitives avec le risque en moins et une qualité maitrisée.
    Au pire disa et/ou callback , mais bon c'est le genre de chose qu'on monte souvent pour le fun et pour un usage perso ponctuel.
    Fastm3.

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
  •