Re: Forcer un port sur une interface via UFW

2015-04-27 Par sujet Pascal Hambourg
Salut,

Damien TOURDE a écrit :
 
 Savez vous si on peut forcer UFW à n'autoriser les connexions que sur
 une interface particulière ?
 
 Je veux faire passer toutes les connexions (TCP/UDP entrantes 
 sortantes) du port 51413 sur l'interface tun0.

Il y a une différence entre forcer ou faire passer sur une interface
 (routage) et n'autoriser que sur une interface (filtrage). Que veux-tu
faire exactement ?

 tun0 est l'interface crée par OpenVPN lorsque je me connecte, sachant
 que je ne me connecte au VPN que quand j'en ai besoin.
 
 Je précise UFW car c'est ce que j'utilise, mais si on peut le faire avec
 iptables directement (et que UFW n'a pas de problèmes lorsqu'on ajoute
 des règles IPTABLES...).

Je ne sais pas utiliser ufw. Pour bloquer en TCP avec iptables :
iptables -I OUTPUT ! -o tun0 -p tcp --dport 51413 -j DROP
iptables -I INPUT ! -i tun0 -p tcp --dport 51413 -j DROP
(-I insèrera les règles en début de chaîne, avant celles créées par ufw)

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/553dea80.5090...@plouf.fr.eu.org



Re: Forcer un port sur une interface via UFW

2015-04-27 Par sujet Pascal Hambourg
Damien TOURDE a écrit :
 Le 27/04/2015 09:51, Pascal Hambourg a écrit :
 
 Je veux faire passer toutes les connexions (TCP/UDP entrantes 
 sortantes) du port 51413 sur l'interface tun0.
 Il y a une différence entre forcer ou faire passer sur une interface
  (routage) et n'autoriser que sur une interface (filtrage). Que veux-tu
 faire exactement ?
 
 Je veux faire en sorte que si tun0 est présent, on passe par tun0, si le
 VPN se déconnecte, tun0 disparait, et je veux que dans ce cas, les
 connexions entrantes et sortantes soient DROP (c'est toujours appelé
 DENY sous UFW).

Si la route par défaut est sur tun0 quand le VPN est actif, alors le
filtrage devrait suffire.

 Je ne sais pas utiliser ufw. Pour bloquer en TCP avec iptables :
 iptables -I OUTPUT ! -o tun0 -p tcp --dport 51413 -j DROP
 iptables -I INPUT ! -i tun0 -p tcp --dport 51413 -j DROP
 (-I insèrera les règles en début de chaîne, avant celles créées par ufw)

Note : pour UDP, il faut savoir si le port 51413 est le port source ou
destination, dans les paquets UDP émis et reçus.

 j'imagine que le ! avant -i et -o signifie /n'est pas/ ?

Oui, cela inverse le critère qui suit. Cf. man iptables.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/553dff53.3090...@plouf.fr.eu.org



Re: Forcer un port sur une interface via UFW

2015-04-27 Par sujet Erwan David
On Mon, Apr 27, 2015 at 11:08:26AM CEST, Damien TOURDE dam...@tourde.org said:
 Bonjour,
 Le 27/04/2015 09:51, Pascal Hambourg a écrit :
 
  Je veux faire passer toutes les connexions (TCP/UDP entrantes 
  sortantes) du port 51413 sur l'interface tun0.
  
  Il y a une différence entre forcer ou faire passer sur une interface
   (routage) et n'autoriser que sur une interface (filtrage). Que veux-tu
  faire exactement ?
 
 Je veux faire en sorte que si tun0 est présent, on passe par tun0, si le
 VPN se déconnecte, tun0 disparait, et je veux que dans ce cas, les
 connexions entrantes et sortantes soient DROP (c'est toujours appelé
 DENY sous UFW).

Je ne connais pas UFW (j'utilise fwbuilder pour générer mes règles
iptables), mais à ta place je mettrais une règle qui droppe (ou
rejette) ces paquets sur les interfaces physiques, suivi d'une règle qui 
autorise.


en iptables ça utiliserait -i interface ou -o interface selon que tu 
considère l'interface d'entrée ou de sortie.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/20150427093309.gk4...@rail.eu.org



Re: Forcer un port sur une interface via UFW

2015-04-27 Par sujet Damien TOURDE
Bonjour,
Le 27/04/2015 09:51, Pascal Hambourg a écrit :

 Je veux faire passer toutes les connexions (TCP/UDP entrantes 
 sortantes) du port 51413 sur l'interface tun0.
 
 Il y a une différence entre forcer ou faire passer sur une interface
  (routage) et n'autoriser que sur une interface (filtrage). Que veux-tu
 faire exactement ?

