IP forwarding ?

Résolu
voici ma configuration :
j'ai une passerelle avec Unbuntu server avec 2 cartes réseaux, l'une de ses cartes est connectee au modem, l'autre à la machine bureautique (winXp) :

modem(192.168.30.1)-----eth1(192.168.30.10)UBUNTU(192.168.0.2)eth0-----BUR0TIC
mon modem fait office de serveur DHCP pour UBUNTU, j'ai installe un serveur DHCP sur UBUNTU pour BUROTIC.

sur UBUNTU, je peux pinguer eth0, eth1, le modem et un ping sur google marche tres bien.
tout est ok de ce cote.

sur BUROTIC, je peux pinguer eth0 et c'est tout. Le serveur DHCP installé sur UBUNTU fait bien son travail, j'ai bien une adresse IP apres un ipconfig /renew.

Mais je ne peux pinguer eth1, ni le modem.
il semble qu'il n'y ai pas de communication entre eth0 et eth1 (vu par BUROTIC)
quel est le pb ?

nota : j'ai bien activer l'IP forwarding dans /proc/sys/net/ipv4/ip_forward.

je suis bloquee.

merci
Sophie

25 réponses

Résumé de la discussion

La question porte sur une passerelle Ubuntu avec deux interfaces (eth1 sur 192.168.30.0/24 et eth0 sur 192.168.0.0/24) où une machine bureautique Windows ne peut ni atteindre eth1 ni le modem malgré l'IP forwarding activé. Des échanges portent sur la configuration NAT et les passerelles par défaut, avec des propositions autour de MASQUERADE ou SNAT, et sur la correction de la passerelle du poste Windows. Plusieurs conseils recommandent de retirer la passerelle par défaut sur l'interface Ubuntu, de mettre Windows en passerelle 192.168.0.2 et d'appliquer un script iptables simple pour le NAT, sans filtrage initial.

