Iptables, serveur FTP et mode passif

Iptables, serveur FTP et mode passif - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 07-12-2006 à 19:48:14    

Bonjour
 
J'essaye de configurer mes iptables pour ne laisser passer que le stricte nécessaire, mais avec un serveur FTP ce n'est pas évident!
J'utilise pureFtpd que j'ai configuré pour utiliser les ports 50000:50100.
Voici la configuration que je suis sensé faire d'après ce que j'ai pu lire sur le net :

iptables -A INPUT -i eth0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED  -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 1024: --dport 50000:50100 -m state --state ESTABLISHED,RELATED -j ACCEPT


Problème : si je n'ajoute pas l'état NEW aux ports passifs je n'arrive pas à me connecter au serveur dans ce mode (impossible de récupérer la liste des répertoires).
A votre avis d'où vient le problème, c'est plutôt le serveur pureftpd ou je suis vraiment obligé d'activer les nouvelles connexions sur ces ports?
 
D'autre part que me conseillez-vous de faire pour tester la sécurité de mon serveur depuis l'extérieur?
Merci :hello:

Reply

Marsh Posté le 07-12-2006 à 19:48:14   

Reply

Marsh Posté le 07-12-2006 à 20:12:13    

parce que tu n'as pas chargé les modules adéquats concernant le suivit de connection pour le FTP.
Personnellement, ce que je fais, c'est :
charger les modules pour le suivit de connections (FTP)
autoriser les ESTABLISHED et RELATED en INPUT pour tout
autoriser les NEW sur le port 21 en INPUT
autoriser les ESTABLISHED en sortit

 

et ca me suffit, ca ouvre les ports a la volée

 


Message édité par l0ky le 07-12-2006 à 20:12:47
Reply

Marsh Posté le 11-12-2006 à 14:16:48    

J'ai pourtant chargé le module conntrack pour le suivi de connexion et sans le NEW il m'est impossible d'accéder aux ports FTP passif :??:

Reply

Marsh Posté le 07-02-2007 à 01:18:26    

Bonjour!
J'ai exactement le meme probleme que toi !
J'ai choisi comme plage de ports 60000 - 60100
J'utilise vsftp
 
et voici la configuration du firewall que j'utilise

modprobe ip_conntrack_ftp
 
iptables -A INPUT -i $INTERNET -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $INTERNET -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i $INTERNET -p tcp --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $INTERNET -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
 
iptables -A INPUT -i $INTERNET -p tcp --sport 1024: --dport 60000:60100 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $INTERNET -p tcp --sport 60000:60100 --dport 1024: -m state --state ESTABLISHED -j ACCEPT


J'ai regardé avec Tcpdump pour essayer de comprendre un peu ce qu'il se passe et j'ai comparé a ce qu'il se passe lorsque je me connecte a mon ftp via le reseau local (tout est autorise niveau firewalling entre le reseau local et le serveur ftp) : on voit bien que le client commence a "communiquer" via le port 21, puis ensuite, il passe sur un port de la plage des port passif sans probleme.
J'ai donc demander a des college d'essayer de se connecter a mon serveur via internet et j'ai remarqué qu'ils communiquent bien via le port 21, mais apparement jamais ils passent sur un port de la plage des port passifs.
 
Quelqu'un pourrait donc nous expliquer ce qu'il se passe et où est l'erreur que nous avons commis ?
 
Merci !

Reply

Marsh Posté le 08-02-2007 à 15:10:59    

Personne n'a la réponse ? snif :(
En plus je suis quasi sûr que c'est un truc tout bête mais je n'arrive pas a voir quoi.
J'ai cherché sur plein de forum, partout, tout le monde semble avoir configuré de la meme facon que moi, sauf que chez moi ca veut pas marcher!
 
Je précise par avance au cas ou quelqu'un le supposerai : le firewall du modem qui est connecté au pc laisse bien passer les connections sur les ports necessaires. (j'ai meme fait un test en desactivant totalement le firewall du modem pour etre sûr que ca ne vient pas de là), et tout les ports sur le modem sont redirigé sur le pc.
J'ai déja un serveur web et un serveur svn qui fonctionne correctement il n'y a que ce [:aless] ftp passif qui veut pas fonctionner !
 
J'espere que quelqu'un pourra me répondre :)

Reply

Marsh Posté le 08-02-2007 à 15:18:03    

Par définition, si tu empeche une connection NEW de se faire, elle se fera jamais [:k-nar]


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 08-02-2007 à 15:51:44    

ouais faut du conntrack pour le FTP.
 
http://www.kalamazoolinux.org/pres [...] track.html
description sympa en fin de page.

Reply

Marsh Posté le 08-02-2007 à 16:00:19    

puis j'ai rien compris, c'est quoi le réseau, c'est serveur ou client (parce que je crois pas que le conntrack soit très utile pour le serveur...), etc..


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 08-02-2007 à 16:04:49    

si, ca évite d'ouvrir des ports dans tous les sens si le firewall est situé sur le serveur (chose pas vraiment terrible d'ailleurs).

Reply

Marsh Posté le 09-02-2007 à 18:57:05    

farib a écrit :

Par définition, si tu empeche une connection NEW de se faire, elle se fera jamais [:k-nar]


