[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Besoin d'un éclaircissement sur iptables



Salut,

Patrice OLIVER a écrit :

Je dispose d'un parefeu qui fonctionne avec Debian 3.1r1.
La société qui a installé le parefeu s'appuie sur netfilter.

actuellement, eth2 est mon interface 'Internet', eth1 est ma DMZ et
eth3 est une interface connectée à un réseau très haut débit,
disposant lui aussi d'une sortir sur Internet.

Sur ma DMZ, il y a une ressource dont j'ai besoin (ex : @IP
192.168.100.4) et à laquelle je souhaiterait accéder via eth3 car
l'accès est bcp plus véloce que sur eth2 (lié à l'abonnement).

j'ai donc écrit les 2 règles suivantes :

iptables -t nat -A PREROUTING -d 80.118.10.6 -i eth3 -p tcp --dport
443 -j DNAT --to 192.168.100.4
iptables -A RHD-DMZ -p tcp --dport 443 -j ACCEPT

la règle RHD-DMZ régit les échanges entre le réseau haut débit et la dmz.

Dans les deux sens ? Le trafic retour est pris en compte ?

Lorsque je tente un accès à ma source via https://extranet.maboite.fr,
les paquets arrivent sur l'interface, puis j'ai un Feb  5 14:19:40
nufw kernel: martian source 80.118.11.142 from 201.11.92.124, on dev
eth3

Là, j'ai besoin d'une explication.

Je suppose que
- la route par défaut du pare-feu est via eth2 ;
- la vérification d'adresse source est activée sur eth3 (/proc/sys/net/ipv4/conf/eth3/rp_filter=1).

Dans ces conditions, tout paquet IP reçu par eth3 provenant d'"internet" est rejeté par le routage d'entrée pour cause d'adresse source invalide après avoir traversé les chaînes PREROUTING. Pour l'éviter, il faut mettre rp_filter pour eth3 à 0.

Mais ce n'est pas suffisant. Le paquet original va bien atteindre le serveur dans la DMZ, mais le paquet de réponse va emprunter la route par défaut via eth2. S'il doit repartir par eth3, il faut mettre en place du routage avancé :
- marquage des paquets à router par eth3 avec la cible MARK d'iptables ;
- création d'une règle de routage dirigeant les paquets marqués vers une table de routage alternative (ip rule add fwmark xx lookup tt) ; - création d'une route par défaut via eth3 dans la table de routage alternative (ip route add default via gg table tt).

La reconnaissance par iptables des paquets à marquer peut être réalisée de plusieurs manières. En vrac : - par marquage de la connexion et des paquets appartenant à cette connexion (-j CONNMARK et -m connmark) ; - par recherche des paquets sortants appartenant à une connexion DNATée depuis eth3 (-m conntrack --ctstate DNAT --ctorigdst 80.118.10.6) ; - utilisation d'une adresse IP différente sur le serveur pour les connexions DNATées depuis eth3.

La troisième possibilité n'impose d'ailleurs pas le marquage puisque la règle de routage avancé peut être basée sur l'adresse source (ip rule add from ss lookup yy).

Cf. le LARTC HOWTO et le manuel d'ip/iproute pour les détails.



Reply to: