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

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

  iptables + conntrack_ftp + mode passif : connexions sortantes ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

iptables + conntrack_ftp + mode passif : connexions sortantes ?

n°725735
petoulachi
A fortiori, brigadier chef
Posté le 06-09-2005 à 10:51:45  profilanswer
 

Bonjour à tous,
 
Je suis en train de faire un script iptables pour une station. Cette station est destinée à être placée chez des clients, et elle doit être particulièrement blindée (un vrai trou noir :D). Elle ne doit pas avoir le rôle de passerelle, simplement un client. Elle héberge un serveur FTP ainsi qu'un serveur ssh.  
Elle devra également être capable d'être client FTP (passif ou actif) et DNS. Pas de HTTP en vue.
Je dois contrôler absolument tous les flux, que cela soit en entrée ou en sortie.
 
Pour l'instant, j'obtiens ce script :

Code :
  1. ###  INITIALISATION
  2. /sbin/modprobe ip_conntrack_ftp
  3. ##  RAZ des regles
  4. ##  comportement par défaut : DROP sur tout
  5. iptables -F
  6. iptables -X
  7. iptables -P INPUT DROP
  8. iptables -P FORWARD DROP
  9. iptables -P OUTPUT DROP
  10. ## loopback autorisé pour tout
  11. iptables -A INPUT -i lo -j ACCEPT
  12. iptables -A OUTPUT -o lo -j ACCEPT
  13. ###  REGLES D'EXCEPTIONS
  14. ## -------------     Client DNS
  15. iptables -A INPUT -p udp -m state -d 192.168.1.202 -i eth0 --state RELATED,ESTABLISHED -j ACCEPT --sport 53 --dport 1024:
  16. iptables -A OUTPUT -p udp -m state -s 192.168.1.202 -o eth0  --state ! INVALID -j ACCEPT --sport 1024: --dport 53
  17. ## -------------     PING
  18. iptables -A INPUT -p icmp --icmp-type echo-reply -d 192.168.1.202 -i eth0 -j ACCEPT
  19. iptables -A OUTPUT -p icmp --icmp-type echo-request -s 192.168.1.202 -o eth0 -j ACCEPT
  20. #     -> autorise la station a pinger
  21. ## ------------      Serveur SSH
  22. iptables -A INPUT -p tcp -m state -m tcp -s 192.168.1.0/24 -d 192.168.1.202 -i eth0 --state NEW,ESTABLISHED -j ACCEPT --dport 22
  23. iptables -A OUTPUT -p tcp -m state -m tcp -s 192.168.1.202 -d 192.168.1.0/24 -o eth0 --state ESTABLISHED -j ACCEPT --sport 22
  24. ## ------------      serveur FTP pour le LAN seulement (passif sur le range 41000-41020)
  25. iptables -A INPUT -p tcp -m state -m tcp -s 192.168.1.0/24 -d 192.168.1.202 -i eth0 --state NEW,ESTABLISHED -j ACCEPT --dport 21
  26. iptables -A OUTPUT -p tcp -m state -m tcp -s 192.168.1.202 -d 192.168.1.0/24 -o eth0 --state ESTABLISHED -j ACCEPT --sport 21
  27. iptables -A INPUT -p tcp -m state -m tcp -s 192.168.1.0/24 -d 192.168.1.202 -i eth0 --state RELATED,ESTABLISHED -j ACCEPT --dport 41000:41020
  28. iptables -A OUTPUT -p tcp -m state -m tcp -s 192.168.1.202 -d 192.168.1.0/24 -o eth0 --state ESTABLISHED -j ACCEPT --sport 41000:41020
  29. ## ------------      Client FTP
  30. iptables -A INPUT -p tcp -m state -m tcp -d 192.168.1.202 -i eth0 --state ESTABLISHED -j ACCEPT --sport 21
  31. iptables -A OUTPUT -p tcp -m state -m tcp -s 192.168.1.202 -o eth0 --state NEW,ESTABLISHED -j ACCEPT --dport 21
  32. iptables -A OUTPUT -p tcp -m state -m tcp -s 192.168.1.202 -o eth0 --state RELATED,ESTABLISHED -j ACCEPT
  33. iptables -A INPUT -p tcp -m state -m tcp -d 192.168.1.202 -i eth0 --state ESTABLISHED -j ACCEPT


 
Ce qui ne me plait pas vraiment ce sont les dernières lignes en gras. En effet, à cause d'elles je ne contrôle plus vraiment mes sorties (et entrées) puisque j'accepte tout ce qui est déjà établis, et ce n'est pas le but.
 
Je pensais qu'avec le module conntrack_ftp, j'aurai la possibilité de n'autoriser, en entrée et sortie, que les flux de type FTP établis. Je suis persuadé qu'il est possible de le faire, mais je n'arrive pas à trouver comment ?
 
Merci de votre aide précieuse :jap:

mood
Publicité
Posté le 06-09-2005 à 10:51:45  profilanswer
 

n°725890
petoulachi
A fortiori, brigadier chef
Posté le 06-09-2005 à 15:49:08  profilanswer
 

Et bien voila la solution existe bien :)
 
Il faut pour cela se servir du module helper : mon script devient donc :

