Configuration des règles iptables !!!

Bonjour bonjour les linuxiens !

voila, ca fait quelques temps que j'essaye de mettre au point des règles iptables fiables mais voila je galère un peu !

alors peut-être que vous pourriez m'aider un peu (je veux pas que vous me fassiez mes devoirs ! mais un exemple de vos règles m'aiderai beaucoup à faire les miennes !)

ma machine principal (firewall+routeur) connecté à un mon serveur ftp (que je souhaite pouvoir ouvrir à internet, du dnat quoi)

mon réseau local est de classe 192.168.0.0

j'aimerai pourvoir accèder à ssh (uniquement) sur mon firewall depuis le net et à mon serveur ftp (derrière le firewall)

également je voudrais ouvrir les ports emule sur mon firewall

je suis sur que c'est une configuration tout à fait classique et que bon nombre d'entre vous ont des règles qui fonctionnent et que je pourrai étudier pour faire les miennes !

ps : iptables est opérationnel, support noyaux et tout !

merci d'avance

5 réponses

  1. salut, je te remercie pour ton aide, j'avais déjà fait ce truc mais le probleme je l'ai trouvé c'est que le iptables ne passait pas sur le vieux ordi, donc je suis passé par ipchains et là tout marque à merveille. merci encore pour ton intervention.

    nico
    1. Salut,

      Voila je vais essayrer de te venir en aide un petit peu.
      Voila comme j ai fonctionné (Merci LAB)

      1. Tables INPUT:
      iptables -F INPUT (on efface tout ce qui existe)
      iptables -P INPUT DROP (on mets par defaut a DROP tout)
      iptables -A INPUT -p tcp -s 192.168.0.0/16 -j ACCEPT (puis on donne acces complet au reseau local)
      iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT (tous ce qui rentre sur le port 22 est autorisé)

      Table OUTPUT:
      iptables -F OUTPUT
      iptables -P OUTPUT DROP
      iptables -A OUTPUT -p tcp -d 192.168.0.0/16 -j ACCEPT
      iptables -A OUTPUT -p tcp --source-port 22 -j ACCEPT
      Ceci n est qu un exemple.
      Pour ce qui est du serveur FTP :
      iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 21 -j DNAT --to 192.168.0.1:21

      En esperant vous avoir aider

      Bye
      1. bonjour, je me permet de vous demander de l’aide car je ne sais pas à qui je dois me tourner pour avoir des conseils.

        Je suis en train d’installer un petit réseau avec un server linux mandrake 8.2

        J’ai deux pc relié avec sous xp pro.

        J’ai installé un modem adsl par éthernet ? Jusque là ça marche mais je n’arrive pas à partager ma connection sur les autres postes. Le pire c’est dès que je lance mon firewall, je n’arrive plus à faire un ping sur l’extérieure.

        Je vous donne à tout hazard mes scripts de cartes et mon firewall.

        Merci d’avance.

        eth0

        DEVICE=PPPoE

        BOOTPROTO=dhcp

        ON BOOT=yes

        passerelle

        NETWORKING=yes

        FORWARD_IPV4=yes

        HOSTNAME=icr

        GATEWAY=192.168.123.1

        GATEWAYDEV=eth0

        eth1

        DEVICE=eth1

        BOOTPROTO=static

        IPADDR=192.168.123.10

        NETMASK=255.255.255.0

        NETWORK=192.168.123.0

        BROADCAST=192.168.123.255

        ON BOOT=yes

        DNS

        NAMESERVER 193.252.19.3

        NAMESERVER 193.252.19.4

        Mon script Firewall

        # on fait du routage

        echo 1 > /proc/sys/net/ipv4/ip_forward

        # Nous vidons les chaînes :

        iptables -F

        # Nous supprimons d'éventuelles chaînes personnelles :

        iptables -X

        # Nous les faisons pointer par défaut sur DROP

        iptables -P INPUT DROP

        iptables -P OUTPUT DROP

        iptables -P FORWARD DROP

        # Nous faisons de même avec toutes les autres tables,

        # à savoir "nat" et "mangle", mais en les faisant pointer

        # par défaut sur ACCEPT. Ca ne pose pas de problèmes

        # puisque tout est bloqué au niveau "filter"

        iptables -t nat -F

        iptables -t nat -X

        #iptables -t nat -F PREROUTING

        iptables -t nat -P PREROUTING ACCEPT

        iptables -t nat -P POSTROUTING ACCEPT

        iptables -t nat -P OUTPUT ACCEPT

        iptables -t mangle -F

        iptables -t mangle -X

        iptables -t mangle -P PREROUTING ACCEPT

        iptables -t mangle -P POSTROUTING ACCEPT

        iptables -t mangle -P INPUT ACCEPT

        iptables -t mangle -P FORWARD ACCEPT

        # Nous considérons que la machine elle même est sûre

        # et que le processsus locaux peuvent communiquer entre eux

        # via l'interface locale :

        iptables -A INPUT -i lo -j ACCEPT

        iptables -A OUTPUT -o lo -j ACCEPT

        iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT

        iptables -A INPUT -i eth0 -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT

        # Nous considérons que notre réseau local est

        # également sûre (ce qui n'est pas forcément vrai, d'ailleurs).

        iptables -A INPUT -i eth1 -j ACCEPT

        iptables -A OUTPUT -o eth1 -j ACCEPT

        # Translation d'adresses pour tout ce qui traverse la passerelle

        # en sortant par eth0

        iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

        iptables -t nat -A POSTROUTING -s 192.168.123.0/255.255.255.0 -o eth0 -j MASQUERADE

        # Toutes les connexions du LAN vers le Net sont acceptées

        iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

        # Toutes les connexions établies ou en relation depuis le net vers le LAN sont acceptées

        iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

        # Autorisation des requetes DNS locales

        iptables -A INPUT -i eth0 --protocol udp --source-port 53 -j ACCEPT

        iptables -A OUTPUT -o eth0 --protocol udp --destination-port 53 -j ACCEPT

        Bonsoir, je me permet de vous demander de l’aide car je ne sais pas à qui je dois me tourner pour avoir des conseils.

        Je suis en train d’installer un petit réseau avec un server linux mandrake 8.2

        J’ai deux pc relié avec sous xp pro.

        J’ai installé un modem adsl par éthernet ? Jusque là ça marche mais je n’arrive pas à partager ma connection sur les autres postes. Le pire c’est dès que je lance mon firewall, je n’arrive plus à faire un ping sur l’extérieure.

        Je vous donne à tout hazard mes scripts de cartes et mon firewall.

        Merci d’avance.

        eth0

        DEVICE=PPPoE

        BOOTPROTO=dhcp

        ON BOOT=yes

        passerelle

        NETWORKING=yes

        FORWARD_IPV4=yes

        HOSTNAME=icr

        GATEWAY=192.168.123.1

        GATEWAYDEV=eth0

        eth1

        DEVICE=eth1

        BOOTPROTO=static

        IPADDR=192.168.123.10

        NETMASK=255.255.255.0

        NETWORK=192.168.123.0

        BROADCAST=192.168.123.255

        ON BOOT=yes

        DNS

        NAMESERVER 193.252.19.3

        NAMESERVER 193.252.19.4

        Mon script Firewall

        # on fait du routage

        echo 1 > /proc/sys/net/ipv4/ip_forward

        # Nous vidons les chaînes :

        iptables -F

        # Nous supprimons d'éventuelles chaînes personnelles :

        iptables -X

        # Nous les faisons pointer par défaut sur DROP

        iptables -P INPUT DROP

        iptables -P OUTPUT DROP

        iptables -P FORWARD DROP

        # Nous faisons de même avec toutes les autres tables,

        # à savoir "nat" et "mangle", mais en les faisant pointer

        # par défaut sur ACCEPT. Ca ne pose pas de problèmes

        # puisque tout est bloqué au niveau "filter"

        iptables -t nat -F

        iptables -t nat -X

        #iptables -t nat -F PREROUTING

        iptables -t nat -P PREROUTING ACCEPT

        iptables -t nat -P POSTROUTING ACCEPT

        iptables -t nat -P OUTPUT ACCEPT

        iptables -t mangle -F

        iptables -t mangle -X

        iptables -t mangle -P PREROUTING ACCEPT

        iptables -t mangle -P POSTROUTING ACCEPT

        iptables -t mangle -P INPUT ACCEPT

        iptables -t mangle -P FORWARD ACCEPT

        # Nous considérons que la machine elle même est sûre

        # et que le processsus locaux peuvent communiquer entre eux

        # via l'interface locale :

        iptables -A INPUT -i lo -j ACCEPT

        iptables -A OUTPUT -o lo -j ACCEPT

        iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT

        iptables -A INPUT -i eth0 -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT

        # Nous considérons que notre réseau local est

        # également sûre (ce qui n'est pas forcément vrai, d'ailleurs).

        iptables -A INPUT -i eth1 -j ACCEPT

        iptables -A OUTPUT -o eth1 -j ACCEPT

        # Translation d'adresses pour tout ce qui traverse la passerelle

        # en sortant par eth0

        iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

        iptables -t nat -A POSTROUTING -s 192.168.123.0/255.255.255.0 -o eth0 -j MASQUERADE

        # Toutes les connexions du LAN vers le Net sont acceptées

        iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

        # Toutes les connexions établies ou en relation depuis le net vers le LAN sont acceptées

        iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

        # Autorisation des requetes DNS locales

        iptables -A INPUT -i eth0 --protocol udp --source-port 53 -j ACCEPT

        iptables -A OUTPUT -o eth0 --protocol udp --destination-port 53 -j ACCEPT

        iptables -A INPUT -i eth0 --protocol tcp --source-port 53 -j ACCEPT

        iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 53 -j ACCEPT
      2. @nicolasPour le ping, tu n'as pas autorisé les paquets ICMP. Mais point de vue sécurité vaut mieux rester ainsi.
        Pour que ta machine devienne une passerelle, il faut activer le routage Ip dans le noyau avec la commande suivante :
        echo >1 /proc/sys/net/ipv4/ip_forward.
        Avec ça normalement tu peut router déjà.
        n'oublie pas d'indiquer aux clients l'adresse de l'interface interne du firewall comme passerelle. Enjoy!!
      3. @nicolasSalut à tous : demande d'aide
        J'ai un fire-wall iptables qui fontionne correctement. Mais, je veux que (du lundi au vendredi ) j'ai ql que ports ouvert et pas d'autres. samedi et dimande plus de ports ouvers.
        Je veux juste la partie "date" le reste est fait.

        Merci à tous
      4. @nicolasSalut,
        Je pense que le mieux est de faire 2 fichiers un pour iptables la semaine et l autre pour le weekend .
        Ensuite utilise un planificatuer pour lancer tes scripts (cron)

        Bye
      5. @jeffyslt,
        il a aussi positionné une règle pour faire un proxy transparent :
        As tu bien un proxy sur la passerelle configuré comme tel ?

        @++

        Vous hésitez entre Linux et Windows ?
        Vous voulez dépenser du temps ou de l'argent ?
    2. salut merci pour vos réponses auquel je répond un peu à la bourre !

      shorewall ne me convient pas je continue donc à taffer des mes règles iptables...

      ciao
      1. qui peut le plus peut le moins non?
        moi aussi je galere sur iptables ,mais te decourages pas va au bout de ton delire ...trouves des exemples et adaptes les
        c comme ca que je vais faire pour commencer
        bon courage
        1. Si tu as une mandrake 9, je te conseil plutot de commenser avec shorewall, aui est plus simple.

          C'est une implementation plus simple aui utilise iptables.