Tutoriel IPTables

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
28
mar.
2001
Sécurité
Avec le kernel 2.4 iptables (netfilter) remplace ipchains. Plus de fonctionnalités (dont un NAT fonctionnel), syntaxe un peu diffèrente.
Un petit tutoriel ne fait pas de mal ;-).

Aller plus loin

  • # -m state ?

    Posté par  . Évalué à 0.

    Quelqu'un en saurait plus long sur l'utilisation du "statefull firewall" i.e. l'utilisation du -m state pour autoriser par exemple le ftp en entree.
    Pour memoire, le mode PASV du ftp alloue un port >1024 et il faut donc que le firewall laisse passer. Maintenant iptables sait "suivre" la connection et ouvre le port demandé par le serveur. C'est nettement mieux que ipchains ou il fallait faire un !--syn sur les ports >1024 et ca laissait pas mal de portes ouvertes. Mais comment ca marche ?!

    Alexandre
    • [^] # Re: -m state ?

      Posté par  (site web personnel) . Évalué à 1.

      Si je ne dis pas de bétises ;-) ce n'est pas tout à fait ça.

      Le 'stateful' FW te permet de garder la trace de ta connexion FTP sortante (canal de commandes) mais pour accepter les données en entrée (canal de DATA), il faut plutôt utiliser un proxy-ftp transparent, qui lui va se débrouiller pour ouvrir le bon port en entrée (en fontion de ce qui aura été échangé comme port via le canal de commandes).

      Je sais que cette conf existe avec ipfilter (seulement sur BSD).

      Pour netfilter, voir les modules spéciaux de NAT ip_conntrack_ftp.o et ip_nat_ftp.o
      • [^] # Re: -m state ?

        Posté par  (site web personnel) . Évalué à 1.

        Et si on utilise encore ipchains avec un noyau 2.4 (module ipchains.o), comment fait-on pour autoriser les tranferts ftp actifs ?
        Avec le noyau 2.2.x il y avait le module ip_masq_ftp.o, mais avec le 2.4 je ne trouve aucun module pouvant être utilisé avec ipchains.o...
    • [^] # Re: -m state ?

      Posté par  . Évalué à 0.

      -m state --state ESTABLISHED,RELATED -j ACCEPT ?
      • [^] # Re: -m state ?

        Posté par  . Évalué à 1.

        Quelques précisions:

        Le support du Ftp se fait par un proxy spécifique, et était déjà plus ou moins présent avec les noyaux 2.2 (enfin, surtout pour faire du NAT).

        Le mode "Stateful" (donc l'option -m state) permet de tracer les connexions, et de simplifier/sécuriser le système:

        La ligne -m state --state ESTABLISHED,RELATED -j ACCEPT indique à netfilter qu'il doit accepter tous les paquets qui font partie d'une connexion déjà établie (ESTABLISHED) et tous les paquets 'relatifs' (RELATED. Typiquement, un paquet ICMP port unreachable par exemple).

        Ensuite, il ne reste plus qu'a mettre -m state --state NEW (le NEW est à verifier, sur ma machine actuelle, je mets 'keep state' :-) sur toutes les règles d'acceptation (à priori, on doit aussi pouvoir mettre cette option sur les règles de refus, mais ca a beaucoup moins d'intéret !), et accepter certaines initiation de connexions.

        Par exemple, si j'autorise ma machine (port éphémère) à se connecter sur le port 80 (http) de n'importe quel serveur, je n'ai pas à autoriser les paquets retours: quand une connexion sera établie entre ma machine et un serveur web, les paquets retour seront "pris en charge" par la règle -m state --state ESTABLISHED,RELATED -j ACCEPT.

        Pour le FTP, en fait, le proxy interagit avec le stateful pour qu'il autorise les connexions de données... je crois...

        Voila.


        A +

        VANHU.
        • [^] # Re: -m state ?

          Posté par  . Évalué à 0.

          ftp non passif:
          1/le client se connect sur le serveur port ftp
          2/a travers cette connexion il averti le serveur qu'il attend sur le port x (x>1024) la connexion ftp-data.
          3/le serveur se connecte sur le port x du client.

          avec le statefull firewalling du noyau2.4, le module ftp comprend ce dialogue applicatif et laisse passer la connexion du serveur vers le port x en retour.
          C'est automatique, pas besoin d'ouvrir des ports en plus au dessus de 1024.

          vive linux, vive le 2.4.x :-))

          PluG

Suivre le flux des commentaires

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