Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Problème IpTables - Masquerade
Envoyé par: Sebast1

Bonsoir à tous,

Je me permet de poster ce message pour obtenir de l'aide puisque je n'arrive toujours pas à trouver la solution à mon problème ! :-/

Je souhaite configurer ma passerelle Internet (avec deux interfaces Ethernet) sous Debian GNU/Linux 4.1 mais je rencontre quelques problèmes au niveau des règles de Masquerade avec Iptalbes...

Voiçi mes interfaces réseaux :

eth0 Lien encap:Ethernet HWaddr 00:00:6C:F4:70:67
inet adr:81.220.96.206 Bcast:81.220.96.255 Masque:255.255.255.0
adr inet6: fe80::200:6cff:fef4:7067/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:134922 errors:0 dropped:0 overruns:0 frame:0
TX packets:2743 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:9916220 (9.4 Micool smiley TX bytes:387120 (378.0 Kicool smiley
Interruption:169 Adresse de base:0x6000

eth1_rena Lien encap:Ethernet HWaddr 00:50:FC:6C:C6:07
inet adr:192.168.10.1 Bcast:192.168.10.255 Masque:255.255.255.0
adr inet6: fe80::250:fcff:fe6c:c607/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5368 errors:0 dropped:0 overruns:0 frame:0
TX packets:5227 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:606808 (592.5 Kicool smiley TX bytes:2130595 (2.0 Micool smiley
Interruption:193 Adresse de base:0xb000



eth0 fonctionne en DHCP et est connectée à un modem câble.

eth1_rename correspond au réseau local (d'ailleurs je ne sais pas pourquoi j'ai eth1_rename au lieu de eth1.. peut être à cause de mon problème rencontré entre udev et le nforce4, mais bon l'interface fonctionne convenablement :-))

Ensuite j'ai activé l'ip_forwarding avec : echo 1 > /proc/sys/net/ipv4/ip_forward


Puis j'ai souhaité configurer iptables avec le script suivant :

# !/bin/sh

iptables -F
iptables -t nat -F
iptables -t mangle -F

iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

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

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

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i eth1_rename -j ACCEPT
iptables -A OUTPUT -o eth1_rename -j ACCEPT

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



Mais il m'est toujours impossible d'accéder à Internet depuis un poste client LAN...

Pour information, voiçi la table de routage du Kernel:

Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
81.220.96.0 * 255.255.255.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth1_rename
default 81.220.96.1 0.0.0.0 UG 0 0 0 eth0


La table me semble correcte et si j'essaye d'accéder à Internet tout en désactivant Iptables (en fait je mets les polices par défaut sur ACCEPT pour la table FILTER) tout fonctionne à merveille.

Je pense que l'erreur provient donc d'une règle de filtrage incorrecte dans Iptables... mais je commence à manquer de pistes pour essayer de trouver une solution :-(

Merçi d'avance pour vos réponses.

Sébastien

Poste le Wednesday 2 January 2008 20:45:23
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: NBaH

Bien le bonsoir

Je ne trouve rien à redire au script que tu présentes. clair et léger

Comment charges-tu les modules pour faire du nat? Ou, as-tu activé les options ad'hoc en recompilant ton noyau?


Poste le Wednesday 2 January 2008 21:35:19
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: Sebast1

Bonsoir et merçi pour ta réponse

En ce qui concerne les modules, j'ai fait un lsmod est ce suffisant pour répondre à ta question ? smiling smiley

Voici le résultat du lsmod : (j'ai juste conservé ce qui concerne le firewall)

ipt_MASQUERADE 3584 1
iptable_mangle 2944 0
iptable_nat 7044 1
ip_nat 16428 2 ipt_MASQUERADE,iptable_nat
ip_conntrack 47156 3 ipt_MASQUERADE,iptable_nat,ip_nat
nfnetlink 6680 2 ip_nat,ip_conntrack
iptable_filter 3200 1
ip_tables 12104 3 iptable_mangle,iptable_nat,iptable_filter
x_tables 12932 3 ipt_MASQUERADE,iptable_nat,ip_tables


Merçi d'avance smiling smiley

Sébastien

Poste le Wednesday 2 January 2008 21:40:22
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: NBaH

Est-ce que tu redémarres ta passerelle ? Car alors, /proc/sys/net/ipv4/ip_forward ne reste pas à 1 ?

mieux vaut aller dans le fichier /etc/sysctl.conf, pour y décommenter les lignes ayant trait à l'ip_forwarding :

...
# Uncomment the next line to enable packet forwarding for IPv4
> #net.ipv4.conf.default.forwarding=1

# Uncomment the next line to enable packet forwarding for IPv6
#net.ipv6.conf.default.forwarding=1

de cette façon que tu redémarres ou qu'elle plante (à cause d'une panne électrique bien sûr) l'IPforwarding sera toujours activé.

Poste le Wednesday 2 January 2008 22:16:20
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: Sebast1

En fait le script que j'ai mis dans mon premier post est un script init.d lancé au démarrage du système donc l'option du forwarding était bien active :-)

En revanche, je l'ai configuré comme tu me l'as indiqué; c'est beaucoup plus efficace !

Sinon le problème persiste toujours :-/

Poste le Wednesday 2 January 2008 22:23:22
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: NBaH

Tu n'as pas configuré ton interface de d'entrée/sortie de ta passerelle ?

iptables -A OUTPUT -o eth0 -s 81.220.96.206 -d 0.0.0.0/0 -p all -m state --state ! INVALID -j ACCEPT
iptables -A INPUT -i eth0 -s 0.0.0.0/0 -d 81.220.96.206 -m state --state RELATED,ESTABLISHED -j ACCEPT

Poste le Wednesday 2 January 2008 23:02:24
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: chromosome

Juste une question comme ca au passage, tu as bien mis 192.168.10.1 comme default gateway sur tes postes clients ?

Sinon oui tes regles sont claires, mais fausses.

iptables -F : Flush des regles filter
iptables -t nat -F : Flush des regles nat
iptables -t mangle -F : Flush des regles mangle

iptables -X : Encore du nettoyage

/* Bonne chose que de tout supprimer par defaut */
iptables -P INPUT DROP : DROP par defaut sur l'INPUT
iptables -P OUTPUT DROP : DROP par defaut sur l'OUTPUT
iptables -P FORWARD DROP : DROP par defaut sur le FORWARD

/*Initialisation des tables NAT, mais c'est deja les valeurs par defaut*/
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

/*Super, mais je vois pas pourquoi tu initialises avec les valeurs par defaut la table mangle, tu ne l'utilises pas*/
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

/*Ca c'est bon*/
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

/*Ok, tu laisses les gens de l'interne se connecter sur ta becane et sur tout les port, pourquoi pas */
iptables -A INPUT -i eth1_rename -j ACCEPT
iptables -A OUTPUT -o eth1_rename -j ACCEPT

/*Et maintenant ton NAT*/
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


Mais dans tout ca tu n'as fait que bloquer des flux, et tu n'as autorise aucun flux en FORWARD (donc pas comme NBaH viens de te demander, il se plante, car en plus ton adresse externe est dynamique)

Il te faut en plus

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

Et si tu veux que ta passerelle puisse aussi sortir

iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Mais bon tout ouvrir n'est pas non plus un tres bonne chose.

Mais bon je viens de te taper ca en vitesse sans faire de test, Tu devrais utiliser des outils comme tcpdump afin de d'analyser tes problemes, ca pourrait vachement t'aider et te permettre de comprendre ce qu'il se passe.


Poste le Wednesday 2 January 2008 23:19:33
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: NBaH

Mais oui, le FORWARD !!!
[v]Vous avez un nez? mais où ça?[/v]

Poste le Wednesday 2 January 2008 23:49:08
Répondre     Citer    
Re: Problème IpTables - Masquerade
Envoyé par: Sebast1

Hello,

Tout d'abord merçi beaucoup à vous deux pour vos réponses!

Je me doutais bien qu'il y avait quelque chose avec le forward mais ne sachant pas vraiment quoi j'ai préféré vous demander ;-)


Chromosome: J'ai bien ajouté les lignes suivantes dans ma configuration et ensuite ça passe bien :

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

iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT



J'avais trouver des tutos sur le net mais ils n'étaient pas assez approfondis pour adapter ma config, en revanche j'en ai trouvé d'autres qui me permettent d'avancer suite à vos conseils (nottament pour sécuriser le Forward puisque la tout est accepté sur l'interface eth1_rename).

Je vais essayer tout ça et je vous tiens informés.

Sébastien

Poste le Thursday 3 January 2008 17:07:48
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Problème IpTables - Masquerade
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons