OVH Cloud OVH Cloud

iptables

22 réponses
Avatar
arno
bonjour,

je souhaiterais faire une redirection du port 80 (depuis 192.168.1.249) vers
une autre machine (192.168.1.201)

voici ma commande :
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination
192.168.1.201:80

mais ce ne marche, j'ai fait de multiples tests, avec les options, etc ...
mais rien !!!

pouvez vous m'eclairer
merci

arno

debian 3.0 noyau 2.4

10 réponses

1 2 3
Avatar
Xavier
je recapitule:
j'ai lancé cela :
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination
192.168.1.201:80
iptables -t nat -A POSTROUTING -p tcp --sport 80 -j SNAT --to-source
192.168.1.201
Mille excuses, cette dernière règle est une connerie. Le --to-source

doit contenir l'IP publique. Dans tous les cas, le module ip_conntrack
est une bien meilleure solution, donc la règle est à supprimer
iptables -A FORWARD -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.201 --syn --dport 80 -m
state --state NEW -j ACCEPT
iptables -P FORWARD DROP

(d'ailleurs quand je fais un iptables -L -t filter, dans la table foward, je
ne vois qu'une regle, celle-ci :
ACCEPT tcp -- anywhere anywhere tcp
c'est normal ?????)


Non, ce n'est absolument pas normal, tu devrais voir toutes les règles.

Dans ton cas, ça devrait donner:
ACCEPT all -- anywhere anywhere state
RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:80
state NEW

Si tu veux voir les interfaces, il faut ajouter -v

Avatar
Pascal
Salut,



je souhaiterais faire une redirection du port 80 (depuis 192.168.1.249)
vers une autre machine (192.168.1.201)


Une petite topologie de votre réseau et le contexte nous seraient à mon
avis utile.

mais ce ne marche, j'ai fait de multiples tests, avec les options, etc




Quels tests, quelles options, avec quels résultats ? (message d'erreur
précis, trace de paquet... tout sauf "ça ne marche pas")

voici donc le resultat d'un iptable-save
[...]

*filter
:INPUT ACCEPT [628:82275]
:FORWARD ACCEPT [0:0]


Apparemment aucun paquet n'a traversé la chaîne FORWARD.
Le forward IP est-il activé (/proc/sys/net/ipv4/ip_forward="1") ?

:OUTPUT ACCEPT [201:68593]
-A FORWARD -p tcp -m tcp -j ACCEPT


Règle inutile puisque la politique par défaut de FORWARD est ACCEPT.

*nat
:PREROUTING ACCEPT [230:38614]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination
192.168.1.201:80


A quoi correspond eth1, qu'est-ce qui est connecté dessus ? S'il y a
eth1, il y a sûrement aussi eth0. A quoi correspond-elle, qu'est-ce qui
est connecté dessus ?

-A POSTROUTING -p tcp -m tcp --sport 80 -j SNAT --to-source 192.168.1.201


Cette règle est au mieux inutile, au pire elle fout le bordel. Netfilter
n'a pas besoin de règles complémentaires pour gérer les opérations de
NAT inverse sur les paquets retour.

Je réitère la demande de TiChou : quelle est la topologie de ton réseau
(liens et adressage IP, tables de routages, passerelles), et quel est le
contexte d'utilisation. En particulier, où sont les clients qui lancent
les connexions HTTP redirigées ? Sur le même réseau que les deux autres
machines, ailleurs ?



Avatar
arno
"" a écrit dans le message de news:
crbt96$1b7m$
Salut,



je souhaiterais faire une redirection du port 80 (depuis 192.168.1.249)
vers une autre machine (192.168.1.201)


Une petite topologie de votre réseau et le contexte nous seraient à mon
avis utile.

mais ce ne marche, j'ai fait de multiples tests, avec les options, etc




Quels tests, quelles options, avec quels résultats ? (message d'erreur
précis, trace de paquet... tout sauf "ça ne marche pas")

voici donc le resultat d'un iptable-save
[...]

*filter
:INPUT ACCEPT [628:82275]
:FORWARD ACCEPT [0:0]


Apparemment aucun paquet n'a traversé la chaîne FORWARD.
Le forward IP est-il activé (/proc/sys/net/ipv4/ip_forward="1") ?

:OUTPUT ACCEPT [201:68593]
-A FORWARD -p tcp -m tcp -j ACCEPT


Règle inutile puisque la politique par défaut de FORWARD est ACCEPT.

*nat
:PREROUTING ACCEPT [230:38614]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination
192.168.1.201:80


A quoi correspond eth1, qu'est-ce qui est connecté dessus ? S'il y a
eth1, il y a sûrement aussi eth0. A quoi correspond-elle, qu'est-ce qui
est connecté dessus ?

-A POSTROUTING -p tcp -m tcp --sport 80 -j SNAT --to-source
192.168.1.201



Cette règle est au mieux inutile, au pire elle fout le bordel. Netfilter
n'a pas besoin de règles complémentaires pour gérer les opérations de
NAT inverse sur les paquets retour.

Je réitère la demande de TiChou : quelle est la topologie de ton réseau
(liens et adressage IP, tables de routages, passerelles), et quel est le
contexte d'utilisation. En particulier, où sont les clients qui lancent
les connexions HTTP redirigées ? Sur le même réseau que les deux autres
machines, ailleurs ?


il s'agit d'un réseau 192.168.1.0
192.168.1.201 serveur web (windows 2000 sr)
192.168.1.249 debian (il n'ya qu'une seule carte eth0)
192.168.1.1 machine cliente windows

que dire de plus ???




Avatar
Pascal

il s'agit d'un réseau 192.168.1.0
192.168.1.201 serveur web (windows 2000 sr)
192.168.1.249 debian (il n'ya qu'une seule carte eth0)
192.168.1.1 machine cliente windows


Bon, j'ai vu aussi la discussion que tu as lancée dans la liste
debian-user-french. Si la machine Debian n'a qu'une interface qui
s'appelle eth0, alors il serait bon de supprimer l'option "-i eth1" de
la règle DNAT que j'ai vu traîner dans le dump d'iptables-save. Sinon,
cette règle ne fonctionnera jamais. On t'a aussi expliqué la nécessité
d'une règle SNAT ou MASQUERADE pour masquer au serveur web la source
réelle des connexions quand toutes les machines sont sur le même réseau,
afin que les paquets retour repassent par la machine qui a fait la
redirection NAT.

Pour faire simple, voici un petit script qui devrait fonctionner. Comme
ton réseau semble isolé, il n'y a aucune considération de sécurité, tout
est ouvert par défaut.

# pour faire le menage et tout ouvrir quel que soit l'etat de depart
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# pour activer le routage IP
echo "1" > /proc/sys/net/ipv4/ip_forward

# redirection NAT destination 192.168.1.249:80 -> 192.168.1.201
iptables -t nat -d 192.168.1.249 -p tcp --dport 80
-j DNAT --to-destination 192.168.1.201

# masquage NAT source 192.168.1.x -> 192.168.1.249
iptables -t nat -s 192.168.1.0/24 -d 192.168.1.201 -p tcp --dport 80
-j SNAT --to-source 192.168.1.249

Avatar
arno
"" a écrit dans le message de news:
cre2u6$28uc$

il s'agit d'un réseau 192.168.1.0
192.168.1.201 serveur web (windows 2000 sr)
192.168.1.249 debian (il n'ya qu'une seule carte eth0)
192.168.1.1 machine cliente windows


Bon, j'ai vu aussi la discussion que tu as lancée dans la liste
debian-user-french. Si la machine Debian n'a qu'une interface qui
s'appelle eth0, alors il serait bon de supprimer l'option "-i eth1" de
la règle DNAT que j'ai vu traîner dans le dump d'iptables-save. Sinon,
cette règle ne fonctionnera jamais. On t'a aussi expliqué la nécessité
d'une règle SNAT ou MASQUERADE pour masquer au serveur web la source
réelle des connexions quand toutes les machines sont sur le même réseau,
afin que les paquets retour repassent par la machine qui a fait la
redirection NAT.

Pour faire simple, voici un petit script qui devrait fonctionner. Comme
ton réseau semble isolé, il n'y a aucune considération de sécurité, tout
est ouvert par défaut.

# pour faire le menage et tout ouvrir quel que soit l'etat de depart
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# pour activer le routage IP
echo "1" > /proc/sys/net/ipv4/ip_forward

# redirection NAT destination 192.168.1.249:80 -> 192.168.1.201
iptables -t nat -d 192.168.1.249 -p tcp --dport 80
-j DNAT --to-destination 192.168.1.201

# masquage NAT source 192.168.1.x -> 192.168.1.249
iptables -t nat -s 192.168.1.0/24 -d 192.168.1.201 -p tcp --dport 80
-j SNAT --to-source 192.168.1.249


merci bq ca marche !!!!
pour info dans la redirection, il manque -A PREROUTING, -A POSTROUTING

c'est obligé d'initialiser toutes les tables avant ???


Avatar
TiChou
Dans le message <news:crdr9k$kro$,
*arno* tapota sur f.c.o.l.configuration :

Avant tout, merci de relire le site suivant et de tenir compte une fois pour
toute de ce qui est dit avant de répondre sur ce groupe :

http://www.giromini.org/usenet-fr/repondre.html

Une petite topologie de votre réseau et le contexte nous seraient à mon
avis utile.



Quels tests, quelles options, avec quels résultats ? (message d'erreur
précis, trace de paquet... tout sauf "ça ne marche pas")

Apparemment aucun paquet n'a traversé la chaîne FORWARD.
Le forward IP est-il activé (/proc/sys/net/ipv4/ip_forward="1") ?

A quoi correspond eth1, qu'est-ce qui est connecté dessus ? S'il y a
eth1, il y a sûrement aussi eth0. A quoi correspond-elle, qu'est-ce qui
est connecté dessus ?

Je réitère la demande de TiChou : quelle est la topologie de ton réseau
(liens et adressage IP, tables de routages, passerelles), et quel est le
contexte d'utilisation. En particulier, où sont les clients qui lancent
les connexions HTTP redirigées ? Sur le même réseau que les deux autres
machines, ailleurs ?


il s'agit d'un réseau 192.168.1.0
192.168.1.201 serveur web (windows 2000 sr)
192.168.1.249 debian (il n'ya qu'une seule carte eth0)
192.168.1.1 machine cliente windows

que dire de plus ???


Tout simplement de *répondre* aux questions qu'on vous a posé ?

--
TiChou




Avatar
arno
"TiChou" a écrit dans le message de news:

Dans le message <news:crdr9k$kro$,
*arno* tapota sur f.c.o.l.configuration :

Avant tout, merci de relire le site suivant et de tenir compte une fois
pour

toute de ce qui est dit avant de répondre sur ce groupe :

http://www.giromini.org/usenet-fr/repondre.html

Une petite topologie de votre réseau et le contexte nous seraient à
mon





avis utile.



Quels tests, quelles options, avec quels résultats ? (message d'erreur
précis, trace de paquet... tout sauf "ça ne marche pas")

Apparemment aucun paquet n'a traversé la chaîne FORWARD.
Le forward IP est-il activé (/proc/sys/net/ipv4/ip_forward="1") ?

A quoi correspond eth1, qu'est-ce qui est connecté dessus ? S'il y a
eth1, il y a sûrement aussi eth0. A quoi correspond-elle, qu'est-ce qui
est connecté dessus ?

Je réitère la demande de TiChou : quelle est la topologie de ton réseau
(liens et adressage IP, tables de routages, passerelles), et quel est
le



contexte d'utilisation. En particulier, où sont les clients qui lancent
les connexions HTTP redirigées ? Sur le même réseau que les deux autres
machines, ailleurs ?


il s'agit d'un réseau 192.168.1.0
192.168.1.201 serveur web (windows 2000 sr)
192.168.1.249 debian (il n'ya qu'une seule carte eth0)
192.168.1.1 machine cliente windows

que dire de plus ???


Tout simplement de *répondre* aux questions qu'on vous a posé ?

--
TiChou



Qu'ai fait de travers ??
Je te remercie de m'eclairer !!
(désolé je n'ai pas le temps de "promener" sur le net)





Avatar
Nicolas George
"arno" wrote in message <cre5bs$rii$:
Qu'ai fait de travers ??


1. Répondre à l'envers.

2. Ne pas répondre aux demandes de précisions qui te sont faites.

Avatar
arno
"Nicolas George" <nicolas$ a écrit dans le message de
news: cre7dd$2auc$
"arno" wrote in message <cre5bs$rii$:
Qu'ai fait de travers ??


1. Répondre à l'envers.

2. Ne pas répondre aux demandes de précisions qui te sont faites.


désolé, j'ai une faute de frappe !!
je pense avoir apporté les réponses aux questions.
si je n'y reponds pas, aucun interet pour moi car je ne vois pas comment les
autres personnes pourront m'aider !!!


Avatar
Jerome Lambert
arno wrote:
"Nicolas George" <nicolas$ a écrit dans le message de
news: cre7dd$2auc$

"arno" wrote in message <cre5bs$rii$:

Qu'ai fait de travers ??


1. Répondre à l'envers.



2. Ne pas répondre aux demandes de précisions qui te sont faites.



désolé, j'ai une faute de frappe !!
je pense avoir apporté les réponses aux questions.
si je n'y reponds pas, aucun interet pour moi car je ne vois pas comment les
autres personnes pourront m'aider !!!


Toi non, mais si les autres te le demande, c'est que *eux* savent
quelles informations y trouver...



1 2 3