FTP ALG
Le protocole de transfert de fichiers est une méthode d’échange de fichiers largement utilisée sur les réseaux IP. Le FTP ALG surveille les ports, les pasV et les commandes 227. Il s’NAT sur l’IP, le port ou dans le message et l’ouverture de la porte sur l’équipement si nécessaire.
Présentation des ALG FTP
Le protocole FTP (File Transfer Protocol) est une méthode d’échange de fichiers largement utilisée sur les réseaux IP. En plus de la connexion de contrôle principal, les connexions de données sont également prises en compte pour tout transfert de données entre le client et le serveur ; l’hôte, le port et la direction sont négociés via le canal de contrôle.
Pour le mode actif FTP, le service de pare-feu dynamique Junos OS analyse les données d’application client à serveur pour la commande PORT, qui fournit l’adresse IP et le numéro de port auquel le serveur se connecte. Pour le protocole FTP en mode passif, le service de pare-feu à états Junos OS analyse les données d’application client à serveur pour la commande PASV, puis analyse les réponses serveur à client pour la réponse à 227, qui contient l’adresse IP et le numéro de port auquel le client se connecte.
LE FTP représente les adresses et les numéros de port dans ASCII. Ainsi, lors de la réécriture des adresses et des ports, le numéro de séquence TCP peut être modifié. Par la suite, le service NAT doit conserver ce delta dans les numéros SEQ et ACK en performant des NAT de séquence sur tous les paquets suivants.
La ALG FTP prend en charge les mesures suivantes:
Alloue automatiquement les ports de données et les autorisations de pare-feu pour une connexion dynamique des données
Surveille la connexion de contrôle en modes actif et passif
Réécrit les paquets de contrôle à l’NAT et aux ports appropriés
traduction des adresses réseau, traduction des protocoles (NAT-PT)
couche transport TLS (Security Security) en tant que mécanisme de sécurité
ALG FTP IPv6 pour le routage
Les requêtes PORT/PASV et les 200/227 réponses correspondantes dans FTP sont utilisées pour annoncer le port TCP, que l’hôte écoute pour la connexion des données FTP.
Les commandes EPRT/EPSV/229 sont utilisées pour ces requêtes et réponses. FTP ALG prend déjà en charge EPRT/EPSV/229, mais uniquement pour les adresses IPv4.
Dans Junos OS version 10.4, les commandes EPRT/EPSV/229 ont été mises à jour pour prendre en charge à la fois les adresses IPv4 et IPv6.
FTP ALG utilise une objcache pré-allouée pour stocker ses cookies de session. Lorsque les adresses IPv4 et IPv6 sont toutes deux prise en charge sur FTP ALG, la structure de cookies de session va augmenter de 256 bits (32 octets) pour stocker l’adresse IPv6.
Prise en charge des ALG FTP pour IPv6
La ALG FTP surveille les commandes et les réponses sur le canal de contrôle FTP pour obtenir un niveau de correction syntactique et ouvre des trous d’épingle correspondants afin de permettre d’établir les connexions des canaux de données. Dans Junos OS version 10.4, FTP ALG n’a pris en charge que le routage IPv4, le routage IPv6 et NAT mode autonome. Dans Junos OS version 11.2 et ultérieures, ftP ALG prend également en charge les modes NAT et NAT-PT..
Compréhension des commandes FTP
La ALG FTP surveille les commandes et les réponses sur le canal de contrôle FTP pour obtenir un niveau de correction syntactique et ouvre des trous d’épingle correspondants afin de permettre d’établir les connexions des canaux de données. Dans Junos OS version 10.4, FTP ALG n’a pris en charge que le routage et NAT IPv4, et le mode de routage IPv6 uniquement. Dans Junos OS version 11.2 et ultérieures, ftP ALG prend également en charge les modes NAT et NAT-PT.
Commande DE PORT
La commande PORT est utilisée en mode FTP actif. La commande PORT spécifie l’adresse et le numéro de port auquel un serveur doit se connecter. Lorsque vous utilisez cette commande, l’argument est la concatenation d’une adresse hôte Internet 32 bits et d’une adresse de port TCP de 16 bits. Les informations d’adresse sont décomposées en champs de 8 bits et la valeur de chaque champ est transmise comme un nombre décimal (dans la représentation de chaîne de caractères). Les champs sont séparés par des virgules.
Il s’agit d’un exemple de commande de PORT, où le h1 est l’adresse hôte 8 bits la plus élevée:
PORT h1,h2,h3, h4, p1,p2
Commande PASV
La commande PASV demande à un serveur d’écouter un port de données qui n’est pas le port de données par défaut du serveur et d’attendre une connexion plutôt que d’en lancer une autre. La réponse à la commande PASV inclut l’adresse hôte et l’adresse de port sur l’écoute du serveur.
Commandes FTP étendues
Les commandes FTP étendues fournissent une méthode par laquelle FTP peut communiquer les informations de point de terminaison de connexion de données pour des protocoles réseau autres que IPv4. Les commandes FTP étendues sont spécifiées dans le RFC 2428. Dans le RFC 2428, les commandes FTP étendues EPRT et EPSV remplacent respectivement les commandes FTP PORT et PASV.
Commande EPRT
La commande EPRT permet de spécificationr une adresse étendue pour la connexion de données. L’adresse étendue doit se composer du protocole réseau, ainsi que des adresses réseau et de transport.
Au format EPRT:
EPRT<space><d><net-prt><d><net-addr><d><tcp-port><tcp>
Paramètre |
Description |
---|---|
net-prt |
Un numéro de famille d’adresse défini par IANA. |
net-addr |
Une chaîne d’adresse réseau spécifique au protocole. |
port tcp |
Un numéro de port TCP sur lequel l’hôte écoute la connexion de données. |
Délimiteur |
Le caractère de la plage 33 à 126 inclusivement doit être l’un des caractères ASCII. Le caractère « | » (ASCII 124) est recommandé. |
La commande suivante indique comment spécifier le serveur à utiliser une adresse IPv4 pour ouvrir une connexion de données à l’hôte 132.235.1.2 sur le port TCP 6275:
|1|132.235.1.2|6275|
La commande suivante indique comment spécifier le serveur à utiliser un protocole réseau IPv6 et une adresse réseau pour ouvrir une connexion de données TCP sur le port 5282:
EPRT |2|1080::8:800:200C:417 A|5282|
Dans ce mode, ftP ALG se concentre uniquement sur la commande EPRT ; il extrait l’adresse et le port IPv6 de la commande EPRT et ouvre le trou d’épingle.
Mode EPSV
La commande EPSV demande à un serveur d’écouter un port de données et d’attendre une connexion. La réponse à cette commande inclut uniquement le numéro de port TCP de la connexion d’écoute.
Une chaîne de réponse par exemple est la suivante:
Entering Extended Passive Mode (|||6446|)
Le code de réponse pour la saisie en mode passif à l’aide d’une adresse étendue doit être 229. Extrayez le port TCP dans 229 charges utiles et utilisez-le pour ouvrir le trou d’épingle.
Exemple: Configuration des ALG FTP
Cet exemple montre comment configurer le NAT-PT pour FTP ALG.
Exigences
Avant de commencer:
Configurez le proxy ARP pour toutes les adresses IP du pool NAT source.
Comprendre les concepts des ALG pour FTP. Voir la présentation des ALG FTP.
Aperçu
Dans cet exemple, la ALG pour FTP est configurée pour surveiller et permettre l’échange du trafic FTP entre les clients et le serveur situé de part et d’autre d’Juniper Networks périphérique.
Cet exemple montre comment configurer le NAT-PT pour FTP ALG.
Configuration
- Configuration d’NAT source source, d NAT pool statique et de ensemble de règles
- Configuration de l’extension de sécurité des ALG FTP
Configuration d’NAT source source, d NAT pool statique et de ensemble de règles
CLI configuration rapide
Pour configurer rapidement cette section de l’exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les interruptions de ligne, modifiez tous les détails nécessaires pour correspondre à votre configuration réseau, copiez-les et collez les commandes dans le CLI [edit]
au niveau de la hiérarchie, commit
puis entrez en mode de configuration.
set security nat static rule-set rs1 from zone untrust set security nat source rule-set rs-source to zone trust set security nat source rule-set rs-source rule src-nat match source-address 3333::130/128 set security nat source rule-set rs-source rule src-nat match destination-address 40.0.0.211/32 set security nat source rule-set rs-source rule src-nat then source-nat interface set security nat static rule-set rs2 from zone untrust set security nat static rule-set rs2 rule r2 match destination-address 4444::141/128 set security nat static rule-set rs2 rule r2 then static-nat prefix 40.0.0.211/32
Procédure étape par étape
L’exemple suivant vous oblige à naviguer dans différents niveaux de la hiérarchie de configuration. Pour obtenir des instructions sur la manière de vous y rendre, consultez le manuel Using the CLI Editor in Configuration Mode dans le CLI User Guide.
Pour configurer un pool de NAT source:
Créez une règle de NAT source, statique NAT et d NAT’interface.
[edit ] user@host# set security nat source rule-set rs-source from zone untrust user@host# set security nat source rule-set rs-source to zone trust user@host# set security nat source rule-set rs-source rule src-nat match source-address 3333::130/128 user@host# set security nat source rule-set rs-source rule src-nat match destination-address 40.0.0.211/32 user@host# set security nat source rule-set rs-source rule src-nat then source-nat interface user@host# set security nat static rule-set rs2 from zone untrust user@host# set security nat static rule-set rs2 rule r2 match destination-address 4444::141/128 user@host# set security nat static rule-set rs2 rule r2 then static-nat prefix 40.0.0.211/32
Associer l’NAT-PT en utilisant une stratégie.
[edit] user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match source-address any user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match destination-address any user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match application junos-ftp user@host# set security policies from-zone trust to-zone untrust policy ftp-basic then permit
Résultats
À partir du mode de configuration, confirmez votre configuration en entrant la show security nat
commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration dans cet exemple pour la corriger.
user@host# show security nat static { rule-set rs2 { from zone untrust; rule r2 { match { destination-address 4444::141/128; } then { static-nat { prefix { 40.0.0.211/32 } } } } } }
[edit] user@host# show security policies from-zone untrust to-zone trust { policy ftp-basic { match { source-address any; destination-address any; application [ junos-ping junos-mgcp junos-ftp junos-rsh junos-h323 ]; } then { permit; } } } default-policy { permit-all; }
Si vous avez terminé la configuration de l’équipement, saisissez-le commit
en mode de configuration.
Vérification
Pour vérifier que la configuration fonctionne correctement, exécutez les tâches suivantes:
- Vérification de la NAT source de données, ensemble NAT règle de pool statique
- Vérification des ALG FTP
Vérification de la NAT source de données, ensemble NAT règle de pool statique
But
Vérifiez que le pool NAT source et les règles utilisés pour prendre en charge les ALG FTP fonctionnent correctement.
Action
À partir du mode opérationnel, saisissez la show configuration security nat
commande.
Vérification des ALG FTP
But
Vérifiez que les ALG FTP sont activés.
Action
À partir du mode opérationnel, saisissez la show security alg status
commande.
user@host> show security alg status FTP : Enabled
Sens
Le résultat indique le statut des ALG FTP comme suit:
Activé: affiche la ALG FTP activée.
Désactivé: indique que la ALG FTP est désactivée.
La ALG FTP est activée par défaut.