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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

iptables et openvpn

n°1399985
gilles007
Posté le 23-01-2017 à 15:20:48  profilanswer
 

Bonjour,
 
je teste un serveur openvpn sur centos.
jusque là, pas de problème : mes clients se connectent.
 
je dispose d'un réseau local sur lequel les clients ne doivent pas aller partout.
ca aussi, pas de problème : je peux autoriser un serveur ou 2 mais pas le reste du reseau.
 
par contre, j'ai un problème quand je veux donner accès à internet à mes clients.
actuellement, si je forward tout le trafic entre tun0 et eth0, cela marche
mais tout l'accès au lan est permis, comme si les regles étaient court-circuitées

 
est-ce que un as de iptables peut me conseiller ?
 
pour info, je n'ai pas de NAT car j'ai un firewall derriere qui doit garder les logs.
 
voilà mes regles iptables actuelles :
je precise que 10.9.0.0 est le réseau qu'utilise openvpn en mode tun et que 172.22.0.0/20 est le réseau local à protéger.
le serveur openvpn est en 172.22.1.21 (eth0) et 10.9.0.1 (tun0)
 

Code :
  1. iptables -F
  2. iptables -P INPUT DROP
  3. iptables -P FORWARD DROP
  4. iptables -P OUTPUT DROP
  5. autorise l'interface locale :
  6. localhost interface (loopback) :
  7. iptables -A INPUT -i lo -j ACCEPT
  8. iptables -A OUTPUT -o lo -j ACCEPT
  9. administration du serveur :
  10. iptables -A INPUT -i eth0 -p tcp -m multiport -s 10.20.8.14 -d 172.22.1.21 --dport 22,5901 -m state --state NEW,ESTABLISHED -j ACCEPT
  11. iptables -A OUTPUT -o eth0 -p tcp -m multiport --sport 22,5901 -m state --state ESTABLISHED -j ACCEPT
  12. tout le monde peut pinguer le serveur :
  13. iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 172.22.1.21 -m state --state NEW,ESTABLISHED -j ACCEPT
  14. iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 10.9.0.1 -m state --state NEW,ESTABLISHED -j ACCEPT
  15. iptables -A OUTPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
  16. le serveur peut surfer :
  17. iptables -A OUTPUT -o eth0 -p tcp -m multiport -s 172.22.1.21 -d 0.0.0.0/0 --dport 53,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
  18. iptables -A INPUT -i eth0 -p tcp -m multiport --sport 53,80,443 -m state --state ESTABLISHED -j ACCEPT
  19. iptables -A OUTPUT -o eth0 -p udp -s 172.22.1.21 -d 0.0.0.0/0  --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
  20. iptables -A INPUT -i eth0 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
  21. autorise les clients VPN à se connecter en tcp+udp 443 :
  22. iptables -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d 172.22.1.21 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  23. iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
  24. iptables -A INPUT -i eth0 -p udp -s 0.0.0.0/0 -d 172.22.1.21 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  25. iptables -A OUTPUT -o eth0 -p udp --sport 443 -m state --state ESTABLISHED -j ACCEPT
  26. le serveur peut tout pinguer :
  27. iptables -A OUTPUT -o eth0 -p icmp -s 172.22.1.21 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED -j ACCEPT
  28. iptables -A OUTPUT -o tun0 -p icmp -s 10.9.0.1 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED -j ACCEPT
  29. iptables -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED -j ACCEPT
  30. ;pour les clients VPN
  31. iptables -A FORWARD -i tun0 -j ACCEPT
  32. ;les clients VPN peuvent tous acceder à 172.22.0.12 sans restriction de port
  33. iptables -A FORWARD -i tun0 -o eth0 -s 10.9.0.0/24 -d 172.22.0.12 -m state --state RELATED,ESTABLISHED -j ACCEPT
  34. iptables -A FORWARD -i eth0 -o tun0 -s 172.22.0.12 -d 10.9.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
  35. ;1 seul client VPN peut accèder à 172.22.0.196 en rdp
  36. iptables -A FORWARD -i tun0 -o eth0 -p tcp -s 10.9.0.10 -d 172.22.0.196 --dport 3389 -m state --state RELATED,ESTABLISHED -j ACCEPT
  37. iptables -A FORWARD -i eth0 -o tun0 -p tcp -s 172.22.0.196 -d 10.9.0.10 --sport 3389 -m state --state RELATED,ESTABLISHED -j ACCEPT