Je veux faire en sorte que si tun0 est présent, on passe par tun0, si le
VPN se déconnecte, tun0 disparait, et je veux que dans ce cas, les
connexions entrantes et sortantes soient DROP (c'est toujours appelé
DENY sous UFW).

 tun0 est l'interface crée par OpenVPN lorsque je me connecte, sachant
 que je ne me connecte au VPN que quand j'en ai besoin.

 Je précise UFW car c'est ce que j'utilise, mais si on peut le faire avec
 iptables directement (et que UFW n'a pas de problèmes lorsqu'on ajoute
 des règles IPTABLES...).
 
 Je ne sais pas utiliser ufw. Pour bloquer en TCP avec iptables :
 iptables -I OUTPUT ! -o tun0 -p tcp --dport 51413 -j DROP
 iptables -I INPUT ! -i tun0 -p tcp --dport 51413 -j DROP
 (-I insèrera les règles en début de chaîne, avant celles créées par ufw)
 

Merci pour ces règles, je vais les tester, j'imagine que le ! avant -i
et -o signifie /n'est pas/ ?

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/553dfc8a.90...@tourde.org



Re: Forcer un port sur une interface via UFW

2015-04-27 Par sujet Damien TOURDE


Le 27/04/2015 11:20, Pascal Hambourg a écrit :
 Si la route par défaut est sur tun0 quand le VPN est actif, alors le
 filtrage devrait suffire.
 

Lors d'une déconnexion VPN accidentelle (par ex. la connexion se
coupe), l'interface tun0 est supprimée et tout le transfert repasse
par wlan0 dans mon cas.

En gros, je veux que les transferts via Transmission s'arrêtent dans ce
cas, je vais jeter un coup d’œil à iptables et les règles que tu m'as
données, ça fait un moment (5 ans) que j'ai pas utilisé iptables
directement, c'est pour ça que j'ai d'abord demandé avec UFW.

 Note : pour UDP, il faut savoir si le port 51413 est le port source ou
 destination, dans les paquets UDP émis et reçus.

Je ne sais pas trop comment fonctionne Transmission, il faut que je me
documente, quand je fais un netstat j'ai :

root@MBP-Debian-Damien:~# netstat -lnp | grep transmiss
tcp0  0 0.0.0.0:51413   0.0.0.0:*
LISTEN  6339/transmission-g
tcp6   0  0 :::51413:::*
LISTEN  6339/transmission-g
udp0  0 0.0.0.0:46821   0.0.0.0:*
6339/transmission-g
udp0  0 0.0.0.0:51413   0.0.0.0:*
6339/transmission-g


L'idéal serait de pouvoir dire que tout ce qui sort ou entre pour
l'application transmission-gtk doit passer par tun0, mais je ne suis pas
sur que ce soit possible.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/553e597e.2020...@tourde.org



Re: Forcer un port sur une interface via UFW

2015-04-27 Par sujet Pascal Hambourg
Damien TOURDE a écrit :
 
 Le 27/04/2015 11:20, Pascal Hambourg a écrit :
 Si la route par défaut est sur tun0 quand le VPN est actif, alors le
 filtrage devrait suffire.
 
 Lors d'une déconnexion VPN accidentelle (par ex. la connexion se
 coupe), l'interface tun0 est supprimée et tout le transfert repasse
 par wlan0 dans mon cas.

Avec un filtrage approprié ça ne passera plus.

 Note : pour UDP, il faut savoir si le port 51413 est le port source ou
 destination, dans les paquets UDP émis et reçus.
 
 Je ne sais pas trop comment fonctionne Transmission, il faut que je me
 documente, quand je fais un netstat j'ai :

Parfois une capture de paquets bien ciblée en apprend autant et plus
rapidement qu'une longue lecture.

 root@MBP-Debian-Damien:~# netstat -lnp | grep transmiss
 tcp00 0.0.0.0:514130.0.0.0:* LISTEN  6339/transmission-g
 tcp6   00 :::51413 :::*  LISTEN  6339/transmission-g
 udp00 0.0.0.0:468210.0.0.0:* 6339/transmission-g
 udp00 0.0.0.0:514130.0.0.0:* 6339/transmission-g

On voit une socket UDP sur le port local 46821 que tu n'avais pas
mentionné. S'il change à chaque fois que transmission est relancé, c'est
un port aléatoire qui ne sert probablement que de port source pour
envoyer des paquets UDP vers le port 51413 de machines distantes. Dans
ce cas je pense qu'il devrait être suffisant de bloquer le port 51413 en
source ou destination dans les paquets UDP émis ou reçus.

iptables -I OUTPUT ! -o tun0 -p udp --dport 51413 -j DROP
iptables -I OUTPUT ! -o tun0 -p udp --sport 51413 -j DROP
iptables -I INPUT ! -i tun0 -p udp --dport 51413 -j DROP
iptables -I INPUT ! -i tun0 -p udp --sport 51413 -j DROP

 L'idéal serait de pouvoir dire que tout ce qui sort ou entre pour
 l'application transmission-gtk doit passer par tun0, mais je ne suis pas
 sur que ce soit possible.

Un filtre de paquets comme iptables n'est pas vraiment conçu pour cela.
 Si le processus tourne avec un UID ou un GID  spécifique, la
correspondance owner permet d'identifier les paquets émis localement
avec cet UID ou GID, mais pas les paquets reçus.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/553e7809.2070...@plouf.fr.eu.org