[Debian] IPTABLES

Résolu
Bonjour,

J'ai usé d'un tuto afin de créer mon firewall via iptables.
Cela consiste à créer un fichier "/etc/firewall.sh" et un script "/etc/init.d/firewall".

Ma question :

debian:~# /etc/init.d/firewall stop
debian:~# /etc/init.d/firewall start
iptables: No chain/target/match by that name

pouvez-vous me renseigner sur ce message (est-ce normal ou non ?).
je peux vous fournir mes fichiers si nécessaire.

D'avance merci.

:-))

--
Je vous présente mes amis "Etch" et "Spring" ...........
....... histoire d'être tout de suite dans l'ambiance !
Configuration: Linux Debian
Mozilla 1.8.1.6

20 réponses

Résumé de la discussion

L'erreur iptables No chain/target/match by that name survient lors de la mise en place d'un firewall sous Debian avec iptables et des scripts personnalisés maîtrisés. La meilleure réponse conseille de tester les règles une par une et de repartir de zéro avec des règles générales, en nettoyant les chaînes et en posant des politiques par défaut DROP. Elle propose un exemple de règles qui suppriment les règles existantes, puis rétablissent les chaînes pour INPUT, OUTPUT et FORWARD et activer NAT et MANGLE avec des ACCEPTs sur lo. Des ajustements pratiques et des retours d'expérience accompagnent la démarche, montrant l'importance de vérifier chaque élément et d'intégrer progressivement les services autorisés tout en conservant une cohérence des règles.

Bobot (l’IA à votre service)
  1. RESOLU

    Bonjour,

    iptables: No chain/target/match by that name

    ce message ne devrait pas être. Il faudrait tester les règles une par une afin de cibler le problème

    Je ne pourrais donc expliquer pourquoi, ma première méthode étant très mauvaise. Je suis reparti de 0 pour écrire (avec l'aide d'un célèbre Contributeur) les règles.

    Voici donc mes règles "générales" qui fonctionnent.

    #!/bin/bash
    
    iptables -F
    iptables -X
    iptables -t filter -P INPUT DROP
    iptables -t filter -P OUTPUT DROP
    iptables -t filter -P FORWARD DROP
    
    iptables -t nat -F
    iptables -t nat -X
    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 OUTPUT ACCEPT
    iptables -t mangle -P FORWARD ACCEPT
    
    # interface lo
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT


    Merci à lami20j pour son aide très précieuse.

    bonne journée.

    :-))

    1. Modérateur
      Salut,

      Merci pour la solution ;-)

      Je vous présente mes amis "Etch" et "Spring" ...........
      ....... histoire d'être tout de suite dans l'ambiance !

      Euh... t'as pas oublié "lami20j" dans l'histoire ???

      ;-DD
    2. @jipicySalut,

      Merci pour la solution

      C'est pas fini ....là c'est juste le début ....ensuite il y aura un peu plus "complexe".

      j'ai mis juste une partie (la partie générale).
      j'ai pas encore mis certaines règles spécifiques (type ssh ...pour des raisons de sécurité).
      j'etofferai prochainement.
      donc à suivre ....

      Euh... t'as pas oublié "lami20j" dans l'histoire

      Mheuuu non ! Simplement il risque de vite prendre la "grosse tête" ! -DDDDDDD

      :-))

    3. Bonjour,

      J'ai un petit souci : pourquoi mes règles qui fonctionnaient parfaitement depuis plusieurs jours, ne fonctionnent plus subitement.
      Je n'ai fait aucune modfications (ni dans les fichiers, ni dans le routeur).

      2 machines connectées via Ethernet à un clubinternet.box (routeur)

      Les symptômes : pour les 2 machines
      - si j'active mes règles : plus de connection internet, impossible de communiquer entre mes 2 machines (ping impossible)
      - si je désactive mes règles (tout ouvert) alors tout refonctionne.

      si quelqu'un a une piste svp ...

      Merci.

      voici mon fichier pour mes règles iptables :

      #!/bin/bash
      
      iptables -F
      iptables -X
      iptables -t filter -P INPUT DROP
      iptables -t filter -P OUTPUT DROP
      iptables -t filter -P FORWARD DROP
      
      iptables -t nat -F
      iptables -t nat -X
      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 OUTPUT ACCEPT
      iptables -t mangle -P FORWARD ACCEPT
      
      # interface lo
      iptables -A INPUT -i lo -j ACCEPT
      iptables -A OUTPUT -o lo -j ACCEPT
      
      # interface eth0:192.168.1.2 
      iptables -A INPUT -i eth0 -d 192.168.1.2 -s 0.0.0.0./0 -m state --state ESTABLISHED,RELATED -j ACCEPT
      iptables -A OUTPUT -o eth0 -s 192.168.1.2 -d 0.0.0.0/0 -m state --state ! INVALID -j ACCEPT
      
      # client ssh 192.168.1.3
      iptables -A INPUT -i eth0 -d 192.168.1.2 -s 192.168.1.3 -p tcp --dport 22 -j ACCEPT
      # client ssh quelqu'un
      iptables -A INPUT -i eth0 -d 192.168.1.2 -s XX.XXX.XXX.XXX -p tcp --dport 22 -j ACCEPT


      :-))

  2. Autres infos (et non des moindres) :

    *) Je possède 2 machines connectées en Ethernet sur une clubinternet-box (routeur) :
    1 machine (Debian)
    1 machine (Mandriva)

    *) mon fichier /etc/firewall.sh

    #!/bin/sh
    
    # Regles par defaut
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT
    
    # On accepte les connexions boucle locale (sur lo)
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A FORWARD -i lo -j ACCEPT
    iptables -A FORWARD -o lo -j ACCEPT
    
    # On accepte les connexions depuis le LAN
    iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
    
    # On accepte les connexions HTTP et SSH dans les deux sens
    iptables -A INPUT -i eth0 -p tcp --sport www -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --sport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    
    # On autorise le ping
    iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A INTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -p icmp -m limit --limit 2/s -j ACCEPT
    
    # On autorise les connexions TCP et UDP deja etablies a entrer
    iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT


    Merci.

    :-))
    1. Modérateur
      Salut,

      Mheuuu non
      je trouve ça très normal.
      je suis loin d'être une distribution GNU/Linux ;-)

      j'ai d'autres critères pour choisir mes amis :-DDDDDDDDDDDDDDDDDDD
      1. Modérateur
        je suis loin d'être une distribution GNU/Linux ;-)
        Ah ? Et pourquoi t'es en version 20j ? Hein ?

        ;-DDDDDD
    2. je suis loin d'être une distribution GNU/Linux
      c'est ce que je me disais aussi .... quoi que parfois .... -DDDDDD

      Après la Edgy ........ la 20j
      humour potache, ok ! mais trop bien ..............

      PS Arrétez de "polluer" mon topic" ! -DDDDDD

      :-))
      1. Modérateur
        Arrétez de "polluer" mon topic" !
        On pollue pas, on embellie la morosité des iptables, un point c'est tout !

        NoMéO !!!

        PS. Déjà qu'il n'est pas très explicite le titre de TON topic ;-DDDDDDDDDDDDDDDDDDDDDDDDDDDDD
    3. Modérateur
      PS Arrétez de "polluer" mon topic"

      Si on arrive à polluer ton topic ça veut dire que ton netfilter/iptables n'est pas très performant :-DDDD......................................DDD......etc.
      1. OK ! les Magiciens ! Vous avez gagné ! -DDDDDDDDDDDDDDDDDDDD

        On pollue pas, on embellie la morosité des iptables, un point c'est tout !
        c'est vrai que c'est morose ! -DDD
        là je m'occupe de la Mandriva.

        Si on arrive à polluer ton topic ça veut dire que ton netfilter/iptables n'est pas très performant
        ça y est ! je viens de piger ! -DDDDDDDDDDDDDDDDDD

        bien alors j'aurai 1 question siouplé :

        1) répétant l'opération "Iptables" pour la mandriva dois-je virer firestarter (que j'avais installé) ??

        merci.

        :-))

        PS : je vous ai pas présenté mes "amis" ?? -DDDDD
        1. répétant l'opération "Iptables" pour la mandriva dois-je virer firestarter (que j'avais installé)

          bon ben je l'ai viré ! la question ne se pose plus !

          jipicy : PS. Déjà qu'il n'est pas très explicite le titre de TON topic : ça y est je viens de piger le jeu de mots ! -DDDD

          :-))
          1. Modérateur
            Ben à vrai dire, je l'avais changé le temps de te répondre en :

            [Debian] Hip hip hip à table...

            Mais je l'ai remis en place dès que tu as répondu, mais je pense que tu n'avais pas du le voir ;-((

            Bon c'est pô grave, j'arrête de polluer ;-))
          2. @jipicyMais je l'ai remis en place dès que tu as répondu, mais je pense que tu n'avais pas du le voir
            je l'avais vu mais c'est en prenant l'air tout à l'heure que j'ai fait le rapport entre "Hip hip hip à table" et "iptables" ........comme quoi je devrais prendre l'air plus souvent ! -DDDDDD

            Bon c'est pô grave, j'arrête de polluer
            bah, tu es toujours le bien venu dans mes topics ! :-))

            :-))
        2. Modérateur
          Salut,

          voici mon fichier pour mes règles iptables :
          ce n'est pas ton script qui est interessant ;-))

          active ton firewall sur les 2 machines et affiche pour chaque machine le résultat de
          iptables -v -L -n

          1. Merci ,

            debian:~# iptables -v -L -n
            Chain INPUT (policy DROP 1 packets, 196 bytes)
            pkts bytes target prot opt in out source destination
            0 0 ACCEPT 0 -- lo * 0.0.0.0/0 0.0.0.0/0
            0 0 ACCEPT 0 -- eth0 * 0.0.0.0/0 192.168.1.2 state RELATED,ESTABLISHED
            0 0 ACCEPT tcp -- eth0 * 192.168.1.3 192.168.1.2 tcp dpt:22
            0 0 ACCEPT tcp -- eth0 * xx.xxx.xxx.xxx 192.168.1.2 tcp dpt:22

            Chain FORWARD (policy DROP 0 packets, 0 bytes)
            pkts bytes target prot opt in out source destination

            Chain OUTPUT (policy DROP 0 packets, 0 bytes)
            pkts bytes target prot opt in out source destination
            0 0 ACCEPT 0 -- * lo 0.0.0.0/0 0.0.0.0/0
            0 0 ACCEPT 0 -- * eth0 192.168.1.2 0.0.0.0/0 state NEW,RELATED,ESTABLISHED,UNTRACKED
            debian:~#

            :-))
            1. oups ! désolé ....et voici pour la Mandriva :

              [root@bob ~]# iptables -v -L -n
              Chain INPUT (policy DROP 2 packets, 60 bytes)
              pkts bytes target prot opt in out source destination
              0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
              0 0 ACCEPT all -- eth0 * 0.0.0.0/0 192.168.1.3 state RELATED,ESTABLISHED
              0 0 ACCEPT tcp -- eth0 * 192.168.1.3 192.168.1.2 tcp dpt:22
              0 0 ACCEPT tcp -- eth0 * xx.xxx.xxx.xxx 192.168.1.3 tcp dpt:22

              Chain FORWARD (policy DROP 0 packets, 0 bytes)
              pkts bytes target prot opt in out source destination

              Chain OUTPUT (policy DROP 0 packets, 0 bytes)
              pkts bytes target prot opt in out source destination
              0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
              0 0 ACCEPT all -- * eth0 192.168.1.3 0.0.0.0/0 state NEW,RELATED,ESTABLISHED,UNTRACKED
              [root@bob ~]#

              :-))
          2. Re-,

            Un indice (je ne sais pas si il y a un lien de cause à effet mais ...) :

            cela s'est produit après une perte de connection (que j'ai imputé à mon FAI, à tort ou à raison ?). Est-il possible que cela vienne de mon routeur ?

            :-))
            1. Re-,

              Je pense avoir trouver le problème ! Les ip se sont interverties entre les machines !

              :-))
              1. Modérateur
                Salut,

                si tu as un IP publique fix, désactive le dhcp de ton routeur (SINON DEMANDE A TON FAI DE TON DONNER UN IP DYNAMIQUE :-DDDDDDDDDDD ) et configure manuellement sur tes PC l'interface

                comme tu ne risques pas que tes IP ............................:-DDDDDDDDDDDDDDD
                1. Salut,

                  Je me doutais bien qu'il y avait matière à rire. -DDDDDDDDD
                  en effet suite à l'incident (coupure de connection), j'ai éteins mon routeur. Et en rallumant ......le gag ! :-))

                  lami20j : comme je n'ai pas tout compris et que je ne tiens pas à faire une ânerie, je me contenterai pour l'instant de modifier mes fichiers.
                  1. http://192.168.1.1/
                    Informations DHCP
                    Adresse IP  	Expiré dans
                    192.168.1.2	6 jours, 18 heurres, 55 minutes, 4 secondes
                    192.168.1.3	6 jours, 19 heurres, 5 minutes, 46 secondes
                    --


                    c'est ce que tu me soulignais lami20J ?

                    :-))

                    Je vous présente "Etch" et "Spring" ...........
                    ....... histoire d'être tout de suite dans l'ambiance !
                    1. Merci beaucoup pour le lien. Exactement ce qu'il me fallait.
                      Regarderai tout ça demain à tête reposée.

                      Une dernière petite question : sur la config du routeur lorsque je veux aller en mode expert j'ai droit à un login et mot de passe : je vois pas lesquels ???

                      Merci.

                      :-))
                      1. Modérateur
                        Salut,

                        Une dernière petite question : sur la config du routeur lorsque je veux aller en mode expert j'ai droit à un login et mot de passe : je vois pas lesquels ???

                        LOGIN : root
                        MOT DE PASSE : clubadmin

                        ;-))
                    2. Modérateur

                      Une dernière petite question : sur la config du routeur lorsque je veux aller en mode expert j'ai droit à un login et mot de passe : je vois pas lesquels ???


                      Ne commence pas à m'énerver ;-))
                      Regarde ton bouquin de Club Internet, il me semble que je te l'ai déjà dit :-DD
                      1. Modérateur
                        Regarde ton bouquin
                        Une feuille format A2 pliée en 6, t'appelles ça un bouquin toi ? ;-DDDDD
                    3. Salut jipicy et merci ! ça me dit quelque chose effectivement ! :-))

                      Regarde ton bouquin de Club Internet, il me semble que je te l'ai déjà dit
                      bon sang ! ça y est ! La scène me revient : "fouiller dans mon bazar afin de remettre la main sur la "feuille format A2 pliée en 6" qui une fois pliée en 6 se transforme subitement en mini-livret ou "bouquin" ! -DDDDDDDDDDDDDDDDD

                      Ne commence pas à m'énerver
                      tu peux ! y a de quoi ! ;-)

                      du coup je pense avoir tout pigé : la coupure internet d'hier n'était pas dû à mon FAI mais probablement au DHCP. Ben si c'est ça : wouaaaaaaaa, honte à moi !

                      bonne soirée à tous les deux !

                      :-))
                      1. Salut,

                        Je souhaite rajouter à mes règles iptables l'autorisation du ping .....

                        Pour m'aider je suis tombé sur ceci :
                        # On autorise le ping avec moderation : pas plus de 2 ping par seconde
                        iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
                        iptables -A INPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
                        iptables -A INPUT -p icmp -m limit --limit 2/s -j ACCEPT


                        .... mais uniquement entre mes deux machines chacune reliée à un même routeur (ethernet) !

                        j'ai essayé en faisant (pour la debian) :

                        iptables -A INPUT -i eth0 -d "ip-debian" -s "ip-mandriva" -p icmp -j ACCEPT
                        iptables -A OUTPUT -o eth0 -s "ip-debian" -d "ip-mandriva" -p icmp -j ACCEPT


                        mais ça marche pô ! dois-je rajouter -m state --state NEW,ESTABLISHED,RELATED ?

                        merci !

                        :-))
                        1. Ok ! ça marche !

                          pour la debian :
                          # On autorise le ping avec moderation : pas plus de 2 ping par seconde
                          iptables -A OUTPUT -o eth0 -s "ip-debian" -d "ip-mandriva" -p icmp -m state --stat
                          e NEW,ESTABLISHED,RELATED -j ACCEPT
                          iptables -A INPUT -i eth0 -d "ip-debian" -s "ip-mandriva" -p icmp -m state --state
                           NEW,ESTABLISHED,RELATED -j ACCEPT
                          iptables -A INPUT -p icmp -m limit --limit 2/s -j ACCEPT


                          rien à redire concernant la ligne en gras ci-dessus et ci-dessous ?

                          debian:~# iptables -v -L -n
                          Chain INPUT (policy DROP 24 packets, 2524 bytes)
                          pkts bytes target prot opt in out source destination
                          0 0 ACCEPT 0 -- lo * 0.0.0.0/0 0.0.0.0/0
                          367 403K ACCEPT 0 -- eth0 * 0.0.0.0/0 192.168.X.X state RELATED,ESTABLISHED
                          0 0 ACCEPT tcp -- eth0 * 192.168.X.X 192.168.X.X tcp dpt:22
                          0 0 ACCEPT tcp -- eth0 * XX.XXX.XXX.XX 192.168.X.X tcp dpt:22
                          8 672 ACCEPT icmp -- eth0 * 192.168.X.X 192.168.X.X state NEW,RELATED,ESTABLISHED
                          0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 2/sec burst 5

                          Chain FORWARD (policy DROP 0 packets, 0 bytes)
                          pkts bytes target prot opt in out source destination

                          Chain OUTPUT (policy DROP 0 packets, 0 bytes)
                          pkts bytes target prot opt in out source destination
                          0 0 ACCEPT 0 -- * lo 0.0.0.0/0 0.0.0.0/0
                          289 33979 ACCEPT 0 -- * eth0 192.168.1.3 0.0.0.0/0 state NEW,RELATED,ESTABLISHED,UNTRACKED
                          0 0 ACCEPT icmp -- * eth0 192.168.1.3 192.168.1.2 state NEW,RELATED,ESTABLISHED
                          debian:~#

                          merci.

                          :-))