Message édité par gilles007 le 24-01-2017 à 09:44:42
mood
Publicité
Posté le 23-01-2017 à 15:20:48  profilanswer
 

n°1399996
ahbahlut
UTC-8
Posté le 23-01-2017 à 20:49:47  profilanswer
 

Bon il y a beaucoup de choses qui sont pas tres propres dans ton fichier, a mon avis le mieux a ce point c'est d'aller lire la doc de iptables directement et de revoir la base sur les reseaux.
(C'est pas un troll, perso je l'ai lu la doc iptables en anglais quand j'en ai eu assez de bricoler des regles a l'arrache)
 
Sinon cela devrait ressembler plus a un truc comme ca.
 

Code :
  1. iptables -A FORWARD -i tun0 -o eth0 -p tcp -s 10.9.0.10 -d 172.22.0.196 --dport 3389 -m state --state RELATED,ESTABLISHED -j ACCEPT
  2. iptables -A FORWARD -i eth0 -o tun0 -p tcp -s 172.22.0.196 -d 10.9.0.10 --sport 3389 -m state --state RELATED,ESTABLISHED -j ACCEPT
  3. iptables -A FORWARD -d 172.22.0.0/255.255.252.0 -j REJECT
  4. iptables -A FORWARD -i tun0 -j ACCEPT



Message édité par ahbahlut le 23-01-2017 à 20:55:52
n°1400007
gilles007
Posté le 24-01-2017 à 00:43:31  profilanswer
 

je comprends ce que tu dis mais la conf que j'ai posté je ne l'ai pas sortie comme ca tu vois, j'ai lu beaucoup de truc sur iptables et j'ai repris des exemples existants.
je l'ai testé cette conf : les restrictions sur 172.22.0.0/20 fonctionnent.

 

par contre, ta conf, elle, elle ne fonctionne pas : plus rien ne passe.
j'ai mis en ACCEPT INPUT et OUTPUT en virant toutes les regles pour pas que tu dises que c'est elles aussi qui sont mal faites.
mais c'est pareil : ta conf marche pas

 

en plus tu n'as pas répondu pas à la question
essaye encore, stp

Message cité 1 fois
Message édité par gilles007 le 24-01-2017 à 00:44:21
n°1400008
ahbahlut
UTC-8
Posté le 24-01-2017 à 01:40:59  profilanswer
 

gilles007 a écrit :

je comprends ce que tu dis mais la conf que j'ai posté je ne l'ai pas sortie comme ca tu vois, j'ai lu beaucoup de truc sur iptables et j'ai repris des exemples existants.
je l'ai testé cette conf : les restrictions sur 172.22.0.0/20 fonctionnent.
 
par contre, ta conf, elle, elle ne fonctionne pas : plus rien ne passe.
j'ai mis en ACCEPT INPUT et OUTPUT en virant toutes les regles pour pas que tu dises que c'est elles aussi qui sont mal faites.
mais c'est pareil : ta conf marche pas
 
en plus tu n'as pas répondu pas à la question
essaye encore, stp


 
Ca fonctionne mais ca fonctionne pas?  [:sombrero67]  
 
J'ai pas trouve de question alors j'ai pas repondu effectivement.
 

Code :
  1. iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 172.22.1.21 -m state --state NEW,ESTABLISHED -j ACCEPT


 
Le module state ne s'applique pour les connections TCP et de plus il est obsolete il faut utiliser conntrack.
 

Code :
  1. iptables -A OUTPUT -o eth0 -p udp -s 172.22.1.21 -d 0.0.0.0/0  --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT


 
Module state avec udp  :lol:
 

Code :
  1. autorise les clients VPN à se connecter en tcp+udp 443 :
  2. iptables -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d 172.22.1.21 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  3. iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT


 
Comment les clients du VPN qui sont derrieres tun0 arrivent a rentrer par eth0?  :o  
 

Code :
  1. iptables -A OUTPUT -o tun0 -p icmp -s 10.9.0.1 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED -j ACCEPT


 
Le serveur peut donc envoyer des requetes ICMP mais ne pourra jamais recevoir les reponses, j'aime le concept.
 
Et le meilleur pour la fin
 

Code :
  1. iptables -A FORWARD -i tun0 -j ACCEPT


La, tu acceptes tout ce qui rentre par tun0 ok pourquoi pas.
 

Code :
  1. iptables -A FORWARD -i tun0 -o eth0 -s 10.9.0.0/24 -d 172.22.0.12 -m state --state RELATED,ESTABLISHED -j ACCEPT


 
Mais alors pourquoi tu mets ca juste apres si tu viens deja de tout accepter?!  
 
 

Code :
  1. iptables -A FORWARD -i tun0 -o eth0 -p tcp -s 10.9.0.10 -d 172.22.0.196 --dport 3389 -m state --state RELATED,ESTABLISHED -j ACCEPT


 
du coup idem hein, celle ci sert a rien.
 

Code :
  1. iptables -A FORWARD -i eth0 -o tun0 -p tcp -s 172.22.0.196 -d 10.9.0.10 --sport 3389 -m state --state RELATED,ESTABLISHED -j ACCEPT


 
Et la pour le port 3389 tu acceptes les states RELATED,ESTABLISHED mais jamais NEW ? La faudra m'expliquer a quoi ca sert. En plus ESTABLISHED ne sert que dans des cas tres precis genre FTP. Et d'apres wikipedia le RDP utilise TCP et UDP.
 
 

Code :
  1. autorise les clients VPN à se connecter en tcp+udp 443 :
  2. iptables -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d 172.22.1.21 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  3. iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
  4. iptables -A INPUT -i eth0 -p udp -s 0.0.0.0/0 -d 172.22.1.21 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  5. iptables -A OUTPUT -o eth0 -p udp --sport 443 -m state --state ESTABLISHED -j ACCEPT


 
UDP 443  :o
 
J'arrete la mais il en reste hein. On est tres loin d'un truc qui fonctionne.
 
Je t'ai donne 50% de la reponse mais t'as pas su quoi en faire, t'as prefere etre agressif. Du coup moi aussi  [:spamatounet]

Message cité 3 fois
Message édité par ahbahlut le 24-01-2017 à 01:58:49
n°1400017
o'gure
Modérateur
Multi grognon de B_L
Posté le 24-01-2017 à 08:52:51  profilanswer
 

ahbahlut a écrit :


 En plus ESTABLISHED ne sert que dans des cas tres precis genre FTP. Et d'apres wikipedia le RDP utilise TCP et UDP.


non, ce dont tu parles c'est RELATED.
Grossièrement, lorsque qu'une "flux" dérive d'un autre, le premier paquet de ce nouveau flux vu est mis en état RELATED. C'est effectivement valable pour FTP (session de donnée lié à la session de controle où on négocie les ports) mais pour d'autre protocole qui négocie des ports pour des flux parallèles y compris de l'udp. Cela peut être des flux tcp, icmp, udp

 


Message édité par o'gure le 24-01-2017 à 09:57:41

---------------
Relax. Take a deep breath !
n°1400018
o'gure
Modérateur
Multi grognon de B_L
Posté le 24-01-2017 à 08:56:01  profilanswer
 

ahbahlut a écrit :


Code :
  1. iptables -A OUTPUT -o eth0 -p udp -s 172.22.1.21 -d 0.0.0.0/0  --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
 

Module state avec udp  :lol:
 


Ce n'est pas parce qu'il n'y a pas de connections dans la définition du protocole UDP que l'on ne pas suivre UDP via le module state
http://www.iptables.info/en/connec [...] ONNECTIONS
Grossierement, le stateful apporté par les modules states et conntrack crée des états pour UDP afin de savoir si on peut autoriser un paquet dans un sens alors qu'il a été vu dans l'autre. Typiquement ça sert dans le cas suivant:
- De base tu interdis tout paquet entrant
- tu autorises les paquets sortant vers le port UDP/53
- tu autorises les paquets en ESTABLISHED à rentrer
=> tes résolutions DNS fonctionneront, ce n'est pas parce que UDP est un protocole stateless qu'on ne peut pas mettre des artifices dans les équipements de sécurité et rester avec de vieilles ACL sans état [:spamafote]