Bobot (l’IA à votre service)
  1. Modérateur
    Salut,


    nota : j'ai bien activer l'IP forwarding dans /proc/sys/net/ipv4/ip_forward.


    Ce n'est pas suffisant.

    il faut configurer la table NAT et la chaine FORWARD de la table FILTER de ton firewall sous Ubuntu.
    iptables -A FORWARD -i eth1 -o eth0 -s 0.0.0.0/0 -d x.x.x.x -m --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -i eth0 -o eth1 -s x.x.x.x -d 192.168.30.0/0  -m --state ! INVALID -j ACCEPT
    
    iptables -t nat -A POSTROUTING -o eth1 -s x.x.x.x -j SNAT --to-source 192.168.30.10


    Donc configure en local ton winxp en utilisant un IP dans le réseau 192.168.0.0 (par exemple 192.168.0.3 - c'est en fait x.x.x.x

    Ex: ipconfig de mon xp
    
            Connection-specific DNS Suffix  . : 
    
            Description . . . . . . . . . . . : NVIDIA nForce Networking Controller
    
            Physical Address. . . . . . . . . : 00-30-1B-B6-7E-1F
    
            Dhcp Enabled. . . . . . . . . . . : No
    
            IP Address. . . . . . . . . . . . : 192.168.1.2
    
            Subnet Mask . . . . . . . . . . . : 255.255.255.0
    
            Default Gateway . . . . . . . . . : 10.0.0.2
    
            DNS Servers . . . . . . . . . . . : 212.27.32.176
    
                                                212.27.32.177


    il faut aussi utilisé comme passerelle par défaut pour winxp l'IP de ton interface qui sort sur net (192.168.30.10) ainsi que les DNS de ton FAI.

    Regarde ici ma config pour mieux comprendre, ainsi que le firewall minimal pour que ça marche.
    C'est la même que la tienne avec la différence que je sors sur net depuis linux la passerelle avec eth0 et pas eth1. ubuntu reseau#35

    lami20j
    -1
    1. Contributeur
      Salut Shopie,

      Si tu ne veux pas te casser la tête et que ton "modem" est en fait un modem/routeur (celà y ressemble d'après ce que tu en dis), tu peux t'acheter un petit switch à une dizaine d'euros (un switch 10/100 à 5 ports) et tu y branches toutes les machines sur le même réseau en utilisant seulement le serveur DHCP du routeur avec des câbles droits.

      Celà te permettra d'ajouter des machines supplémentaires à ton réseau local sans difficultés.

      Dal

      N.B.: si tu ne veux pas utiliser de switch, vérifie que ton câble réseau reliant la machine Linux à celle XP est bien un câble croisé et non un câble droit.

      N.B2 : Correction : celà devrait être le cas, si, comme tu le dis, tu peux effectivement pinguer le eth0 de la machine Linux depuis XP.
      0
      1. Modérateur
        Salut Dal,

        tu as raison en ce qui concerne l'histoire avec le switch.

        utiliser linux en tant que routeur oblige toujours de l'allumer pour accéder sur net avec le xp.

        lami20j
        0
      2. Contributeur
        @lami20jOui, j'avais omis cet inconvénient. Et si la machine fonctionne en permanence rien que pour celà, c'est un peu dommage (bruit et énergie nécessaire).

        Dal
        0
    2. c'est vrai....
      mais c'est moins geek... ^^
      0
      1. merci lami20j

        j'ai deja configure la table nat mais cela ne marchait pas non plus, je vais essayer avec la chaine forward de la table filter.
        je vais regarder ton lien, il correspond a bien a ce que je veux faire. :-)

        pour l'histoire de switch, j'en ai un avec un kvm dessus (2 * 8 voies!!). je ne veux pas prendre l'option modem car je veux administrer une passerelle, comprendre comment ce marche, etc......bref avoir les mains dans le cambouis.
        de plus, j'ai envie de brancher une webcam de surveillance de mon appart car j'oublie souvent de fermer la porte d'entree que je pars !!!! (mais ca c'est sans doute un autre post...)

        je vois tiens au courant, merci a tous.

        sophie.
        0
        1. Contributeur
          Il y a l'IP Masquerade HOWTO ici:
          https://tldp.org/HOWTO/IP-Masquerade-HOWTO/
          qui explique tout. En gros il faut faire un script pour l'usage avec "iptables", en version simple pour faire vite et sans securite elevee c'est la section 3.4.1:
          tldp.org

          et en version plus securisee c'est la section 6.4.1:
          tldp.org
          Il faut prendre l'un ou l'autre script, l'adapter un peu (pour le bon truc eth0 ou eth1 etc., faire ses propres regles pare feu etc.) et apres executer ou le faire automatiquement executer apres le boot.

          Bon, c'est en anglais mais ca contient tout, notamment aussi le regles de redirection, section 6.7:
          https://tldp.org/HOWTO/IP-Masquerade-HOWTO/forwarders.html

          Je crois il existe aussi de versions francaises mais je crains tres obsoletes (trops vielles et notamment sans parler des noyaux 2.4/2.6 ce qui est crucial).
          0
          1. bon je viens aux nouvelles...

            ca marche pas :-( mais eth1 n'a pas d'@ IP attribuée par le serveur DHCP de mon modem !!!
            et j'ai piqué le script de lami20j :-)

            voici les differentes traces effectuées ce midi, ma configuration est elle bonne ?

            merci

            ma config
            ---------

            modem(192.168.30.1)-----eth1(192.168.30.10)UBUNTU(192.168.0.1)eth0-----(192.168.0.10)BUR0TIC
            mon modem fait office de serveur DHCP pour UBUNTU, j'ai installe un serveur DHCP sur UBUNTU pour BUROTIC.

            1) route print sous XP
            ----------------------
            ===========================================================================
            Liste d'Interfaces
            0x1 ........................... MS TCP Loopback interface
            0x2 ...00 13 d4 29 e9 0c ...... SiS190 100/10 Ethernet Device - Miniport d'ordonnancement de paquets
            ===========================================================================
            ===========================================================================
            Itinéraires actifs :
            Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique
            0.0.0.0 0.0.0.0 192.168.30.10 192.168.0.10 20
            127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
            192.168.0.0 255.255.255.0 192.168.0.10 192.168.0.10 20
            192.168.0.10 255.255.255.255 127.0.0.1 127.0.0.1 20
            192.168.0.255 255.255.255.255 192.168.0.10 192.168.0.10 20
            224.0.0.0 240.0.0.0 192.168.0.10 192.168.0.10 20
            255.255.255.255 255.255.255.255 192.168.0.10 192.168.0.10 1
            Passerelle par défaut : 192.168.30.10
            ===========================================================================
            Itinéraires persistants :
            Aucun

            2) ipconfig /all sous XP
            -------------------------

            Configuration IP de Windows

            Nom de l'hôte . . . . . . . . . . : maya
            Suffixe DNS principal . . . . . . :
            Type de noud . . . . . . . . . . : Inconnu
            Routage IP activé . . . . . . . . : Non
            Proxy WINS activé . . . . . . . . : Non

            Carte Ethernet Connexion au réseau local:

            Suffixe DNS propre à la connexion :
            Description . . . . . . . . . . . : SiS190 100/10 Ethernet Device
            Adresse physique . . . . . . . . .: 00-13-D4-29-E9-0C
            DHCP activé. . . . . . . . . . . : Non
            Adresse IP. . . . . . . . . . . . : 192.168.0.10
            Masque de sous-réseau . . . . . . : 255.255.255.0
            Passerelle par défaut . . . . . . : 192.168.30.10

            3) nano /etc/network/interfaces
            -------------------------------

            # The loopback network interface
            auto lo
            iface lo inet loopback

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

            # The primary network interface
            auto eth1
            iface eth1 inet dhcp

            # The secondary network interface
            auto eth0
            iface eth0 inet static
            address 192.168.0.1
            netmask 255.255.255.0
            #gateway 192.168.0.1

            4) ifconfig
            -----------
            eth0 Link encap:Ethernet HWaddr 00:50:BA:B5:6B:CD
            inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
            inet6 addr: fe80::250:baff:feb5:6bcd/64 Scope:Link
            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
            RX packets:366 errors:0 dropped:0 overruns:0 frame:0
            TX packets:323 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:33577 (32.7 KiB) TX bytes:57214 (55.8 KiB)
            Interrupt:11 Base address:0xdc00

            eth1 Link encap:Ethernet HWaddr 00:50:04:ED:41:B5
            UP BROADCAST MULTICAST MTU:1500 Metric:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
            Interrupt:10 Base address:0x4f80

            lo Link encap:Local Loopback
            inet addr:127.0.0.1 Mask:255.0.0.0
            inet6 addr: ::1/128 Scope:Host
            UP LOOPBACK RUNNING MTU:16436 Metric:1
            RX packets:78 errors:0 dropped:0 overruns:0 frame:0
            TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
            RX bytes:6304 (6.1 KiB) TX bytes:6304 (6.1 KiB)

            5) route -n
            -----------
            Kernel IP routing table
            Destination Gateway Genmask Flags Metric Ref Use Iface
            192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

            6) cat /etc/resolv.conf
            -----------------------
            search example.org
            nameserver 192.168.30.1
            nameserver 0.0.0.0

            7) iptables -v -L -n
            --------------------
            Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
            pkts bytes target prot opt in out source destination

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

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

            8) ls -l /etc/init.d/rc.local
            -----------------------------
            -rwxr--r-- 1 root root 528 2006-10-20 13:04 /etc/init.d/rc.local

            9) find /etc/rc* -name '*rc.local'
            ----------------------------------
            /etc/rc2.d/S99rc.local
            /etc/rc3.d/S99rc.local
            /etc/rc4.d/S99rc.local
            /etc/rc5.d/S99rc.local
            /etc/rc.local

            10) cat /etc/init.d/rc.local
            ----------------------------
            #! /bin/sh

            PATH=/sbin:/bin:/usr/sbin:/usr/bin
            [ -f /etc/default/rcS ] && . /etc/default/rcS
            . /lib/lsb/init-functions

            do_start() {
            if [ -x /etc/rc.local ]; then
            log_begin_msg "Running local boot scripts (/etc/rc.local)"
            /etc/rc.local
            log_end_msg $?
            fi
            }

            case "$1" in
            start)
            do_start
            ;;
            restart|reload|force-reload)
            echo "Error: argument '$1' not supported" >&2
            exit 3
            ;;
            stop)
            ;;
            *)
            echo "Usage: $0 start|stop" >&2
            exit 3
            ;;
            esac
            fw.sh

            11) more /home/sophie/fw.sh
            --------------------------
            #! /bin/sh
            #
            # Description: configuration de firewall netfilter/iptables
            #
            # Initialization de la table FILTER
            #
            iptables -F
            iptables -X
            iptables -P INPUT DROP
            iptables -P OUTPUT DROP
            iptables -P FORWARD DROP # les 3 cmd = debranchement des cables

            # Initialization de la table NAT
            #
            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
            #
            # Initialisation de la table MANGLE
            #
            iptables -t mangle -F
            iptables -t mangle -X
            iptables -t mangle -P PREROUTING ACCEPT
            iptables -t mangle -P INPUT ACCEPT
            iptables -t mangle -P OUTPUT ACCEPT
            iptables -t mangle -P FORWARD ACCEPT
            iptables -t mangle -P POSTROUTING ACCEPT

            # interface lo
            iptables -A INPUT -i lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
            iptables -A OUTPUT -o lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT

            # table FILTER

            # chaine INPUT
            iptables -A INPUT -i eth0 -d 192.168.0.1 -m state --state ESTABLISHED,RELATED -j ACCEPT

            # chaine FORWARD
            iptables -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.0.10 -m state --state RELATED,ESTABLISHED -j ACCEPT
            iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.10 -d 192.168.30.0/0 -m state --state ! INVALID -j ACCEPT

            # chaine OUTPUT
            iptables -A OUTPUT -o eth0 -m state --state ! INVALID -j ACCEPT
            iptables -A OUTPUT -o eth1 -m state --state ! INVALID -j ACCEPT

            # table NAT
            iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.10 -j SNAT --to-source 192.168.0.1
            0
            1. j'ai reussi a reallouer une @ IP sur eth1.

              donc voici route et ipconfig.

              route
              Kernel IP routing table
              Destination Gateway Genmask Flags Metric Ref Use Iface
              192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
              192.168.30.0 * 255.255.255.0 U 0 0 0 eth1
              default 192.168.30.1 0.0.0.0 UG 0 0 0 eth1

              ifconfig
              eth0 Link encap:Ethernet HWaddr 00:50:BA:B5:6B:CD
              inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
              inet6 addr: fe80::250:baff:feb5:6bcd/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)
              Interrupt:11 Base address:0xdc00

              eth1 Link encap:Ethernet HWaddr 00:50:04:ED:41:B5
              inet addr:192.168.30.10 Bcast:192.168.30.255 Mask:255.255.255.0
              inet6 addr: fe80::250:4ff:feed:41b5/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
              RX packets:850 errors:0 dropped:0 overruns:0 frame:0
              TX packets:475 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:125025 (122.0 KiB) TX bytes:96794 (94.5 KiB)
              Interrupt:10 Base address:0xef80
              0
              1. Contributeur
                Bonjour,

                Je n'aime pas trop l'utilisation de SNAT...

                j'aurai conseiller un truc du style pour le nat et le pat :

                iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

                De plus je déconseille les filtres -s et -d tant que le routage de base n'est pas fonctionnel (sans politique de filtrage).

                Teste ton script avec des règles simples... tu étofferas plus tard la politique de sécurité.

                De plus la passerelle par défaut du xp n'est pas bonne... il faut qu'elle soit 192.168.0.2

                a+
                0
                1. Modérateur
                  Salut,

                  Je n'aime pas trop l'utilisation de SNAT...

                  C'est ton droit. En revanche à savoir que la cible MASQUERADE est utilisé au lieu de SNAT dans le cas où les IP du pare-feu sont dynamiques.

                  Cette option invalide aussi la sélection de port par défaut, chose qu'offre la cible SNAT.

                  En ce qui concerne la passerelle par défaut pour xp ce n'est pas faux du tout. Si ça ne marchait pas chez moi je ne donnais pas l'exemple ubuntu reseau#35

                  En revanche on peut aussi utiliser l'IP de l'interface linux qui est en réseau avec l'interface xp

                  Et en ce qui concerne le script plus simple que ça il n'y a pas.
                  C'est vraiment le minimum pour que ça fonctionne (enfin chez moi ça fonctionne - et je parle de la même config que sophie)

                  Ce que peut être je n'ai pas precisé c'est que tout est configuré manuellement, pas de DHCP, que d'ailleurs je trouve inutile si le FAI a attribué un IP fix.

                  lami20j

                  P.S. A propos pat c'est quoi?
                  0
                  1. Contributeur
                    Bonsoir,

                    Cette option invalide aussi la sélection de port par défaut, chose qu'offre la cible SNAT

                    Je n'ai pas compris dsl. (port par défaut, alors qu'on joue avec des ip's...)

                    Ensuite je confirme que la passerelle du XP n'est pas la bonne (à moins que le copier/coller soit erroné) :

                    Description . . . . . . . . . . . : SiS190 100/10 Ethernet Device
                    Adresse physique . . . . . . . . .: 00-13-D4-29-E9-0C
                    DHCP activé. . . . . . . . . . . : Non
                    Adresse IP. . . . . . . . . . . . : 192.168.0.10
                    Masque de sous-réseau . . . . . . : 255.255.255.0
                    Passerelle par défaut . . . . . . : 192.168.30.10


                    Alors qu'elle devrait etre du meme réseau que son IP, a savoir sur un réseau en 192.168.0.X... Déja cela ne me semble pas correct.

                    Et enfin le PAT = Port Address Translation

                    Bonne soirée.

                    PS : comme l'a dit lami20j, exécute le script ca irait mieux :)
                    0
                  2. Modérateur
                    @keluxSalut,

                    merci pour pat

                    en ce qui concerne la passerelle c'est bien ça, vu qu'on passe par SNAT (comme j'ai precisé c'est une config que j'utilise et ça fonctionne)

                    Je n'ai pas compris dsl. (port par défaut, alors qu'on joue avec des ip's...)

                    c'est quand on utilise --to, --to-port
                    en bref avec SNAT on peut modifier des adresses ou des ports
                    masquerade est indispensable quand il s'agit de IP dynamique

                    lami20j
                    0
                2. Modérateur
                  Sophie,

                  as-tu exécuter le script pour iptables?

                  7) iptables -v -L -n
                  --------------------
                  Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
                  pkts bytes target prot opt in out source destination

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

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


                  Ca veut dire que tu n'as pas de firewall sous ton Ubuntu et c'est tout.
                  Ni nat ni forward.

                  Et pour windows il te manque les DNS

                  lami20j

                  P.S. Il n'y a pas des raisons que ça ne marche pas
                  0
                  1. Bonjour,

                    je viens vous donner des nouvelles, mon probleme n'est toujours pas resolu : pas de
                    net depuis le poste bureautique, pourtant je me suis bagaree ce we !

                    pour rafraichir les memoires :
                    modem(192.168.30.1)-----eth1(192.168.30.10)UBUNTU(192.168.0.1)eth0-----(192.168.0.10)BUR0TIC
                    j'ai mis une @IP statique sur BUR0TIC, je n'utilise donc pas le serveur DHCP de UBUNTU
                    le modem fait office de serveur DHCP pour UBUNTU.

                    voici ipconfig sur le poste BUR0TIC :
                    quelle @IP dois je mettre en Passerelle ?
                    Description . . . . . . . . . . . : SiS190 100/10 Ethernet Device
                    Adresse physique . . . . . . . . .: 00-13-D4-29-E9-0C
                    DHCP activé. . . . . . . . . . . : Non
                    Adresse IP. . . . . . . . . . . . : 192.168.0.10
                    Masque de sous-réseau . . . . . . : 255.255.255.0
                    Passerelle par défaut . . . . . . : 192.168.30.10 <------------------

                    le script iptables se lance tres bien :
                    iptables -v -L -n
                    Chain INPUT (policy ACCEPT 137 packets, 45744 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 icmp -- * * 0.0.0.0/0 0.0.0.0/0
                    28 2944 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

                    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
                    pkts bytes target prot opt in out source destination
                    0 0 ACCEPT all -- eth0 eth1 192.168.0.10 192.168.30.1 0 state RELATED,ESTABLISHED

                    Chain OUTPUT (policy ACCEPT 33 packets, 4648 bytes)
                    pkts bytes target prot opt in out source destination

                    Voici mon script, j'ai fais des essais, je dois avoir des doublons. Je n'arrive toujours
                    pas a pinguer le modem depuis le poste bureautique.

                    Merci de votre aide :

                    #! /bin/sh
                    #
                    # Description: configuration de firewall netfilter/iptables
                    #
                    # Initialization de la table FILTER : assurer le filtrage des paquets
                    # 3 chaines : INPUT, FORWARD et OUTPUT
                    #
                    iptables -F # Flush : supprime toutes les chaines predefinies de la table Filter
                    iptables -X # eXclude : suppime toutes les chaines utilisateur
                    iptables -P INPUT ACCEPT #DROP # Policy : supprime par defaut toutes les trames dans la chaine INPUT
                    iptables -P OUTPUT ACCEPT #DROP # idem
                    iptables -P FORWARD ACCEPT #DROP # les 3 cmd = debranchement des cables

                    ########################################################################################################

                    # Initialisation de la table NAT : Alors que dans la table FILTER, la chaine FORWARD permet de definir
                    # quels sont les paquets autores a etre NATe, la table NAT sera chargee de la moddification des paquets,
                    # afin qu'ils soient correctement utilisable sur l'interface de destination.
                    # 3 chaines: PREROUTING, POSTROUTING et OUTPUT
                    #
                    iptables -t nat -F # -t pour table, indique sur quelle table nous voulons travailler
                    iptables -t nat -X
                    iptables -t nat -P PREROUTING ACCEPT
                    iptables -t nat -P POSTROUTING ACCEPT
                    iptables -t nat -P OUTPUT ACCEPT

                    #######################################################################################################
                    #
                    # Initialisation de la table MANGLE : modification des paquets en leur ajoutant ou supprimant certaines info
                    # 5 chaines: PREROUTING, INPUT, FORWARD, OUTPUT et POSTROUTING
                    #
                    iptables -t mangle -F
                    iptables -t mangle -X
                    iptables -t mangle -P PREROUTING ACCEPT
                    iptables -t mangle -P INPUT ACCEPT
                    iptables -t mangle -P OUTPUT ACCEPT
                    iptables -t mangle -P FORWARD ACCEPT
                    #####################################################################################################

                    ADD_IP_INTRANET="192.168.0.1"
                    ADD_IP_INTERNET="192.168.30.10"
                    ADD_IP_LOCAL="0.0.0.0/0"
                    ADD_IP_BUROTIK="192.168.0.10"
                    INTERFACE_INTRANET="eth0"
                    INTERFACE_INTERNET="eth1"

                    ################################# interface lo ##########################################################

                    # -A pour Append : ajoute une regle a une chaine predefinie ou utilisateur
                    # -i pour input : critere sur l'interface reseau dont provient la paquet
                    # -s : @IP ou reseau : critere sur l'@ IP source du paquet
                    # -d : @IP ou reseau : critere sur l'@ IP de destination du paquet
                    # -j : jump cible : defini l'action si un paquet correspond aux criteres de cette regle.
                    # on accepte le paquet venant de l'interface locale ayant pr @ IP : 0.0.0.0 et pour destination cette meme
                    # @ IP. Utile pour des softs qui utilisent cette @ pour fonctionner.

                    #iptables -A INPUT -i lo -s $ADD_IP_LOCAL -d $ADD_IP_LOCAL -j ACCEPT
                    # idem de l'autre cote, les paquets ont le droit de sortir.
                    #iptables -A OUTPUT -o lo -s $ADD_IP_LOCAL -d $ADD_IP_LOCAL -j ACCEPT

                    #pas de filtrage sur l'interface loopback
                    iptables -A INPUT -i lo -j ACCEPT

                    ################################## Autoriser le ping ####################################################
                    iptables -A INPUT -p icmp -j ACCEPT

                    ################################## Autoriser le multicast ###############################################
                    #iptables -A INPUT -p igmp -j ACCEPT

                    ################################## Autoriser des entrees sur les cnx etablies par Burotik ###############
                    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

                    ################################## Autoriser le ssh #####################################################
                    iptables -A INPUT -p tcp --dport 22 -j accept

                    #on rejete toutes les autres entrees
                    #iptables -A INPUT -j REJECT

                    ################################## table FILTER #########################################################

                    # chaine INPUT
                    # -m : demande d'utiliser un module state dans notre cas.
                    # ajout d'une regle : le paquet arrive (INPUT) par l'interface reseau eth0 et ce meme paquet qui est
                    # destine ADD_IP_ETH0 filtre les paquets de connexions deja etanblies via une handshake, la regle est d'accepter
                    # ses cnx
                    # ESTABLISHED signifie grossierement que la cnx analysee par le fw a ete vue dans l'autre sens precedement : jenvoie
                    # une requete sur google, le fw a vu passer la requete partant de chez moi pour aller chez google. Ce dernier m'envoie
                    # une reponse. Ici, le fw constatera que c'est moi qui ait commence cette cnx, il considera alors cette cnx comme
                    # ESTABLISHED. RELATED concerne de nouvelle cnx ms qui ont ete initialisee par une cnx deja existante et etablie.
                    ##iptables -A INPUT -i $INTERFACE_INTRANET -d $ADD_IP_ETH0 -m state --state ESTABLISHED,RELATED -j ACCEPT

                    # chaine FORWARD
                    # ajout d'une regle : transiter les paquets de eth0 a eth1 avec comme @IP source : 0.0.0.0 et comme @IP de
                    # destination l@IP de la machine bureautique connectee sur le LAN
                    iptables -A FORWARD -i $INTERFACE_INTRANET -o $INTERFACE_INTERNET -s $ADD_IP_BUROTIK -d $ADD_IP_INTERNET -m state --state RE$

                    # chaine OUTPUT
                    # ajout d"une chaine qui consiste a autoriser la sortie des paquets venant de eth0 qui ont un etat handsahke different de IN$
                    ##iptables -A OUTPUT -o $INTERFACE_INTRANET -m state --state ! INVALID -j ACCEPT
                    # idem sur eth1
                    ##iptables -A OUTPUT -o $INTERFACE_INTERNET -m state --state ! INVALID -j ACCEPT

                    #################################### table NAT ##########################################################
                    # autoriser la translation d'@ en fin de traitement sur le paquet provenant de eth0 avec comme @IP celle de ma machine burot$
                    # et dire qu'elle vient en fait de l'@IP intranet
                    ##iptables -t nat -A POSTROUTING -o $INTERFACE_INTRANET -s $ADD_IP_BUROTIK -j SNAT --to-source $INTERFACE_INTRANET
                    0
                    1. il me manque les DNS, je suis d'accord.
                      pour l'instant je me penche juste sur le ping du modem, quand celui ci sera ok, je mettrais les @ IP DNS de mon FAI donne par mon modem pour pinguer google.
                      a+
                      0
                      1. Contributeur
                        Bonjour,

                        Et moi ce que je dis ? Non tu n'y jettes pas un oeil ?

                        Au lieu de balancer un pauvre script iptables qui est inbuvable , tu peux essayer de faire marcher ta passerelle avec des règles simples ?

                        D'ailleurs tu n'as meme pas besoin de filtres pour vérifier si ca fonctionne.

                        De plus je me répète, la passerelle du xp est fausse ! (et meme dans l'exemple de lami20j, la passerelle est fausse).

                        Depuis quand on met une passerelle par défaut du réseau d'à coté ??? Mais la machine comment elle fait pour savoir qu'il faut aller dans le réseau d'a coté pour trouver son point de sortie ????????????

                        a+
                        0
                        1. Modérateur
                          Salut kelux,

                          De plus je me répète, la passerelle du xp est fausse ! (et meme dans l'exemple de lami20j, la passerelle est fausse).


                          ubuntu reseau#35

                          en effet il y a une erreur. j'ai mis l'IP du routeur au lieu de 10.0.0.2

                          Depuis quand on met une passerelle par défaut du réseau d'à coté ??? Mais la machine comment elle fait pour savoir qu'il faut aller dans le réseau d'a coté pour trouver son point de sortie ????????????
                          Par la table de routage.

                          lami20j
                          0
                        2. Contributeur
                          @lami20jL'adresse du xp devrait etre 192.168.1.1 sur ton exemple.

                          Apres tu me parles de tables de routage,

                          La table de routage de qui , du xp ou de la passerelle ?

                          Maintenant , lors de la requete ARP du client XP, il va demander, si je suis ton exemple, "Quelle est l'adresse MAC de l'@ IP de ma passerelle, a savoir 192.168.10.30" ?

                          Peux tu me dire comment la requete ARP puisse aboutir correctement ? Et donc avoir l'adresse mac de la passerelle coté LAN ?? L'adresse MAC qu'elle va recevoir sera laquelle ??

                          Apres on parle toujours de table de routage ?
                          0
                        3. Modérateur
                          @keluxDans le lien que je t'ai donné dans la réponse 18 tu as ma config qui fonctionne, avec la correction ( au lieu de 10.0.0.254 c'est 10.0.0.2)

                          Je vais t'afficher ma table de routage ce soir.

                          lami20j
                          0
                        4. Contributeur
                          @lami20jMalheureusement tu ne réponds pas à mes questions, je ne veux pas voir ta table de routage. Je sais déja à quoi cela ressemble je te remercie.
                          0
                      2. Contributeur
                        J'en rajoute une couche, juste parce que je suis de mauvaise humeur et bien malade de voir certaines horreurs...

                        La personne que tu as tenté d'aider n'y arrive toujours pas ? Alors je me demande si effectivement ta solution fonctionne.
                        0
                        1. Modérateur
                          Salut,

                          La personne que tu as tenté d'aider n'y arrive toujours pas ? Alors je me demande si effectivement ta solution fonctionne

                          Ca je ne peux pas te repondre. En revanche chez moi ça fonctionne.
                          Si ça ne marche pas chez elle, je ne suis pas responsable.

                          D'ailleurs, quand je donne une réponse c'est d'abord vérifier.

                          je suis de mauvaise humeur et bien malade de voir certaines horreurs...

                          Désolé de t'avoir rendu malade avec mes horreurs.

                          lami20j
                          0
                        2. Contributeur
                          @lami20jTu n'as pas répondu a mon message précédent ? Quen penses tu ?
                          0
                        3. Modérateur
                          @keluxEt ça ne me dérange pas de recevoir des remarques si je me trompe. Au contraire.
                          Et si je me trompe je le reconnaît. C'est pour ça que je suis là.

                          lami20j
                          0
                        4. @keluxheeeeeeeeeeeee

                          vous voulez bien vous calmer un peu ?

                          C'est pas la peine de se facher.

                          j'ai un simple probleme d'iptable, c'est tout, j'ai donne mon script (qui n'est pas imbuvale) pour info par rapport a un iptables -v -L -n.

                          bien sur que j'ai commence avec presque rien dedans, je ne suis pas idiote au point de tout mettre tel quel dedans. J'ai essaye differentes regles ce we, histoire de comprendre IPtables et de monter ma passerelle.

                          le travail de lami20j est tres bien, il me sert de fil d'Ariane, a moi d'etre critique et de progresser.

                          ok pour le pb de dns.

                          TRES cordialement

                          Merci
                          0
                        5. @keluxje n'arrive pas a avoir le net sur ma machine burotique :
                          je ne vois pas le pb mais j'ai un doute sur la commande route (4)
                          mon Fw est totalement permissif

                          Merci,

                          sophie

                          # web
                          # |
                          # |
                          # routeur Cegetel:192.168.30.1
                          # |
                          # |
                          # |
                          # eth 1 : 192.168.30.10
                          # debian
                          # gateway: 192.168.0.1
                          # DNS1:86.64.145.146
                          # eth0 : 192.168.0.2
                          # |
                          # |
                          # |
                          # eth1:192.168.0.10 (LAN)
                          # WinXP/Gentoo
                          # passerelle défaut: 192.168.0.1
                          # DNS1:86.64.145.146

                          1) j'ai un iptables sans rien dedeans, j'autorise tout :
                          iptables -t filter -F
                          iptables -t filter -X
                          iptables -t filter -P INPUT ACCEPT
                          iptables -t filter -P FORWARD ACCEPT
                          iptables -t filter -P OUTPUT ACCEPT

                          iptables -t nat -F
                          iptables -t nat -X
                          iptables -t nat -P PREROUTING ACCEPT
                          iptables -t nat -P OUTPUT ACCEPT
                          iptables -t nat -P POSTROUTING ACCEPT

                          iptables -t mangle -F
                          iptables -t mangle -X
                          iptables -t mangle -P PREROUTING ACCEPT
                          iptables -t mangle -P INPUT ACCEPT
                          iptables -t mangle -P FORWARD ACCEPT
                          iptables -t mangle -P OUTPUT ACCEPT
                          iptables -t mangle -P POSTROUTING ACCEPT

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

                          2) pour confirmer :
                          iptables -L -n -v
                          Chain INPUT (policy ACCEPT 50 packets, 4468 bytes)
                          pkts bytes target prot opt in out source destination

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

                          Chain OUTPUT (policy ACCEPT 33 packets, 3788 bytes)
                          pkts bytes target prot opt in out source destination

                          iptables -L -n -v -t nat
                          Chain PREROUTING (policy ACCEPT 17 packets, 5141 bytes)
                          pkts bytes target prot opt in out source destination

                          Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
                          pkts bytes target prot opt in out source destination
                          0 0 SNAT all -- * eth1 0.0.0.0/0 0.0.0.0/0 to:192.168.30.10

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

                          iptables -A POSTROUTING -t nat -o eth1 -j SNAT --to 192.168.30.10

                          3) mes 2 cartes reseau sont bien configurees sur la passerelle
                          ifconfig
                          eth0 Link encap:Ethernet HWaddr 00:50:BA:B5:6B:CD
                          inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
                          inet6 addr: fe80::250:baff:feb5:6bcd/64 Scope:Link
                          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                          RX packets:973 errors:0 dropped:0 overruns:0 frame:0
                          TX packets:692 errors:0 dropped:0 overruns:0 carrier:0
                          collisions:0 txqueuelen:1000
                          RX bytes:85611 (83.6 KiB) TX bytes:100302 (97.9 KiB)
                          Interrupt:11 Base address:0xdc00

                          eth1 Link encap:Ethernet HWaddr 00:50:04:ED:41:B5
                          inet addr:192.168.30.10 Bcast:192.168.30.255 Mask:255.255.255.0
                          inet6 addr: fe80::250:4ff:feed:41b5/64 Scope:Link
                          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                          RX packets:75 errors:0 dropped:0 overruns:0 frame:0
                          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
                          collisions:0 txqueuelen:1000

                          4) j'ai un doute sur la commande route :

                          Kernel IP routing table
                          Destination Gateway Genmask Flags Metric Ref Use Iface
                          192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
                          192.168.30.0 * 255.255.255.0 U 0 0 0 eth1
                          default 192.168.30.1 0.0.0.0 UG 0 0 0 eth1
                          default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

                          j'ai 2 default !!!

                          5) pour info voici le fichier interfaces
                          auto lo
                          iface lo inet loopback

                          # The primary network interface
                          auto eth1
                          iface eth1 inet dhcp

                          # The secondary network interface
                          auto eth0
                          iface eth0 inet static
                          address 192.168.0.2
                          netmask 255.255.255.0
                          gateway 192.168.0.1

                          6) et la config sur windows :
                          @ IP : 192.168.0.10
                          gw : 192.168.0.1
                          DNS 1 : 86.64.145.146
                          0
                      3. Contributeur
                        Salut,

                        Alors pour l'histoire des routes : une machine ne peut avoir deux routes par défaut. La route par défaut est contactée lorsque dans la table de routage le réseau de destination n'est pas connu. C'est assez genant lorsque tu as 2 routes...

                        Je te conseille de retirer la route :

                        # The secondary network interface
                        auto eth0
                        iface eth0 inet static
                        address 192.168.0.2
                        netmask 255.255.255.0

                        Ensuite sur le poste XP , tu modifies la passerelle pour qu'elle devienne 192.168.0.2 (l'adresse IP de ta passerelle Linux).

                        Alors apres, une fois que tes routes sont correctes on passe à iptables.

                        Peux tu remplacer cela :

                        iptables -A POSTROUTING -t nat -o eth1 -j SNAT --to 192.168.30.10 


                        par :

                        iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE


                        (prends auparavant soin de vider les chaines et tables grace a ton script qui nettoie tout)

                        Dès que tu auras un truc de fonctionnel (au moins le routage et la nat) on pourra paufiner le filtrage.

                        a+
                        0
                        1. Modérateur
                          Salut,

                          # gateway: 192.168.0.1 - ici mets 192.168.30.1 (c'est l'IP du routeur)
                          # passerelle défaut: 192.168.0.1 - ici mets 192.168.0.2 (c'est l'IP du routeur, mais comme j'ai precisé dans mes messages, même si tu mets l'IP du eth1 - qui d'ailleurs c'est le routeur et on a la table NAT - 192.168.30.10 ça marche aussi)

                          Et tu n'as pas compris l'histoire le NAT et FORWARDING.

                          Si tu autorises tout, ben rien ne se passe.
                          Tu as un FORWARDING à faire entre eth0 et eth1
                          Et à un IP à traduire

                          Et 192.168.0.1 tu l'as sorti d'où?

                          lami20j
                          0
                          1. Contributeur
                            # gateway: 192.168.0.1 - ici mets 192.168.30.1 (c'est l'IP du routeur)

                            Cela n'est pas utile de mettre la passerelle pour cette carte, la passerelle linux récupère déja une passerelle par défaut avec le dhcp du modem/routeur cegetel.

                            Au contraire rajouter une autre passerelle par défaut est source de problème inattendu.

                            Si tu autorises tout, ben rien ne se passe.
                            Ca reste à prouver. Je t'assure que mes policy sont à ACCEPT tout passe, tant que la nat soit fonctionelle ainsi que le routage.

                            0
                            1. Modérateur
                              Salut,

                              ma configuration, et je l'ai déjà dit est basé sur un IP fix, sans dhcp.

                              Si Sophie utilise le dhcp alors ça sera mieux si elle t'écoute.

                              Ca reste à prouver. Je t'assure que mes policy sont à ACCEPT tout passe, tant que la nat soit fonctionelle ainsi que le routage.

                              Exactement, mais c'est ça que j'ai dit.

                              Si tu autorises tout, ben rien ne se passe.
                              Tu as un FORWARDING à faire entre eth0 et eth1
                              Et à un IP à traduire


                              Et toi aussi tant que la nat soit fonctionelle ainsi que le routage

                              lami20j

                              P.S. Pour eviter les malentendus, j'ai un IP fix sur ma freebox et je n'utilise pas le dhcp (qui d'ailleurs sera con avec un IP fix).
                              Toute la configuration chez moi est faite manuellement.
                              0
                              1. Contributeur
                                Désolé de mal te comprendre, tes explications sont parfois inextricables, et pourtant je connais un peu le réseau...

                                De plus que la config soit manuelle ou en dhcp , il ne faut pas mettre quoiqu'il arrive deux passerelles par défaut.

                                0
                                1. Modérateur
                                  Salut,

                                  il ne faut pas mettre quoiqu'il arrive deux passerelles par défaut.


                                  NET - modem routeur(IP routeur c'est la passerelle) - linux(c'est une passerelle pour win donc c'est par lui que win ce connecte sur net) - windows

                                  Windows ce connecte sur net par l'interface eth0 du linux - c'est la passerelle par la quelle windows se connecte sur net.

                                  La passerelle pour linux l'IP c'est l'Ip du modem routeur
                                  La passerelle pour windows c'est l'IP du linux (qui est routeur)

                                  Linux a 2 interfaces
                                  eth1 - connecté au modem routeur
                                  eth0 - linux - win

                                  Si les règles iptables sont correctes win peut utiliser comme passerelle l'IP du routeur linux (que ça soit l'IP de eth0 ou eth1 peu importe)

                                  lami20j
                                  0
                              2. bonjour,

                                ce que j'ai compris : le FORWARDING permet le passage de eth0 à eth1, du LAN au WAN
                                Une information qui est reçue doit "traverser" la passerelle. Depuis le LAN, l'interface
                                "eth0" reçoit une trame et la transfère d'eth0 vers eth1 et viceversa.

                                Ensuite, il faut changer l'adresse LAN, privée, par l'adresse internet, publique.
                                C'est que l'on appelle la "translation d'adresse".

                                Si tu autorises tout, ben rien ne se passe. !!!!!!!!!!!! heu je veux mettre le Fw
                                en mode "transparent", je veux qu'il soit la mais qu'il ne bloque rien pour isoler les problemes...
                                Donc pour moi, mettre des ACCEPT partout permet de laisser passer les paquets sans contraintes.

                                Et 192.168.0.1 tu l'as sorti d'où : C'est l'@ IP de ma gateway, pour que XP puisse avoir une @
                                a renseigner dans sa configuration de passerelle.
                                je sens la bourde...... :-)

                                il faudrait donc
                                - desactiver le serveur DHCP sur le routeur
                                - passer en IP fixe sur eth1
                                - ne pas mettre de gateway dans /etc/network/interface et prendre par defaut celui du modem.
                                - mettre l'@ IP 192.168.30.1 (c'est l'IP du routeur) dans la configuration de la passerelle sur XP.

                                ce que je fais a l'heure actuelle alors .............:
                                ma machine bureautique a un paquet a envoyer à www.google.fr
                                (209.85.129.99 par exemple).
                                209.85.129.99 n'est pas dans mon sous réseau (192.168.0.x), donc elle envoit le paquet à 192.168.0.1 parce que je lui ai dit que cette machine savait où envoyer ce paquet.
                                Or il n'y a personne au bout du fil puisqu'aucune machine n'a pour
                                adresse IP 192.168.0.1 dans ce sous-réseau.
                                Résultat: le paquet part à la poubelle.

                                en tout cas, merce de votre soutien.
                                0
                                1. Contributeur
                                  D'ailleurs ce pb est la route par défaut, comme depuis le début ou lami20j te dit de mettre une passerelle qui n'est pas du même réseau que le xp...
                                  0
                              • 1
                              • 2