[FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Florent Nolot

Bonjour

Je suis confronté à un problème dans une configuration de redirection de 
port avec iptables.
Quand je fais un écoute avec tcpdump sur le port concerné, ma 
redirection fonctionne mais quand j'arrête mon tcpdump, la redirection 
en marche plus !
Il semble donc que comme lors de l'écoute avec tcpdump, l'interface est 
en listen la redirection fonctionne alors que sans le tcpdump, il n'y a 
pas d'écoute et le port ne s'ouvre pas à la demande de connexion !


Ci-dessous ma règle iptable.

# Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
*nat
:PREROUTING ACCEPT [1008:218755]
:INPUT ACCEPT [154:25938]
:OUTPUT ACCEPT [7:532]
:POSTROUTING ACCEPT [8:572]
-A PREROUTING -i br0 -p tcp -m tcp --dport 5901 -j DNAT --to-destination 
X.X.X.X:2069

-A POSTROUTING -p tcp -m tcp --dport 2069 -j MASQUERADE
COMMIT
# Completed on Fri Jan 10 17:05:09 2014
# Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
*filter
:INPUT ACCEPT [2146:198921]
:FORWARD ACCEPT [2:80]
:OUTPUT ACCEPT [484:91340]
COMMIT
# Completed on Fri Jan 10 17:05:09 2014

Je suis sur une

Linux serv-vm1 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

Cordialement

--
Florent NOLOT
Université de Reims Champagne-Ardenne

___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Emmanuel Thierry
Bonjour,

Le 10 janv. 2014 à 17:09, Florent Nolot a écrit :

> Bonjour
> 
> Je suis confronté à un problème dans une configuration de redirection de port 
> avec iptables.
> Quand je fais un écoute avec tcpdump sur le port concerné, ma redirection 
> fonctionne mais quand j'arrête mon tcpdump, la redirection en marche plus !
> Il semble donc que comme lors de l'écoute avec tcpdump, l'interface est en 
> listen la redirection fonctionne alors que sans le tcpdump, il n'y a pas 
> d'écoute et le port ne s'ouvre pas à la demande de connexion !
> 

Je crois que ça manque d'infos...
Quelle est la topologie réseau ? Laquelle des deux règles foire ?

Tu peux également débugguer en utilisant la cible LOG ou la cible TRACE:
iptables -t raw -j TRACE

Cordialement
Emmanuel Thierry


> Ci-dessous ma règle iptable.
> 
> # Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
> *nat
> :PREROUTING ACCEPT [1008:218755]
> :INPUT ACCEPT [154:25938]
> :OUTPUT ACCEPT [7:532]
> :POSTROUTING ACCEPT [8:572]
> -A PREROUTING -i br0 -p tcp -m tcp --dport 5901 -j DNAT --to-destination 
> X.X.X.X:2069
> -A POSTROUTING -p tcp -m tcp --dport 2069 -j MASQUERADE
> COMMIT
> # Completed on Fri Jan 10 17:05:09 2014
> # Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
> *filter
> :INPUT ACCEPT [2146:198921]
> :FORWARD ACCEPT [2:80]
> :OUTPUT ACCEPT [484:91340]
> COMMIT
> # Completed on Fri Jan 10 17:05:09 2014
> 
> Je suis sur une
> 
> Linux serv-vm1 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
> 
> Cordialement
> 
> -- 
> Florent NOLOT
> Université de Reims Champagne-Ardenne
> 
> ___
> Liste de diffusion du FRsAG
> http://www.frsag.org/

___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Florent Nolot

Archi assez simple

Internet --> Serveur avec la redirection --> Destination X.X.X.X

Le problème tourne vraiment autour du br0 je pense.

Florent NOLOT
Université de Reims Champagne-Ardenne

Le 10/01/2014 17:19, Emmanuel Thierry a écrit :

Bonjour,

Le 10 janv. 2014 à 17:09, Florent Nolot a écrit :


Bonjour

Je suis confronté à un problème dans une configuration de redirection de port 
avec iptables.
Quand je fais un écoute avec tcpdump sur le port concerné, ma redirection 
fonctionne mais quand j'arrête mon tcpdump, la redirection en marche plus !
Il semble donc que comme lors de l'écoute avec tcpdump, l'interface est en 
listen la redirection fonctionne alors que sans le tcpdump, il n'y a pas 
d'écoute et le port ne s'ouvre pas à la demande de connexion !


Je crois que ça manque d'infos...
Quelle est la topologie réseau ? Laquelle des deux règles foire ?

Tu peux également débugguer en utilisant la cible LOG ou la cible TRACE:
iptables -t raw -j TRACE

Cordialement
Emmanuel Thierry



Ci-dessous ma règle iptable.

# Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
*nat
:PREROUTING ACCEPT [1008:218755]
:INPUT ACCEPT [154:25938]
:OUTPUT ACCEPT [7:532]
:POSTROUTING ACCEPT [8:572]
-A PREROUTING -i br0 -p tcp -m tcp --dport 5901 -j DNAT --to-destination 
X.X.X.X:2069
-A POSTROUTING -p tcp -m tcp --dport 2069 -j MASQUERADE
COMMIT
# Completed on Fri Jan 10 17:05:09 2014
# Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
*filter
:INPUT ACCEPT [2146:198921]
:FORWARD ACCEPT [2:80]
:OUTPUT ACCEPT [484:91340]
COMMIT
# Completed on Fri Jan 10 17:05:09 2014

Je suis sur une

Linux serv-vm1 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

Cordialement

--
Florent NOLOT
Université de Reims Champagne-Ardenne

___
Liste de diffusion du FRsAG
http://www.frsag.org/




___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Christophe
Bonsoir,

Le 10/01/2014 17:09, Florent Nolot a écrit :
> Bonjour
> 
> Je suis confronté à un problème dans une configuration de redirection de
> port avec iptables.
> Quand je fais un écoute avec tcpdump sur le port concerné, ma
> redirection fonctionne mais quand j'arrête mon tcpdump, la redirection
> en marche plus !

Quand tcpdump est lancé, cela active le mode promiscuous sur l'interface
réseau concernée , et cette interface peut donc prendre en compte des
paquets qui ne lui sont normalement pas destinés.
(à creuser).

> Archi assez simple
> 
> Internet --> Serveur avec la redirection --> Destination X.X.X.X
> 
> Le problème tourne vraiment autour du br0 je pense.

Fort possible :
Comment ce bridge est il configuré ?

Question subsidiaire (parce que c'est un cas vécu) :
Et ce qu'il n'y aurait pas une adresse IP qui traine sur une des
interfaces réseau qui constitue ton bridge ? (typiquement une adresse IP
attribuée en DHCP sur une des interfaces réseau avant que le bridge ne
soit monté ?).

@+
Christophe.
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Pierre `Sn4kY` DOLIDON
le bridge porte l'IP publique, et redirrige les flux vers une ip privée 
montée sur le même bridge ?

je dirai déjà qu'il y a un soucis de choix de l'archi.

sinon, quelle est la gw de la VM (?)

truc con, tu as bien pensé a activer le routage au niveau du kernel ?

Le 10/01/2014 18:07, Christophe a écrit :

Bonsoir,

Le 10/01/2014 17:09, Florent Nolot a écrit :

Bonjour

Je suis confronté à un problème dans une configuration de redirection de
port avec iptables.
Quand je fais un écoute avec tcpdump sur le port concerné, ma
redirection fonctionne mais quand j'arrête mon tcpdump, la redirection
en marche plus !

Quand tcpdump est lancé, cela active le mode promiscuous sur l'interface
réseau concernée , et cette interface peut donc prendre en compte des
paquets qui ne lui sont normalement pas destinés.
(à creuser).


Archi assez simple

Internet --> Serveur avec la redirection --> Destination X.X.X.X

Le problème tourne vraiment autour du br0 je pense.

Fort possible :
Comment ce bridge est il configuré ?

Question subsidiaire (parce que c'est un cas vécu) :
Et ce qu'il n'y aurait pas une adresse IP qui traine sur une des
interfaces réseau qui constitue ton bridge ? (typiquement une adresse IP
attribuée en DHCP sur une des interfaces réseau avant que le bridge ne
soit monté ?).

@+
Christophe.
___
Liste de diffusion du FRsAG
http://www.frsag.org/


___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Florent Nolot

Pour plus d'informations :

iptables -t nat -nvL

Chain PREROUTING (policy ACCEPT 129 packets, 23159 bytes)
 pkts bytes target prot opt in out source   destination
3   180 DNAT   tcp  --  br0* 0.0.0.0/0
0.0.0.0/0tcp dpt:5901 to:194.57.105.57:2069


Chain INPUT (policy ACCEPT 15 packets, 2506 bytes)
 pkts bytes target prot opt in out source   destination

Chain OUTPUT (policy ACCEPT 2 packets, 152 bytes)
 pkts bytes target prot opt in out source   destination

Chain POSTROUTING (policy ACCEPT 2 packets, 152 bytes)
 pkts bytes target prot opt in out source   destination
0 0 MASQUERADE  tcp  --  *  br0 0.0.0.0/0
0.0.0.0/0tcp dpt:2069


Donc au final, les paquets sont bien interceptés par la règle PREROUTING 
mais pas par le POSTROUTING


Florent NOLOT
Université de Reims Champagne-Ardenne

Le 10/01/2014 17:24, Aurélien Bras a écrit :

Bonjour,

Je spécifie toujours l'interface de sortie pour pour un snat :

-A PREROUTING -i br0 -p tcp -m tcp --dport 5901 -j DNAT 
--to-destination X.X.X.X:2069

-A POSTROUTING -o br0 -p tcp -m tcp --dport 2069 -j MASQUERADE

Sinon comme je vois que l'interface se nomme br0, je soupçonne que 
l'ip sur lequel tu effectue ton nat ne soit pas le routeur et ignore 
donc les paquets en question, sauf avec un tcpdump qui activerait le 
promiscius mode ...


Cordialement.

Aurélien


Le 10 janvier 2014 17:09, Florent Nolot > a écrit :


Bonjour

Je suis confronté à un problème dans une configuration de
redirection de port avec iptables.
Quand je fais un écoute avec tcpdump sur le port concerné, ma
redirection fonctionne mais quand j'arrête mon tcpdump, la
redirection en marche plus !
Il semble donc que comme lors de l'écoute avec tcpdump,
l'interface est en listen la redirection fonctionne alors que sans
le tcpdump, il n'y a pas d'écoute et le port ne s'ouvre pas à la
demande de connexion !

Ci-dessous ma règle iptable.

# Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
*nat
:PREROUTING ACCEPT [1008:218755]
:INPUT ACCEPT [154:25938]
:OUTPUT ACCEPT [7:532]
:POSTROUTING ACCEPT [8:572]
-A PREROUTING -i br0 -p tcp -m tcp --dport 5901 -j DNAT
--to-destination X.X.X.X:2069
-A POSTROUTING -p tcp -m tcp --dport 2069 -j MASQUERADE
COMMIT
# Completed on Fri Jan 10 17:05:09 2014
# Generated by iptables-save v1.4.14 on Fri Jan 10 17:05:09 2014
*filter
:INPUT ACCEPT [2146:198921]
:FORWARD ACCEPT [2:80]
:OUTPUT ACCEPT [484:91340]
COMMIT
# Completed on Fri Jan 10 17:05:09 2014

Je suis sur une

Linux serv-vm1 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

Cordialement

-- 
Florent NOLOT

Université de Reims Champagne-Ardenne

___
Liste de diffusion du FRsAG
http://www.frsag.org/




___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Christophe
Le 10/01/2014 18:25, Florent Nolot a écrit :
> Pour plus d'informations :
> 
> iptables -t nat -nvL
> 
> Chain PREROUTING (policy ACCEPT 129 packets, 23159 bytes)
>  pkts bytes target prot opt in out source  
> destination
> 3   180 DNAT   tcp  --  br0*   0.0.0.0/0   
> 0.0.0.0/0tcp dpt:5901 to:194.57.105.57:2069
> 
> Donc au final, les paquets sont bien interceptés par la règle PREROUTING
>  

Certes, mais ne serait-ce pas les paquets qui sont passé au moment ou
ton tcpdump était lancé ?

Sans s'être concerné avec Aurélien, on en arrive à la même conclusion :
que le tcpdump active le promiscuous, et accepte des paquets qui ne sont
normalement pas destinés à la machine. (As tu vérifié que les interfaces
constituant le bridge br0 n'ont pas d'adresse IP ?)

Un autre truc me chagrine : c'est la destination de tes paquets , qui
semble être une IP publique . Non pas que techniquement, ça ne soit pas
possible , mais cela me parait curieux .

Habituellement, la cible d'une règle DNAT de la table POSTROUTING est
une adresse privée.

> mais pas par le POSTROUTING

Pour autant que je sache , seul le PREROUTING est nécessaire dans ce cas.

@+
Christophe.
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Christophe
Le 10/01/2014 19:00, Christophe a écrit :
> Habituellement, la cible d'une règle DNAT de la table POSTROUTING est
> une adresse privée.

s/POSTROUTING/PREROUTING/

sorry ..
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Aurélien Bras
Le POSTROUTING est nécessaire dans son cas si il veut que le flux retour
passe par son serveur, sinon la serveur de destination répondra directement
à l'ip source non modifié, routage public oblige.

Mais comme on voit ne voit rien qui traverse le POSTROUTING, on pourrait
penser comme le suggère Pierre que l'ip_forward n'est pas activé.


Le 10 janvier 2014 19:03, Christophe  a écrit :

> Le 10/01/2014 19:00, Christophe a écrit :
> > Habituellement, la cible d'une règle DNAT de la table POSTROUTING est
> > une adresse privée.
>
> s/POSTROUTING/PREROUTING/
>
> sorry ..
> ___
> Liste de diffusion du FRsAG
> http://www.frsag.org/
>
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Nathan delhaye
Est-ce que ta as tout simplement essayé d'activer le mode promisc sur ton
interface?

Perso sur mes hn OpenVz j'utilise le script suivant sur le host pour un vpn
propagé entre les machines lors du montage du tunnel :

#!/bin/bash
/sbin/ifconfig mgmtbr0 promisc
/sbin/ifconfig tap0 up promisc
/sbin/brctl addif mgmtbr0 tap0
Le 10 janv. 2014 19:18, "Aurélien Bras"  a écrit :

> Le POSTROUTING est nécessaire dans son cas si il veut que le flux retour
> passe par son serveur, sinon la serveur de destination répondra directement
> à l'ip source non modifié, routage public oblige.
>
> Mais comme on voit ne voit rien qui traverse le POSTROUTING, on pourrait
> penser comme le suggère Pierre que l'ip_forward n'est pas activé.
>
>
> Le 10 janvier 2014 19:03, Christophe  a écrit :
>
>> Le 10/01/2014 19:00, Christophe a écrit :
>> > Habituellement, la cible d'une règle DNAT de la table POSTROUTING est
>> > une adresse privée.
>>
>> s/POSTROUTING/PREROUTING/
>>
>> sorry ..
>> ___
>> Liste de diffusion du FRsAG
>> http://www.frsag.org/
>>
>
>
> ___
> Liste de diffusion du FRsAG
> http://www.frsag.org/
>
>
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Florent Nolot


Le 10/01/2014 18:07, Christophe a écrit :

Fort possible : Comment ce bridge est il configuré ?

classiquement,

$ brctl br0 show
bridge name bridge id   STP enabled interfaces
br0 8000.0025901b2988   no  eth0

$ ip addr show dev eth0
2: eth0:  mtu 1500 qdisc mq master br0 
state UP qlen 1000

link/ether 00:25:90:1b:29:88 brd ff:ff:ff:ff:ff:ff



Question subsidiaire (parce que c'est un cas vécu) :
Et ce qu'il n'y aurait pas une adresse IP qui traine sur une des
interfaces réseau qui constitue ton bridge ? (typiquement une adresse IP
attribuée en DHCP sur une des interfaces réseau avant que le bridge ne
soit monté ?).


Florent NOLOT
Université de Reims Champagne-Ardenne


___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Florent Nolot

Le 10/01/2014 18:18, Pierre `Sn4kY` DOLIDON a écrit :
le bridge porte l'IP publique, et redirrige les flux vers une ip 
privée montée sur le même bridge ? 
je dirai déjà qu'il y a un soucis de choix de l'archi.
Non, je redirige vers une publique ou une privée, d'où le nat en 
postrouting pour supporter les 2 possibilités (que j'ai), aucun problème 
d'archi. Le paquet est routé vers la gw mais du coup, avec le nat en 
postrouting, avec la bonne source.

Avant un upgrade majeur de kernel, cela marchait parfaitement.

___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Christophe
Bonsoir,

Le 10/01/2014 19:17, Aurélien Bras a écrit :
> Le POSTROUTING est nécessaire dans son cas si il veut que le flux retour
> passe par son serveur, sinon la serveur de destination répondra
> directement à l'ip source non modifié, routage public oblige.

Donc il y'a clairement un truc qui m'échappe.

Le 10/01/2014 17:30, Florent Nolot a écrit :
> Archi assez simple
>
> Internet --> Serveur avec la redirection --> Destination X.X.X.X

La machine de destination est en IP publique ?
Au vu du "Archi assez simple", j'en doute.

Si tel est le cas (et ça rejoint la question de Pierre, sur la Gateway
utilisée par la machine de destination), il est fort à parier qu'il y a
un routage asymétrique. Les paquets arrivant depuis une gateway , mais
ressortant par un autre (et ça , à part cas très particuliers, ça ne
marche pas / et du coup, c'est pas de l'archi simple).

Mais dans les deux cas, je ne saisis quand même pas l'intérêt de la
règle POSTROUTING. surtout avec un --dport ?? (c'est pas --sport
normalement ?)

> 
> Mais comme on voit ne voit rien qui traverse le POSTROUTING, on pourrait
> penser comme le suggère Pierre que l'ip_forward n'est pas activé.
> 

C'est vrai qu'il est bon de rappeler la base (oubli assez fréquent dans
ce genre de situations) ...
Mais c'est plutôt le fait que ça fonctionne pendant qu'un tcpdump (et
donc le promiscuous mode) est lancé alors que cela n'est plus le cas
sans qui me parait curieux.

@+
Christophe.
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Aurélien Bras
>
>
> Mais c'est plutôt le fait que ça fonctionne pendant qu'un tcpdump (et
> donc le promiscuous mode) est lancé alors que cela n'est plus le cas
> sans qui me parait curieux.
>

En fait c'est rigolo, le promiscuous mode se substitue à l'ip_forward si on
a un DNAT et un SNAT. J'ai fait le test sur mon dédié perso en redirigeant
le port 9998 vers le port 80 de www.free.fr, c'est fonctionnel sans
ip_forward si et seulement si l'interface est en promiscuous :

Voici mes deux règles de NAT :

-A PREROUTING -i eth0 -p tcp -m tcp --dport 9998 -j DNAT --to-destination
212.27.48.10:80
-A POSTROUTING -o eth0 -p tcp -m tcp --dport 80 -j MASQUERADE

Donc je pense qu'il a bien oublié d'activer l'ip_forward :)

Bonne soirée

Aurélien
___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Florent Nolot

Le 10/01/2014 19:27, Nathan delhaye a écrit :


Est-ce que ta as tout simplement essayé d'activer le mode promisc sur 
ton interface?




Cela fonctionne effectivement en faisant un simple ifconfig br0 promisc
Ce qui est assez logique car on retrouve le comportement de la carte 
comme avec le tcpdump


Dès que j'aurai la réponse sans le promisc, je poste car c'est très étrange.

Florent NOLOT
Université de Reims Champagne-Ardenne


___
Liste de diffusion du FRsAG
http://www.frsag.org/


Re: [FRsAG] Problème redirection port iptables

2014-01-10 Par sujet Sébastien Bocahu
hellow,

> Le problème tourne vraiment autour du br0 je pense.

J'ai pas creusé ta question, mais au cas où:

Ne serait ce pas dû à net.bridge.bridge-nf-call-iptables ?

___
Liste de diffusion du FRsAG
http://www.frsag.org/