Message édité par o'gure le 24-01-2017 à 09:02:11

---------------
Relax. Take a deep breath !
n°1400019
o'gure
Modérateur
Multi grognon de B_L
Posté le 24-01-2017 à 08:56:36  profilanswer
 

ahbahlut a écrit :


Code :
  1. iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 172.22.1.21 -m state --state NEW,ESTABLISHED -j ACCEPT
 

Le module state ne s'applique pour les connections TCP
 

 

Euh non
https://www.netfilter.org/documenta [...] WTO-7.html
RELATED

 

   Le paquet est associé à une connexion existante sans faire partie de cette connexion, comme une erreur ICMP ou (avec le module FTP chargé) un paquet établissant une connexion de données FTP.

 

From the iptables manpage:

 

state
       This module, when combined with connection tracking, allows access to  the
       connection tracking state for this packet.

 

      --state state
              Where  state  is a comma separated list of the connection states to
              match.  Possible states are INVALID  meaning  that  the  packet  is
              associated  with  no known connection, ESTABLISHED meaning that the
              packet is associated with a connection which has  seen  packets  in
              both directions, NEW meaning that the packet has started a new con­
              nection, or otherwise associated with a connection  which  has  not
              seen  packets  in  both  directions,  and RELATED meaning that the
              packet is starting a new connection,  but  is  associated  with  an
              existing  connection,  such  as  an  FTP  data transfer, or an ICMP
              error.


Message édité par o'gure le 24-01-2017 à 09:02:28

---------------
Relax. Take a deep breath !
n°1400023
gilles007
Posté le 24-01-2017 à 10:18:41  profilanswer
 

Code :
  1. Ca fonctionne mais ca fonctionne pas?


Tu ne comprends rien ou tu fais expres : quand j'écris que cette conf fonctionne, je parle de ma conf, celle du 1er post
celle que tu as posté (dans le 2eme post, après avoir dis que tu ne trolles pas), ne marche pas.
 
ma conf marche, la tienne non, c'est clair maintenant ?
 
Le reste de ton pavé, oh mon dieu, je vais prendre le temps de le lire mais je crois que tu n'as rien compris.
c'est normal puisque tu dis toi-meme n'avoir pas vu la question.
 

Code :
  1. J'ai pas trouve de question alors j'ai pas repondu effectivement.


j'ai mis la question en gras dans le 1er post, c'est clair maintenant ?
 
et tu critiques, tu critiques... des truc qui fonctionnent, bravo (quelle perte de temps mais c'est le tien)
tu preferes t'acharner (troller ???)
tu dis que rien ne fonctionne, que le serveur ne recevra pas les réponses icmp, que le rdp ne fonctionne pas non plus, que les clients VPN ne se connectent pas.
sans jamais proposer comment toi tu ferais...
je te dis que cette conf fonctionne (la conf que j'ai posté, hein, tu comprends ? cf celle du 1er post) : ping, clients VPN et rdp.
accepte le, ma conf fonctionne, elle avait juste besoin d'un petit coup de pouce.
 

Code :
  1. UDP 443  :o


et oui, udp 443, va lire le 1er post au lieu de t'etonner et de troller
 
heureusement que j'ai trouvé une solution sans toi


Message édité par gilles007 le 24-01-2017 à 11:02:17
n°1400186
exmachina
Posté le 29-01-2017 à 16:14:22  profilanswer
 

ça donne quoi au final ?


Aller à :
Ajouter une réponse
 

Sujets relatifs
Problème iptables / firewalldiptables: Drop/Reject IPs
OpenVPN & routeur: Configuration iptables/routing ?Paquets vus par tcpdump mais pas par iptables
[Résolue]Impossible de générer nouvelle cle OpenVpn[RESOLU] OpenVPN AS
iptables quota - règle tjs valide après dépassement de quota (resolu)Openvpn : paramétrage de iptables
Aide avec IPTABLES et OpenVPNOpenvpn / iptables
Plus de sujets relatifs à : iptables et openvpn


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