Code :
  1. iptables -A INPUT -p tcp -m state -m tcp -d $3 -i eth0 --state ESTABLISHED -j ACCEPT --sport 21
  2. iptables -A OUTPUT -p tcp -m state -s $3 -o eth0 --state NEW,ESTABLISHED -j ACCEPT --dport 21
  3. iptables -A OUTPUT -p tcp -m state -m tcp -m helper --helper ftp-21 -s $3 -o eth0 --state RELATED,ESTABLISHED -j ACCEPT
  4. iptables -A INPUT -p tcp -m state -m tcp -m helper --helper ftp-21 -d $3 -i eth0 --state ESTABLISHED -j ACCEPT


 
Ainsi je n'autorise bien en sortie et en entrée que les flux dont les connexions sont déjà établies et dont le protocole est FTP.
 
A noter, il est nécessaire de spécifier le port utilisé par le port de commande du serveur FTP distant (ici 21, celui par défaut) au module helper ftp (--helper ftp-portnumber).
Ainsi, si dans le futur je dois aussi aller sur un serveur FTP distant qui écoute sur le port 2100 par exemple, il faudra ajouter les règles en conséquence.
 
En espérant que cela soit utile, car après pas mal de recherche je n'ai rien trouvé de tel sur ce forum :)

n°725901
Nis+
Posté le 06-09-2005 à 16:15:36  profilanswer
 

Oui ca peut etre utile ;)
(flag pour plus tard)

n°735605
tuxbleu
renie ses origines
Posté le 29-09-2005 à 11:51:07  profilanswer
 

utile, oui. Merci

n°735898
tuxbleu
renie ses origines
Posté le 30-09-2005 à 08:48:20  profilanswer
 

J'ai un petit souci avec cette partie du script : (passif du serveur FTP)
 

# iptables -A INPUT -p tcp -m state -m tcp -s 192.168.1.0/24 -d 192.168.1.202 -i eth0 --state RELATED,ESTABLISHED -j ACCEPT --dport 41000:41020
# iptables -A OUTPUT -p tcp -m state -m tcp -s 192.168.1.202 -d 192.168.1.0/24 -o eth0 --state ESTABLISHED -j ACCEPT --sport 41000:41020


 
Kan je me connecte, j'arrive a me connecter, mais ca ne liste pas :(
Il manquerais pas un NEW ou un REALTED kelque part ?


Message édité par tuxbleu le 30-09-2005 à 08:48:43
n°735908
tuxbleu
renie ses origines
Posté le 30-09-2005 à 09:16:44  profilanswer
 

Je viens de regarder mes logs iptables, apparement il bloque une sortie depuis le port 20 de mon serveur ftp.
Pourtant je suis en passif, mais bon, je vais ouvrir

n°735910
l0ky
Posté le 30-09-2005 à 09:21:05  profilanswer
 

tutut tu vas ouvrir rien, et regarder si tu as loader les modules qui vont bien pour le suivit de connexions FTP :o
 
ip_conntrack_ftp
ipt_conntrack
ip_conntrack  
ip_nat_ftp si tu as besoin de faire du nat dans le coin


Message édité par l0ky le 30-09-2005 à 09:27:28
n°735913
tuxbleu
renie ses origines
Posté le 30-09-2005 à 09:32:31  profilanswer
 

/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
 
:( comment j'ai pu oublier ip_conntrack_ftp :??:
 
Il servent à quoi les 2 suivant ? ipt_contrack et ip_conntrack ?

n°735922
tuxbleu
renie ses origines
Posté le 30-09-2005 à 09:49:05  profilanswer
 

mais m*rde, ca marche toujours po :(

n°735926
tuxbleu
renie ses origines
Posté le 30-09-2005 à 10:05:39  profilanswer
 

bon, pour vous faire rire :
J'en avais marre de naviguer dans les logs, qui sont truffés de [Logs accept], j'ai une idée brillante, qui est de commenter les lignes ou je log les packets acceptés, Comme ca, j'ai plus plus que les logs_drop.
Brillant...non, j'ai plus accès à mon serveur. (suis sur un site distant).
Plus de ssh, ftp...
Humm, les l'idée était bonne en théorie...

mood
Publicité
Posté le 30-09-2005 à 10:05:39  profilanswer
 

n°737655
petoulachi
A fortiori, brigadier chef
Posté le 05-10-2005 à 10:43:57  profilanswer
 

Ha c'est la boulette :D

n°737813
tuxbleu
renie ses origines
Posté le 05-10-2005 à 19:44:27  profilanswer
 

petoulachi a écrit :

Ha c'est la boulette :D


 
Oui  [:volta]  
Bon, c'est réparé maintenant  [:dao]

n°753741
ssc37
Posté le 18-11-2005 à 23:49:02  profilanswer
 

Juste pour dire merci à l'auteur de cette aide concernant les flux ftp et iptables  :jap:  
Très très utile!!!  :jap:


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

  iptables + conntrack_ftp + mode passif : connexions sortantes ?

 

Sujets relatifs
gestion de mode d'impression sous LinuxCherche scripts php pour configurer les iptables
un script iptables spécial serveur.[iptables?] Plusieurs passerelles
[iptables] Rediriger certaines ip du port 80 vers ailleursiptables et dns...
[Debian] Où mettre mon script iptables ?Iptables et log
Ati 8.16.20 => Cannot find any valid modeCouper les connexions réseaux "ESTABLISHED"
Plus de sujets relatifs à : iptables + conntrack_ftp + mode passif : connexions sortantes ?


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