Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1532 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  SOCKS5 "transparent" via netfilter / iptables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SOCKS5 "transparent" via netfilter / iptables

n°1046159
whiterabbi​t
Posté le 28-05-2008 à 15:27:15  profilanswer
 

Bonjour à tous !
 
Le voilà enfin, ce jour où je vais devoir mettre les mains dans le cambouis pour titiller iptables  :D  
J'utilise une machine virtuelle, sous Mandriva 2008 Spring, et je souhaiterais que tout le trafic réseau sortant passe au travers d'un tunnel SSH utilisé comme SOCKS5.  
L'idée étant que de n'importe quel endroit où j'utilise ma VM, je puisse profiter d'accès réseaux sécurisés relayés via mon serveur perso à la maison.
 
J'ai pensé à une solution, mais n'ayant jusqu'ici jamais touché iptables (je n'ai que quelques notions), je me demande si cela sera réalisable, le but étant d'arriver à cette situation :
 
- Un tunnel SSH en mode SOCKS5 sur localhost:8888, dirigé sur une adresse IP externe (mon serveur perso) sur le port 3389  
ssh -D 8888 -p 3389 adr_ip_externe
Je souhaite que cette connexion sorte directement au travers d'eth0
 
- Une redirection de tous les flux sortants par eth0, quel que soit le protocole ou le port (hors port dest 3389) sur le localhost:8888
Pour cela, je pensais utiliser iptables.
 
 
Le but étant de rendre le SOCKS5 complètement "transparent" vis à vis de l'intégralité du système de la VM.
 
L'un de vous aurait-il un avis sur la chose, et éventuellement quelques débuts de pistes, que je puisse creuser ?
Merci d'avance  :jap:


Message édité par whiterabbit le 30-05-2008 à 15:20:34
mood
Publicité
Posté le 28-05-2008 à 15:27:15  profilanswer
 

n°1047124
whiterabbi​t
Posté le 30-05-2008 à 15:45:22  profilanswer
 

Après quelques recherches et lectures de man et howto, je suis presque arrivé à mon but, mais il doit me manquer un petit quelque chose.
Voici les règles que j'applique via iptables :
 
1) Je bloque tout par défaut

iptables -P INPUT   DROP
iptables -P OUTPUT  DROP
iptables -P FORWARD DROP


 
2) J'autorise le trafic sur la boucle locale

iptables -A OUTPUT -p all -o lo -j ACCEPT
iptables -A INPUT  -p all -i lo -j ACCEPT


 
3) J'autorise les connexions pour SSH (sur les ports 22 par défaut et 3389 pour des besoins perso)

iptables -A OUTPUT -p tcp -o eth0 --dport 22   -j ACCEPT
iptables -A INPUT  -p tcp -i eth0 --sport 22   -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --dport 3389 -j ACCEPT
iptables -A INPUT  -p tcp -i eth0 --sport 3389 -j ACCEPT


 
Jusqu'ici tout va bien, tout est bloqué à l'exception de ma connexion SSH, c'est ensuite que ça se complique un petit peu :
 
4) Je redirige via un DNAT l'intégralité du trafic généré vers le SOCKS ouvert par SSH en local, sur le port 8888 :
 
--> Pour l'UDP :

iptables -t nat -A OUTPUT -p udp -o eth0 -j DNAT --to-destination 127.0.0.1:8888


--> Pour le TCP, je crée les les règles de manière à ne pas prendre en compte les connexions sur les ports 22 et 3389 :

iptables -t nat -A OUTPUT -p tcp -o eth0 --dport 0:21       -j DNAT --to-destination 127.0.0.1:8888
iptables -t nat -A OUTPUT -p tcp -o eth0 --dport 23:3388    -j DNAT --to-destination 127.0.0.1:8888
iptables -t nat -A OUTPUT -p tcp -o eth0 --dport 3390:65535 -j DNAT --to-destination 127.0.0.1:8888


 
Là, je bloque un peu : les paquets sont bien redirigés vers le SOCKS (un petit iptables -vL -t nat m'indique bien de l'activité sur la plage couvrant le port 80 lorsque je tente d'accèder à une page web), mais il doit y avoir un problème pour le retour ...
 
Faut-il que je mette en place un SNAT, en plus du DNAT ?
 
 

n°1047133
P-Y
Posté le 30-05-2008 à 16:10:05  profilanswer
 

whiterabbit a écrit :

Après quelques recherches et lectures de man et howto, je suis presque arrivé à mon but, mais il doit me manquer un petit quelque chose.
Voici les règles que j'applique via iptables :
 
[...]
 
3) J'autorise les connexions pour SSH (sur les ports 22 par défaut et 3389 pour des besoins perso)

Citation :

iptables -A OUTPUT -p tcp -o eth0 --dport 22   -j ACCEPT
iptables -A INPUT  -p tcp -i eth0 --sport 22   -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --dport 3389 -j ACCEPT
iptables -A INPUT  -p tcp -i eth0 --sport 3389 -j ACCEPT




 
Deja a ce niveau la ca va pas, tu autorises n'importes quel paquet entrant qui aurait pour port source le port 22 ou 3389, or rien n'indique que ce soit bien une connexion ssh/rdesktop deja etablie...
Il faut plutot utiliser:
iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED -j ACCEPT
(il faut avoir les bons modules iptables avec, mais normalement ils sont toujours fournis copmilés ou en module avec les kernels des différentes distribs.)


Message édité par P-Y le 30-05-2008 à 16:10:39
n°1047139
whiterabbi​t
Posté le 30-05-2008 à 16:20:05  profilanswer
 

Merci pour ta réponse ... il est vrai que je n'ai pas trop restreint à ce niveau.
En fait, j'ai oublié de préciser que le système sur lequel je fais ces manips est virtualisé, et qu'il accède au réseau via un NAT géré par la VM, elle même hébergée sur une machine qui est sur un réseau protégé par firewall.  
Il n'est donc pas accessible directement depuis l'extérieur ... je pensais donc, peut être à tort, que ce n'était pas indispensable, dans mon cas, de prendre en compte l'état de la connexion sur les règles INPUT.
 
Pour mon problème, j'ai l'impression que les paquets DNATés ne retrouvent pas leur chemin au retour ...


Message édité par whiterabbit le 30-05-2008 à 16:23:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  SOCKS5 "transparent" via netfilter / iptables

 

Sujets relatifs
Script bash + iptables = probleme incomprehensibleConf IPTABLES
[Debian] Problème iptables et Nat[iptables] Contrer une attaque DDos
Iptables et Qos[résolu RTFM] Problème de NAT iptables
Squid en mode transparent pour limitation de débitPetage de cable sur iptables + FTP
Problème de syntaxe IPTABLES[Résolu] IPtables ne se lance pas
Plus de sujets relatifs à : SOCKS5 "transparent" via netfilter / iptables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR