Rechercher : dans
Par :

Configuration routage avec iptables

Dernière réponse le 28 sep 2007 à 14:25:35 fxfranck, le 13 fév 2006 à 01:28:46 
 Signaler ce message aux modérateurs

Salut,
j'ai un problème avec iptables, mon but est de permettre à un LAN d'accéder à Internet via une machine debian qui fait routeur, voici ma config :
J'ai un pc 192.168.222.2.
ma debian qui fait passerelle a 2 interfaces réseau : eth0 pour Internet et eth1(192.168.222.1) pour le LAN.
J'arrive à pinguer google ou autre ainsi que la 192.168.222.2 à partir de ma debian.

J'active le forward :
echo 1 > /proc/sys/net/ipv4/ip_forward

J'applique les règles iptables suivantes :
//j'interdit tout :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
//je fais la config pour la machine locale :
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
//j'accepte les requêtes web :
iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
//j'active le forward entre les 2 interfaces :
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -o eth0 -i eth1 -j ACCEPT

mais ça ne marche pas, la 192.168.222.2 ne parvient pas à se connecter au net, d'ou provient le pb?
merci pour vos réponses...

Meilleures réponses pour « configuration routage avec iptables » dans :
Configurer le mode Routeur de la Freebox VoirIl est possible d'activer le mode "Routeur" (NAT) de la Freebox. Avantages et inconvénients Avantages Inconvénient Configurer le mode routeur Connexion au site de Free Identification Fonctionnalités routeur de la Freebox Activation du...
Modem SpeedTouch 530 configuration routeur VoirReconfigurer les paramètres par défaut de votre modem routeur Speedtouch 530. Méthode numéro 1 Méthode numéro 2 (par l'interface) Méthode numéro 1 Vérifier que le modem est sous tension. Éteindre le modem en appuyant sur le bouton...

1

kilian, le 13 fév 2006 à 01:37:39

Salut,

D'abord il faut que tu laisses aussi passer les requêtes DNS vers l'exterieur (port udp 53).
Il faut que tu laisses l'exterieur répondre à tes requêtes:

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Et que tu actives le masquerading (pour que l'adresse ip de ton pc en réseau local soit traduite avec ton adresse ip publique sur internet pour pouvoir communiquer avec l'exterieur):
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.222.2 -j MASQUERADE

Répondre à kilian

2

kilian, le 13 fév 2006 à 01:39:30

Et aussi laisser sortir les requêtes icmp pour les ping:

iptables -A OUTPUT -p icmp -j ACCEPT

Répondre à kilian

3

fxfranck, le 13 fév 2006 à 02:00:29

Merci Kilian pour ta réponse,
j'ai ajouté les règles ci-dessus, mais ça ne marche toujours pas, j'ai remarqué que même sans règles iptables (iptables -P INPUT ACCEPT,iptables -P FORWARD ACCEPT et iptables -P OUTPUT ACCEPT), ça ne marche pas non plus : la 192.168.222.2 ne peut se connecter au net, le pb vient peut-être d'ailleurs.
Ne serait-ce pas un pb de route?

Répondre à fxfranck

4

kilian, le 13 fév 2006 à 07:32:33

Ah oui.
Ajoute voir cette ligne de commande sur le 192.168.222.2:

route add default gw 192.168.222.1

Répondre à kilian

5

kmf31, le 13 fév 2006 à 08:15:16

Pour faire facile il faut completement ouvrir la direction OUTPUT (pour tout port, on peut quand meme faire confiance a son pc) et appliquer cette regle avec "state" donne par kilian pour la direction INPUT. Sinon on ne pourra pas faire de ftp, ssh, ping, ...
Par contre on n'a pas besoin d'ouvrir le port 80 pour INPUT sans condition (sauf si on a soi meme un serveur web). Les regles INPUT et OUTPUT ne sont que pour le pc routeur.
Apres pour les autres PC c'est la meme chose avec les regles FORWARD et la tu acceptes trop et sans conditions pour la direction entree, il faut aussi mettre le blabla RELATED, ESTABLISHED ici (pour le 1er FORWARD que tu as mis).

Le plus important: tu n'as pas active le NAT sur le routeur et ca ne peut pas marcher. Alors tu dois mettre une regle comme:
iptables -A POSTROUTING -o eth0 -j MASQUERADE

Pour finir tu n'ouvres rien pour eth1 (avec INPUT, OUTPUT), donc le reseau/pc interne ne peut pas contacter le pc routeur (car ton defaut est DROP) mais ca ne devrait pas empecher son acces internet une fois le NAT active. Ca depend de tes intentions si c'est bon ou pas. Pour l'instant le pc routeur ne peut rien envoyer vers le pc interne ni recevoir quelque chose du pc internet (sauf si c'est transmis pour internet).

Regarde le IP-Masquerade-HOWTO:
http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/
notamment les sections: 3.4.1 et 6.4.1 avec les scripts (presque) tout prets.

Répondre à kmf31

6

fxfranck, le 13 fév 2006 à 22:34:36

Merci Kilian et kmf31 pour vos réponses,
en effet aprés avoir ajouté la ligne pour le masqerading au niveau du routeur :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
et la rourte qui va bien au niveau du pc du LAN :
route add default gw 192.168.222.1
et bien ça marche !!!
il n'y a plus qu'à affiner pour sécuriser tout ça...

@+

Répondre à fxfranck

7

francois392, le 28 sep 2007 à 13:14:59

Bonjour,

J'essaie de faire fonctionner, mais j'ai un problème de permission, je crois. Quelque détails:

$ ls -l /proc/sys/net/ipv4/ip_forward
-rw-r--r-- 1 root root 0 2007-09-28 07:11 /proc/sys/net/ipv4/ip_forward
$ cat /proc/sys/net/ipv4/ip_forward
0
$ sudo echo "1" > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

En fait, je suis le HOWTO ici: http://ubuntulinuxhowto.blogspot.com/2006/06/setup-your-computer-to-be-router.html

Donc, mon problème principal est que je ne peux pas activer ip_forward. Je suis sur Ubuntu Feisty Fawn 7.04.

Quelqu'un a-t-il une idée ?

Merci !
François

Répondre à francois392

8

lami20j, le 28 sep 2007 à 13:19:22

Salut,

essaie

sudo -s
echo 1 > /proc/sys/net/ipv4/ip_forward 
--
lami20j

Répondre à lami20j

9

 francois392, le 28 sep 2007 à 14:25:35

Merci lami20j. En fait, j'ai réussi en suivant les instructions de http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/

Bonne journée !
François

Répondre à francois392