{"id":71,"date":"2008-09-03T09:35:40","date_gmt":"2008-09-03T07:35:40","guid":{"rendered":"http:\/\/wp1.fredptitgars.net\/index.php\/2008\/09\/03\/nat-et-ftp\/"},"modified":"2008-09-03T09:35:40","modified_gmt":"2008-09-03T07:35:40","slug":"nat-et-ftp","status":"publish","type":"post","link":"https:\/\/fredptitgars.ovh\/?p=71","title":{"rendered":"NAT et FTP"},"content":{"rendered":"<p>La probl\u00e9matique peut se poser soit du c\u00f4t\u00e9 client, soit du c\u00f4t\u00e9 serveur.<\/p>\n<h2>Probl\u00e9matique c\u00f4t\u00e9 client<\/h2>\n<p>Le trafic FTP qui vise \u00e0 n\u00e9gocier les ports de transfert des donn\u00e9es du client vers le serveur est initi\u00e9 par le serveur (port d&rsquo;origine TCP 20) \u00e0 destination d&rsquo;un port TCP sup\u00e9rieur \u00e0 1024 vers le client. Ce mode FTP appel\u00e9 <strong>mode actif<\/strong> est celui qui est support\u00e9 par d\u00e9faut par les serveur FTP <a href=\"http:\/\/www.ietf.org\/rfc\/rfc959.txt\">RFC 959<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-68\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftp_actif-0ef.jpg\" alt=\"ftp_actif.jpg\" align=\"center\" width=\"650\" height=\"220\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftp_actif-0ef.jpg 650w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftp_actif-0ef-300x102.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/p>\n<p>Si le client est prot\u00e9g\u00e9 par un routeur NAT dynamique, ce trafic ne sera pas traduit car il ne fait pas partie d&rsquo;une r\u00e8gle NAT configur\u00e9e pour un trafic initi\u00e9 de l&rsquo;int\u00e9rieur. Alors que l&rsquo;\u00e9tablissement d&rsquo;une connexion de contr\u00f4le FTP sera possible, le transfert de donn\u00e9es ne le sera pas. A moins que de r\u00e9aliser une traduction statique de l&rsquo;adresse locale interne vers l&rsquo;adresse globale interne, il n&rsquo;y a pas de solution NAT.<br \/>\n<br \/>La solution consiste \u00e0 \u00e9tablir une connexion FTP \u00e0 partir du client en <strong>mode passif<\/strong>. Dans ce mode, le client initie la n\u00e9gociation du port que le serveur propose. Vu qu&rsquo;ici le trafic est initi\u00e9 derri\u00e8re le routeur NAT, le NAT en tant que tel ne pose plus de probl\u00e8me. Faut-il encore que le serveur supporte ce mode, ce qui est de plus en plus courant.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-69\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftp_passif-eb0.jpg\" alt=\"ftp_passif.jpg\" align=\"center\" width=\"650\" height=\"220\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftp_passif-eb0.jpg 650w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftp_passif-eb0-300x102.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/p>\n<h2>Probl\u00e9matique c\u00f4t\u00e9 serveur.<\/h2>\n<p>A c\u00f4t\u00e9 du premier probl\u00e8me c\u00f4t\u00e9 client, on peut rencontrer un probl\u00e8me cumulatif c\u00f4t\u00e9 serveur. Il faut supposer que le serveur est h\u00e9berg\u00e9 derri\u00e8re, lui aussi, un routeur NAT configur\u00e9 avec un transfert de ports. Si le client initie lui-m\u00eame le transfert de donn\u00e9es vers des ports sup\u00e9rieurs \u00e0 1024 \u00e0 destination du serveur, comment le routeur NAT du serveur peut-il traduire le trafic entrant \u00e0 destination de ces ports qui ne font pas l&rsquo;objet d&rsquo;une configuration sp\u00e9cifique ?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-70\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftpserveur-9ed.jpg\" alt=\"ftpserveur.jpg\" align=\"center\" width=\"325\" height=\"194\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftpserveur-9ed.jpg 325w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2008\/09\/ftpserveur-9ed-300x179.jpg 300w\" sizes=\"auto, (max-width: 325px) 100vw, 325px\" \/><\/p>\n<p>Heureusement les passerelles sont aujourd&rsquo;hui capable de suivre le trafic FTP qui n\u00e9cessite une inspection du trafic FTP lui-m\u00eame au niveau de la couche applicative.<\/p>\n<p>Sur les passerelles Linux, il faudra par exemple activer et configurer les modules ip_conntrack_ftp et ip_nat_ftp du noyau. Si un routeur Cisco avec un IOS r\u00e9cent supportera cette fonctionnalit\u00e9 nativement pour le trafic initi\u00e9 sur le port TCP 21, il n&rsquo;en sera pas de m\u00eame pour les services FTP \u00e9coutant sur un autre port que le port l\u00e9gal. Ce dernier cas n\u00e9cessitera une configuration sp\u00e9cifique \u00e0 suivre dans <a href=\"http:\/\/www.cisco.com\/en\/US\/tech\/tk648\/tk361\/technologies_tech_note09186a0080094e76.shtml\">Using Non-Standard FTP Port Numbers with NAT<\/a>. On ira voir \u00e9galemnt le document suivant : FTP Zope derri\u00e8re une router Cisco [How-To].<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La probl\u00e9matique peut se poser soit du c\u00f4t\u00e9 client, soit du c\u00f4t\u00e9 serveur. Probl\u00e9matique c\u00f4t\u00e9 client Le trafic FTP qui vise \u00e0 n\u00e9gocier les ports de transfert des donn\u00e9es du client vers le serveur est initi\u00e9 par le serveur (port d&rsquo;origine TCP 20) \u00e0 destination d&rsquo;un port TCP sup\u00e9rieur \u00e0 1024 vers le client. Ce [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":68,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-71","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cisco"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=71"}],"version-history":[{"count":0,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/media\/68"}],"wp:attachment":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}