Hum, j'ai pas tout a fait compris, je ne vois pas où j'empeche une connexion NEW de se faire, puisque j'accepte bien les NEW sur le port 21 (qui est la 1ere connexion a s'etablir, les autres sont censés etre RELATED) donc a ce niveau la je n'ai pas l'impression d'avoir empeché la connexion NEW de se faire, a moins que je me soit trompé ailleur, a ce moment la je veux bien que tu m'expliques :)
 
Pour le reste, voici le resultat d'un lsmod :  

ip_conntrack_ftp       70576  0
ipt_MASQUERADE          2560  1
iptable_mangle          2048  0
iptable_nat            17452  2 ipt_MASQUERADE
ipt_state               1536  8
ip_conntrack           24968  4 ip_conntrack_ftp,ipt_MASQUERADE,iptable_nat,ipt_state
iptable_filter          2048  1
ip_tables              13440  5 ipt_MASQUERADE,iptable_mangle,iptable_nat,ipt_state,iptable_filter
ipv6                  184288  21
parport_pc             19392  1
lp                      8236  0
parport                29640  2 parport_pc,lp
autofs4                10624  0
sunrpc                101064  1
8139too                17792  0
mii                     3584  1 8139too
floppy                 47440  0
sg                     27552  0
microcode               4768  0
sd_mod                 16384  0
scsi_mod               91344  2 sg,sd_mod
ntfs                   81516  0
dm_mod                 33184  0
uhci_hcd               23708  0
ext3                  102376  2
jbd                    40216  1 ext3


Vous pouvez donc voir que j'ai bien le module ip_conntrack_ftp ainsi que ip_conntrack, de ce fait de ce coté là il ne devrait pas y avoir de probleme.
 
Voici le resultat d'un iptables -nL

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21 state NEW,RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20 state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpts:60000:60100 state RELATED,ESTABLISHED
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:21 state ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:20 state ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spts:60000:60100 state ESTABLISHED


(je n'ai laissé que les lignes relatives au ftp)
Si vous voyez donc ce qui ne va pas dans ma configuration, je vous écoute ! :)
 
Taz, j'ai bien regardé ton lien, et j'ai fait plusieurs test d'apres ce que j'ai lu, mais aucun concluant, de plus j'ai l'impression que l'auteur s'est trompé, en effet il ecrit des trucs du style :  

iptables -A INPUT     -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT  
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT


alors que moi j'aurai ecrit --dport là où lui il a mit --sport et inversement (dailleur, j'ai remarqué que ailleur ils font pareil que moi, donc je pense que c'est l'auteur de la page qui s'est trompé).
 
Je dois avouer que apres avoir passé 2 demi-journée a essayer de faire fonctionner dans tout les sens et ne toujours pas avoir reussi, je suis limite a me demander si le probleme de vient pas d'aillleur... (en reseau local je n'ai aucun pb a acceder au ftp).
 
Merci quand meme de vos réponses, et si vous avez d'autre conseils ou remarque a me faire n'hésitez pas, ils sont les bienvenus ! :)

Reply

Marsh Posté le 09-02-2007 à 18:57:05   

Reply

Marsh Posté le 09-01-2013 à 15:19:09    

Up, sujet intéressant.


Message édité par jenson75 le 10-01-2013 à 19:28:43
Reply

Marsh Posté le 09-01-2013 à 23:09:34    

;)


Message édité par jenson75 le 10-01-2013 à 19:28:01
Reply

Marsh Posté le 17-02-2013 à 17:20:39    

essaie ceci:
 
export IPT='sudo /sbin/iptables'
 
$IPT  -A INPUT -m state --state NEW,RELATED -p tcp ! --tcp-flags ALL SYN -j DROP
$IPT  -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# ftp + active ftp + pasv ftp
$IPT -A OUTPUT -p tcp --dport 80 -m state --state ESTABLISHED,NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 21 -m state --state ESTABLISHED,NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 50000:60000 -m state --state RELATED,ESTABLISHED -j ACCEPT
 

Reply

Marsh Posté le 03-09-2013 à 12:30:05    

XK a écrit :

Bonjour
 
J'essaye de configurer mes iptables pour ne laisser passer que le stricte nécessaire, mais avec un serveur FTP ce n'est pas évident!
J'utilise pureFtpd que j'ai configuré pour utiliser les ports 50000:50100.
Voici la configuration que je suis sensé faire d'après ce que j'ai pu lire sur le net :

iptables -A INPUT -i eth0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED  -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 1024: --dport 50000:50100 -m state --state ESTABLISHED,RELATED -j ACCEPT


Problème : si je n'ajoute pas l'état NEW aux ports passifs je n'arrive pas à me connecter au serveur dans ce mode (impossible de récupérer la liste des répertoires).
A votre avis d'où vient le problème, c'est plutôt le serveur pureftpd ou je suis vraiment obligé d'activer les nouvelles connexions sur ces ports?
 
D'autre part que me conseillez-vous de faire pour tester la sécurité de mon serveur depuis l'extérieur?
Merci :hello:


 
# modprobe ip_conntrack
# modprobe ip_conntrack_ftp
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d ipduserver --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s ipduserver --sport 21 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d ipduserver --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s ipduserver --sport 1024:65535 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s ipduserver --sport 20 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d ipduserver --dport 20 -m state --state ESTABLISHED -j ACCEPT


Message édité par rootshell le 03-09-2013 à 12:31:13

---------------
Roulez vite et facilement avec le vélo électrique http://www.produitsbiologique.fr/25-velos-electriques
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed