Forum général.général Partage de connexion via NAT

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
20
avr.
2015

Hello tout le monde.

J'ai un réseau qui ressemble à ca :

      Internet 
         |
    (IP publique)
       Livebox
    (192.168.1.1)
         |
       switch ----------------
         |                   |
    (192.168.1.250)   (192.168.1.100)
         PC1              Routeur
                      (192.168.2.100)
                             |
                      (192.168.2.250)
                            PC2

Tous mes réseaux sont des /24.
J'ai configuré les routes sur PC1 et PC2; je peux faire communiquer PC1 et PC2. J'ai activer le forwarding ipv4 sur PC1.
Mon problème : je souhaite donner accès à internet à PC2 sachant que :

  • je ne peux toucher à la configuration de la Livebox et ne peux donc lui rajouter la route vers 192.168.2.0
  • je ne peux toucher à la configuration du routeur
  • je souhaite donc passer par PC1 en utilisant du NAT pour partager son accès à internet
  • j'ai essayé pas mal de chose à base de SNAT, DNAT, MASQUERADE; rien n'a fonctionné et je m'y perd un peu.

La table de routage de PC2 :

    $ ip r
        default via 192.168.1.250 dev eth0  proto static 
        192.168.1.0/24 via 192.168.2.100 dev eth0  proto static 
        192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.250  metric 1 

Est-ce que mon cas se prête plus à du SNAT ou du DNAT ? Est ce qu'il faut les deux pour les paquets entrants et les paquets sortants ?

  • # roundcube webmail

    Posté par  . Évalué à -7.

    salut à tout le monde!! j'ai configuré postfix+roundcube sur mon serveur en local, j'envoie très bien les mails simples, mais lorsque je veux joindre un fichier, j'ai une erreur du genre " erreur de téléversement du fichier " ….. Svp quelqu'un peut-il m'aider à résoudre ce PROBLEME????

  • # impossible ?

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

    Si le routeur ne fait pas de nat ce n'est pas possible en l'état. Le paquet réseau sort de PC2 avec comme destination l'ip du serveur internet et la mac du Routeur.

    Il semble donc qu'il te faudrait un tunnel ip dans ip ou vpn entre PC2 et PC1 pour passer le routeur.

    Dans ce cas la passerelle par défaut serait l'ip de PC1 dans le vpn

  • # difficultés?

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

    Peut-être plus simple : si pas besoin de filtrage, faire un pont réseau sur ton PC1 (avec 2 interfaces réseau et bridge-utils).

    Sinon, du NAT forwarding avec iptables.

    Pour ma part, voici le genre de script iptables que j'utilise ( pour un hotspot wifi ), à adapter donc :

        iptables -F
        iptables -X
        iptables -P INPUT DROP
        iptables -P OUTPUT ACCEPT
        iptables -P FORWARD DROP
    
        # allow loopback
        iptables -A INPUT -i lo -j ACCEPT
        iptables -A OUTPUT -o lo -j ACCEPT
    
        # allow already established connections on eth0 (useful for SSH)
        iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    
        # Allow ping on eth0
        iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
    
        # allow SSH in, on eth0 only
        iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
    
        # allow HTTPS in, on eth0 only (hotspot's web server)
        #iptables -A INPUT -i eth0 -p tcp -m tcp --dport 443 -j ACCEPT
    
        # allow DNS in, on wlan0
        iptables -A INPUT -i wlan0 -p udp -m udp --dport 53 -j ACCEPT
    
        # allow DHCP in, on wlan0
        iptables -A INPUT -i wlan0 -p udp -m udp --dport 67 -j ACCEPT
    
        # packet forwarding rules
        iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
        iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    
        # allow HTTP and HTTPS to be forwarded
        iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
        iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT
        #iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m tcp --dport 8080 -j ACCEPT
        #iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m tcp --dport 8888 -j ACCEPT
        #iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m tcp --dport 4443 -j ACCEPT
    
        # uncomment below to allow SSH to be forwarded
        #iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m tcp --dport 22 -j ACCEPT
    
        #iptables -A FORWARD -i eth0 -o wlan0 -p tcp -m tcp --dport 8080 -j ACCEPT
    
        # everything else will be forbidden
  • # masquerade

    Posté par  . Évalué à 3.

    Tu dois simplement faire du masquerade sur le pc1 pour tout ce qui sort vers la box. Le problème dans ton cas est que la plupart des exemples de masquerade partent du principe qu'il y deux interfaces distinctes une pour nater et une pour le réseau interne. Dans ton cas, il faut une regarde du genre (attention, je n'ai pas testé) :

    iptables -t nat -A PREROUTING -d !192.168.1.0/23 -j MASQUERADE
    

    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

Suivre le flux des commentaires

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