[résolu] apache derrière un firewall iptables

[quote=“dric64”]Rajoute :

#forward des paquets arrivant sur eth0 vers eth1
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.0.220 -p tcp --dport 80 -m state ! --state INVALID -j ACCEPT

#réponses à ces paquets par le serveur
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.0.220 -d 0.0.0.0/0 -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT

Corrige celle la :
iptables -t nat -A PREROUTING -j DNAT -i eth0 -s 0.0.0.0/0 -d 192.168.0.253 -p TCP --dport 80 --to-destination 192.168.0.220

par

iptables -t nat -A PREROUTING -j DNAT -i eth0 -s 0.0.0.0/0 -d 192.168.0.253 -p TCP --dport 80 --to-destination 192.168.0.220:80

Tu retires ta directive POSTROUTING sans quoi, tu vas avoir le même problème que la dernière fois, c’est à dire des logs qui indiquent que le client est toujours le pare feu (normal, ils se substitue à l’adresse source réelle pour que les paquets retours puissent retrouver leur chemin).

Et tu vérifies bien que la route par défaut sur ton serveur web est bien la patte du pare feu à laquelle il est relié 192.168.0.152 je crois sinon, il ne saura plus par quel chemin répondre au requête puisqu’on à supprimé le postrouting.

J’espère que je ne me suis pas mélangé les pinceaux :017[/quote]

j’ai fait ainsi et toujours rien je capitule pour aujourd’hui, merci en tout cas pour l’aide :114

fran.b a l’air d’avoir la solution, pourtant… :005

Edit : bon en fait, vu que ca marche pour les autres utilisateurs qui se connectent depuis l’extérieur, ca servait absolument à rien mes dernieres modif. :090 Tu peux donc oublier…

IP2 parefeu passerelle vers l’extérieur

Tu as IP1 qui interroge IP2, IP2 redirige le port 80 vers IP3. IP3 reçoit une requête de IP1 et donc répond à IP1.

2 cas:

  1. IP1 vient de l’extérieur, passe par IP2, le paquet allant à l’extérieur est «NATé» et semble venir de l’adresse publique sur serveur, tout va bien.

  2. IP1, IP2 et IP3 sont dans le LAN, IP3 répond directement à IP1. Bilan IP1 veut ouvrir une connexion IP1/IP2 et reçoit une réponse de IP3, ça coince.
    Il faut donc mettre une règle de masquerading sur les paquets sortant de IP2 à destination de IP3 vers le port 80. Soit donc

à condition que eth1 soit l’interface vers le serveur.

MAIS il est impératif de mettre tes deux interfaces sur des réseaux différents (l’une sur 192.168.0.0/24 et l’autre sur 192.168.1.0/24 par exemple.

Mais du coup, il aura dans ses logs l’adresse ip du pare feu au lieu de l’adresse ip du véritable client, mais uniquement lorsqu’il se connectera depuis le réseau local, car dans le cas d’une connexion depuis l’extérieur il n’y aura pas de masquerading. Oui ?

Oui, l’alternative consiste à jouer sur les DNS mais c’est pénible.

D’accord, j’ai compris :041
Quel talent ce fran.b :038

ca marche ! j’ai changé ma configuration :

internet ->(IPEXTERNE)freebox(IPINTERNE)->(ETH0_192.168.0.253)firewall(iptables)(ETCH1_192.168.4.1)->(ETCH0-192.168.4.2)serveur web

toujours un souci avec une ip local qui est reconnu comme l’IPINTERNE mais cela doit venir du fait que pour sortir sur le net mon poste ne passe pas au travers du firewall

[code]echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -F
iptables -t nat -X
iptables -F
iptables -X
iptables -Z

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A PREROUTING -j DNAT -i eth0 -s 0.0.0.0/0 -d 192.168.0.253 -p TCP --dport 80 --to-destination 192.168.4.2
iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -d 192.168.4.2 -o eth0 -p tcp --dport 80 -m state --state ! INVALID -j SNAT --to-source 192.168.4.1
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -p tcp -m tcp --dport 80 -j MASQUERADE[/code]

merci pour l’aide et la réactivité :041