{"id":78,"date":"2008-02-02T02:34:00","date_gmt":"2008-02-02T01:34:00","guid":{"rendered":"https:\/\/test.n3oxid.fr\/?p=78"},"modified":"2021-04-18T21:36:23","modified_gmt":"2021-04-18T19:36:23","slug":"gestion-du-ftp-avec-netfilter","status":"publish","type":"post","link":"https:\/\/www.n3oxid.fr\/?p=78","title":{"rendered":"Gestion du FTP avec NetFilter"},"content":{"rendered":"\n<p>Il est s\u00fbrement arriv\u00e9 \u00e0 plus d&#8217;un de vouloir laisser passer un flux FTP sur leur pare-feu NetFilter&nbsp;: Quoi de plus normal ?<\/p>\n\n\n\n<p>Survient alors le fameux \u00e9pisode du module&nbsp;<em>ip_conntrack_ftp<\/em>, voir en prime&nbsp;<em>ip_nat_ftp<\/em>&nbsp;dans le cas d&#8217;une translation d&#8217;adresse. On se renseigne sur la diff\u00e9rence entre active mode et passive mode c\u00f4t\u00e9 FTP, on rajoute quelques lignes dans NetFilter, puis on finit par tester le tout&nbsp;: \u00e7a ne fonctionne pas &#8230; Ou tout du moins qu&#8217;en partie.<\/p>\n\n\n\n<p>On \u00e9pluche les logs et on se rend finalement compte que l&#8217;authentification s&#8217;est correctement effectu\u00e9e, mais que cela bloque d\u00e8s lors qu&#8217;une commande est envoy\u00e9e&nbsp;: Mais pourquoi donc&nbsp;? Vient alors la d\u00e9couverte du module&nbsp;<em>ip_conntrack_ftp<\/em>, la solution \u00e0 tous nos soucis. Un suivi de connexion effectu\u00e9 par iptables rien que pour le FTP&nbsp;: n&#8217;est ce pas merveilleux&nbsp;? On s&#8217;empresse alors de charger ce fameux module :<\/p>\n\n\n\n<p><code># modprobe ip_conntrack_ftp<\/code><\/p>\n\n\n\n<p>Puis on relance notre test afin de s&#8217;assurer que tout fonctionne.<\/p>\n\n\n\n<p>Cependant nous aimerions bien mettre en place une petite translation de destination. Dans ce cas, nous pensons \u00e0 bien charger le module ad\u00e9quat :<\/p>\n\n\n\n<p><code># modprobe ip_nat_ftp<\/code><\/p>\n\n\n\n<p>Il nous vient soudain une id\u00e9e&nbsp;: Pourquoi ne pas changer le port par d\u00e9faut de notre serveur FTP&nbsp;? 45 au lieu de 21, \u00e7a semble pas mal \u00e7a&nbsp;? Sachant qu&#8217;en plus de cela nous avons un autre serveur FTP qui est \u00e0 l&#8217;\u00e9coute sur le port 44.<\/p>\n\n\n\n<p>On se rend finalement compte que cela ne fonctionne plus, de nouveau. En effet il faut indiquer \u00e0 ce cher module ip_conntrack_ftp le(s) port(s) que ce dernier doit g\u00e9rer. Pour ceci, l&#8217;option ports est des plus remarquable :<\/p>\n\n\n\n<p><code># modprobe ip_conntrack_ftp ports=44,45<\/code><\/p>\n\n\n\n<p>Si le module en question \u00e9tait d\u00e9j\u00e0 charg\u00e9, il est bien s\u00fbr n\u00e9cessaire de le d\u00e9charger avant de le charger avec la commande pr\u00e9c\u00e9dente :<\/p>\n\n\n\n<p><code># rmmod ip_conntrack_ftp<\/code><\/p>\n\n\n\n<p>Il peut \u00eatre enfin appr\u00e9ciable de faire en sorte que tout cela se charge au d\u00e9marrage de la machine. Sur une distribution telle que GNU\/Linux Debian Etch, deux fichiers s&#8217;av\u00e8rent n\u00e9cessaires&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Le fichier \/etc\/modules contenant les modules \u00e0 charger, ligne par ligne, tels que ip_conntrack_ftp et ip_nat_ftp<\/li><li>Le fichier \/etc\/modprob.d\/arch\/i386 contenant des aliases et options pour les modules \u00e0 charger. Dans le cas du module ip_conntrack_ftp, il s&#8217;agirait d&#8217;ajouter la ligne suivante&nbsp;: options ip_conntrack_ftp ports=44,45<\/li><\/ul>\n\n\n\n<p>On red\u00e9marre notre machine et voil\u00e0 que tout semble fonctionner du premier coup&nbsp;: Que du bonheur&nbsp;!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il est s\u00fbrement arriv\u00e9 \u00e0 plus d&#8217;un de vouloir laisser passer un flux FTP sur leur pare-feu NetFilter&nbsp;: Quoi de plus normal ? Survient alors le fameux \u00e9pisode du module&nbsp;ip_conntrack_ftp, &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[47,61,48],"class_list":["post-78","post","type-post","status-publish","format-standard","hentry","category-computing","tag-conntrack","tag-ftp","tag-netfilter"],"_links":{"self":[{"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=\/wp\/v2\/posts\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=78"}],"version-history":[{"count":1,"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=\/wp\/v2\/posts\/78\/revisions"}],"predecessor-version":[{"id":79,"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=\/wp\/v2\/posts\/78\/revisions\/79"}],"wp:attachment":[{"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.n3oxid.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}