Forum Linux.général Routage pour un parefeu

Posté par  .
Étiquettes : aucune
0
3
août
2006
Bonjour à tous,

J'utilise un parefeu avec shorewall 3.0.0, et je n'arrive pas à faire du DNAT pour rediriger les entrées sur le port 80 de mon parefeu vers le port 80 d'une machine en interne (192.168.10.102).

eth0 : interface vers internet (193.xx.xxx.34)
eth1 : interface vers mon réseau interne (192.168.10.103)

le forward est permis
le fichier policy :

SOURCE DEST POLICY LOG LIMIT:BURST
# LEVEL
loc net ACCEPT
$FW net ACCEPT
loc $FW ACCEPT
$FW loc ACCEPT
net $FW DROP info
net all DROP info
all all REJECT info

règle dans rules :

DNAT net loc:192.168.10.102 tcp http - 193.xx.xxx.34

ma route donne :

route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
193.xx.xxx.32 * 255.255.255.248 U 0 0 0 eth0
192.168.10.0 * 255.255.255.0 U 0 0 0 eth1
default 193.xx.xxx.38 0.0.0.0 UG 0 0 0 eth0

le masque est à 255.255.255.248 car j'ai 5 adresses statiques publiques
et 193.xx.xxx.38 est ma passerelle.

en lisant la FAQ de shorewall (http://www.shorewall.net/FAQ_fr.html#id2460957) j'ai fait :

iptables -t nat -Z
shorewall show nat

ce qui me donne :

Chain net_dnat (1 references)
pkts bytes target prot opt in out source destination
1 60 DNAT tcp -- * * 0.0.0.0/0 193.xx.xxx.34 tcp dpt:80 to:192.168.10.102

j'ai ajouté cette règle dans le fichier rules pour loguer les paquet sur le port 80

Web/LOG:info all loc:192.168.10.102 - - - 193.xx.xxx.34

et dans le /var/log/messages j'ai :

Aug 3 09:54:12 src@Othello kernel: Shorewall:net2loc:LOG:IN=eth0 OUT=eth1 SRC=193.xx.xxx.33 DST=192.168.10.102 LEN=60 TOS=0x10 PREC=0x00 TTL=62 ID=46434 DF PROTO=TCP SPT=33890 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0

et voici la réponse de la FAQ :
Est-ce que le décompte de paquets dans la première colonne est supérieur à zéro ? Si cela est le cas, la requête de connexion atteint le firewall et est bien redirigée vers le serveur. Dans ce cas, le problème vient en général de l'absence de paramétrage ou d'un paramétrage erroné de la passerelle par défaut sur le système local (celui vers lequel vous essayez de transférer les paquets -- sa passerelle par défaut devrait être l'adresse IP de l'interface du firewall connectée à ce système local).

mais je n'arrive pas à configurer correctement ma route, j'ai essayé :
route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.103 dev eth1

mais sans succès

Merci de vos réponses

Senufo
  • # Pour faire de la NAT ...

    Posté par  . Évalué à 1.

    Sur la page :
    http://www.netfilter.org/documentation/index.html#documentat(...)

    Ouvre le "NAT HOWTO". Il existe en FRANCAIS !

    Les exemples en bas de la page 7 doivent t'éclairer.

    D'accord, cela utilise iptables et non une surcouche mais cela marche.
  • # [Résolu]

    Posté par  . Évalué à 1.

    Merci pour ta réponse, mais j'ai trouvé la solution en lisant un peu plus attentivement le Guide de configuration Shorewall, surtout la partie concernant le routage, à l'adresse suivante http://www.shorewall.net/shorewall_setup_guide_fr.htm. Le problème n'était pas sur le parefeu mais sur la machine interne qui héberge le serveur. Elle n'avait pas de route pas défaut, jai donc ajouté la commande suivante : route add default gw 192.168.10.103 qui me donne
    route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
    default         192.168.10.103    0.0.0.0         UG    0      0        0 eth0
    
    et maintenant tout marche parfaitement.

Suivre le flux des commentaires

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