Forum Linux.général règles IPTables

Posté par  . Licence CC By‑SA.
Étiquettes :
0
14
avr.
2020

Bonjour,

Je suis entrain de tester IPtables et j'ai besoin d'aide.

Ma plateforme de test :

Réseau 1 ---- enp0s3 / enp0s8 ---- Réseau 2
Ubuntu Debian Ubuntu

Sur mon réseau 1 j'ai une W10 et un Debian
Sur mon réseau 2 une W10

Entre les 2 réseaux un machine debian avec 2 cartes réseau qui fait office de routeur

Je souhaite bloquer l'ensemble des protocoles de mon réseau 2 vers le réseau 1 sauf ICMP, DNS, HTTP et HTTPS.

Pour le moment j'ai réussi à tout bloquer
iptables -A FORWARD -j DROP

Débloquer le ping

iptables -I FORWARD -p icmp -j ACCEPT

Mais je n'arrive pas à débloquer le reste. Pouvez m'indiquer les commandes ?
Merci

  • # Pas le même type de protocoles ?

    Posté par  . Évalué à 2.

    Hello azertya,

    Je ne suis pas du tout expert réseau ni IPTables

    De ce que j'en sais :

    • ICMP est un protocole réseau au même niveau que TCP sur la couche OSI
    • DNS, HTTP et HTTPS sont au niveau de la couche logicielle donc au dessus de la couche TCP (et UDP dans le cas de DNS)

    Pour débloquer DNS, HTTP et HTTPS, il faut que tu fasses des règles plus élaborées qui vont prendre en compte les ports sources et destinations

    Julien_c'est_bien (y'a pas que Seb)

  • # modèle OSI

    Posté par  . Évalué à 4.

    Iptables permet d'agir sur les couches 3 et 4 du modèle OSI.
    ICMP est un protocole de niveau 3, donc c'est ok.
    DNS, HTTP, HTTPS sont des protocoles sur la couche 5. Iptables ne peut donc pas gérer ces protocoles.

    Tu peux cependant filtrer en fonction des ports TCP et UDP que ces protocoles utilisent habituellement.
    C'est très loin d'être optimal. Tu peux commencer par :
        DNS : 53 TCP + 53 UDP
        HTTP : 80 TCP
        HTTPS : 443 TCP

    De mémoire ça devrait donner quelque chose comme

    iptables --table filter --append FORWARD  --protocol udp  --destination XXX.XXX.XXX.0/24  --match multiport  --destination-ports 53         --jump ACCEPT
    iptables --table filter --append FORWARD  --protocol tcp  --destination XXX.XXX.XXX.0/24  --match multiport  --destination-ports 53,80,443  --jump ACCEPT
    
    # ou  --source YYY.YYY.YYY.0/24  à la place de  --destination XXX.XXX.XXX.0/24
    # et/ou éventuellement  --out-interface ZZZZ
    
    

     
    Il faut également autoriser les paquets de réponse

    iptables  --table filter  --append FORWARD  --source YYY.YYY.YYY.0/24  --match conntrack  --ctstate ESTABLISHED --jump ACCEPT
    

     
    Avec ça tu auras un début pour améliorer la chose.

    • [^] # Re: modèle OSI

      Posté par  . Évalué à 1.

      Merci, je vais tester dans la journée

    • [^] # Re: modèle OSI

      Posté par  . Évalué à 3. Dernière modification le 15 avril 2020 à 09:48.

      plus simplement

      iptables -A FORWARD -s IP_reseau_2 -d IP_reseau1 -p tcp --dport 80 -j ACCEPT

      remplacer tcp et 80 par le protocole et le port

      DNS = udp 53 ET tcp 53
      http = tcp 80
      https = tcp 443

      etc

      ATTENTION, si ce sont 2 windows, il y aussi le firewall sur les windows à ouvrir pour accepter le ping, le http en ENTREE sur la machine (si un windows sert de serveur)

      • [^] # Re: modèle OSI

        Posté par  . Évalué à 1.

        Merci pour votre aide,

        Je commence à m'en sortir petit à petit.

        Réseau 1 ---- enp0s3 / enp0s8 ---- Réseau 2
        Ubuntu Debian Ubuntu

        J'ai besoin une nouvelle fois de votre aide pour deux dernières étapes :

        1/ Comment faire pour que ma machine Ubuntu du réseau2 puisse accéder à internet ? (La box se trouve sur le réseau 1)
        Quelle règle dois-je appliquer ?

        2/ Comment faire pour autoriser la machine du réseau 2 à se connecter en SSH sur la machine du réseau 1 ?

        J'ai testé la règle suivante mais cela ne fonctionne pas

        iptables -A FORWARD -s IP_reseau_2 -d IP_reseau1 -p tcp --dport 22 -j ACCEPT

        Merci d'avance

        • [^] # Re: modèle OSI

          Posté par  . Évalué à 1.

          Finalement c'est bon.

          Merci pour votre aide

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.