IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Problème avec SIP et Netfilter sous Debian 4


Sujet :

Sécurité

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Problème avec SIP et Netfilter sous Debian 4
    Bonjour

    Pour montrer le problème de protocole SIP avec les routeurs nats et firewalls, j'ai implementer l'architecture réseau suivante :

    - Une machine A dans un LAN privé (192.168.1.0/24), avec une adresse statique 192.168.1.10. sous debian etch 4.
    -Un serveur brekeke pour SIP dans le même LAN avec une adresse statique 192.168.1.4, sous Win 7.
    -une machine NF avec 2 interface représentant le NAT et Firewall en utilisant Netfilter 1.3 sous Debian 4. l'interface interne eth1 ayant l'@ 192.168.1.1, l'externe eth0 : 193.168.1.1.
    -Une machine B coté public avec une adresse statique 193.168.1.11.
    -Un serveur brekeke pour SIP dans le coté public avec une adresse statique 193.168.1.5, sous Win 7.
    voir le schéma suivant (les serveurs ne se figurent pas) :

    (A)192.168.1.10--------------------------------192.168.1.1 (NF) 193.168.1.1 --------------------------193.168.1.11( B )

    J'ai spécifié les règles suivantes d'iptables (Netfilter) pour la machine NF (nat firewall) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    ----------------------------------------------------------------------------------------------
    #!/bin/bash
    # Ce script met en place la politique de filtrage
    # ----------------------------------------------------------------------
    #
     
    # On charge les modules nécessaires
    modprobe ip_tables
    modprobe iptable-filter
    modprobe iptable-nat
     
    # Initialisation des règles
    iptables -F
    iptables -X
    iptables -t nat -F
    iptables -t nat -X
     
    # Politique du pare-feu
    # --------------------
     
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
     
    # Mise en oeuvre du routage
    echo 1 > /proc/sys/net/ipv4/ip_forward
     
    # Autorise les paquets du protocole ICMP
    iptables -A INPUT -p icmp -j ACCEPT
    iptables -A OUTPUT -p icmp -j ACCEPT
    iptables -A FORWARD -p icmp -j ACCEPT
     
    # Regles du parefeu
    # -----------------
     
    # Autorise toute connexion deja etablie et relative
    iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # Ouverture du port 5060 pour sip
    iptables -A FORWARD -p udp --dport 5060 -j ACCEPT
     
    # Regles de NAT
    # ----------------------------------------------------
    # Regles de NAT sortant (partage de la connexion Internet)
    # Tout ce qui sort, prend l'adresse de eth0 au passage
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -p udp --dport 5060 -j SNAT --to-source 193.168.1.1:10080
    -----------------------------------------------------------------------------------------

    Le problème c'est avec ces 2 règles spécifiées dans ce script pour le nat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -p udp --dport 5060 -j SNAT --to-source 193.168.1.1:10080
    Le masquerading (masquage) ne fonctionne pas avec SIP, ni l'adresse source ni le port change dans les paquet SIP, ils sortent toujours avec leur addresse/port privé (192.168.1.4/5060), et l'appel se fait avec succès, pourquoi donc le netfilter ne les change pas en sortie de l'interface eth0 de la machine NF.

    Noter que la traversée du NAT, upnp, et nat-pmp sont désactivés au niveau des deux serveurs Brekeke. le port utilisé par les clients et les serveurs est 5060.
    Netfilter version 1.3, x-lite 2, Debian 4 pour les machines A et B, Win 7 Pour les serveurs Brekeke.

    Y a-t-il des suggestions, S.V.P ? Merci pour votre lecture, efforts, et aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Le problème c'est avec ces 2 règles spécifiées dans ce script pour le nat :
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
    et
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -p udp --dport 5060 -j SNAT --to-source 193.168.1.1:10080

    Le masquerading (masquage) ne fonctionne pas avec SIP, ni l'adresse source ni le port change dans les paquet SIP, ils sortent toujours avec leur addresse/port privé (192.168.1.4/5060), et l'appel se fait avec succès, pourquoi donc le netfilter ne les change pas en sortie de l'interface eth0 de la machine NF.
    Le problème, c'est que tes paquets SIP n'iront jamais jusqu'à la règle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -p udp --dport 5060 -j SNAT --to-source 193.168.1.1:10080
    puisqu'ils seront inteceptés par la règle de MASQUERADE.

    Inverser les 2 règles me semblerait plus logique : si c'est un paquet SIP à destination du port UDP 5060, alors il sera correctement NATté. Si ça n'est pas un paquet SIP, il sera intercepté par la règle de MASQUERADE.

    Steph

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    merci IP STEPH

    mais je pense que la premiere règle (masquerade) suffit pour faire le NAT meme pour SIP, elle est plus générale que la deusieme (SNAT).
    je vais essayer ta propos.............

    merci.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par n_zerrouki Voir le message
    mais je pense que la premiere règle (masquerade) suffit pour faire le NAT meme pour SIP, elle est plus générale que la deusieme (SNAT).
    Oui, si tu retires la 2ème règle, normalement les paquets SIP sortiront en IP source 192.168.1.1 et TCP destination 5060.

    Steph

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Malheureusement Steph

    ta propo n'a pas marché, Le NAT reste non fonctionnel pour les paquets SIP, pas changement d'adresse source ni de port.
    Ce que je veux moi, c'est de faire le NAT avec Netfilter et les paquets SIP doivent sortir avec l'adresse public 193.168.1.1/10080 ou autre port (est pas 192.168.1.1/5060).
    mais il (NAT) ne fonctionne pas seulement pour SIP, les paquets RTP changent leur adresse source à 193.168.1.1 (sans changement de port), ça m'étonne vraiment!!!!!

    peut être le serveur SIP brekeke qui l’empêche? mais tous ses services de traversée du NAT et ses protocoles sont désactivés!

    merci!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il me semblait bien que SIP au travers de NAT ne peut pas fonctionner "nativement", cf

    http://www.linuxjournal.com/article/9399

    c'est un problème typique de "NAT Traversal"...

    Il faut charger le module ip_conntrack_sip ip_nat_sip (qui doit être dans ton kernel s'il est récent).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # On charge les modules nécessaires
    modprobe ip_tables
    modprobe iptable-filter
    modprobe iptable-nat
    modprobe ip_conntrack_sip ip_nat_sip
    je pense qu'en gardant les mêmes règles de filtrage et de NAT que tu avais proposées, ça devrait fonctionner...

    Steph

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Il me semblait bien que SIP au travers de NAT ne peut pas fonctionner "nativement".

    C'est exactement ça ce que je veux montrer, mais j'ai trouvé qu'il fonctionne normal, et le NAT qui n'est pas fonctionnel.

    en fait, le problème de SIP avec le NAT ( appelé NAT traversal) c'est à cause du NAT qui change l'@ et le port source des paquets, ce qui pose problème à la réponse qui est destiné à l'@ privée de l'appelé et le port 5060 (par exemple 193.168.1.1/5060 comme mon cas), mais le port 5060 n'est pas connu par le nat et parefeu, alors la réponse est ignoré et l'appel échoue.
    Moi j'ai pas tombé sur ce problème puisque le NAT (Netfilter) ne fait pas son role, il y a pas de masquage et changement d@ et de port, c'est ça mon problème, Pourquoi le masqurade ne marche pas pour SIP avec les règles déja définies?

    MErci!

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour STEPH

    Voici cette figure ci-attachée qui explique le NAT traversal.

    Merci
    Images attachées Images attachées  

Discussions similaires

  1. Problème avec NetBeans et cppunit sous Debian
    Par HDThoreau dans le forum NetBeans
    Réponses: 0
    Dernier message: 11/10/2014, 16h14
  2. Problème de protocole SIP avec Netfilter sous debian 4
    Par n_zerrouki dans le forum Debian
    Réponses: 0
    Dernier message: 10/02/2013, 17h31
  3. Problème avec la librairie rfunc sous Firebird
    Par yayelix dans le forum SQL
    Réponses: 4
    Dernier message: 17/05/2005, 16h49
  4. problème avec une page web sous firefox!
    Par 3psilOn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/11/2004, 11h49
  5. Problème avec le port série sous Windows XP
    Par didou2dek dans le forum Composants VCL
    Réponses: 6
    Dernier message: 02/09/2003, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo