TFTP ALG
L’ALG TFTP (Trivial File Transfer Protocol) traite les paquets TFTP qui initient la requête vers le port de destination UDP 69 et ouvre une porte pour permettre aux paquets de retour dans le sens inverse vers le port qui envoie la requête. La prise en charge du pare-feu dynamique et des services NAT nécessite que vous configuriez l’ALG TFTP pour le port de destination UDP 69.
Utilisez l’explorateur de fonctionnalités pour confirmer la prise en charge de fonctionnalités spécifiques par la plate-forme et la version.
Consultez la section Comportement ALG TFTP spécifique à la plate-forme pour obtenir des remarques relatives à votre plate-forme.
Comprendre l’ALG TFTP
- Aperçu
- Paquets TFTP
- TFTP Session
- Comprendre la conversation TFTP ALG
- Comprendre la prise en charge IPv6 de TFTP ALG
Aperçu
Le protocole TFTP (Trivial File Transfer Protocol) est un protocole simple utilisé pour le transfert de fichiers (RFC 1350). TFTP est implémenté sur UDP, avec le port de destination 69 comme port bien connu. La passerelle de couche applicative (ALG) TFTP traite les paquets TFTP à l’origine de la requête et crée des trous d’épingle pour autoriser le retour des paquets dans le sens inverse.
Dans le traitement de flux, il y a deux sessions pour une conversation TFTP, l’une est la session de contrôle TFTP créée par un paquet de demande de lecture (RRQ) ou de demande d’écriture (WRQ) ; l’autre est la session de données TFTP créée par un paquet DATA (pour RRQ) ou un paquet d’accusé de réception (ACK) (pour WRQ).
Dans un pare-feu Junos OS, la session de contrôle TFTP est autorisée par le biais de la stratégie d’application junos-tftp. La session de données est autorisée par le biais du trou d’épingle ouvert TFTP ALG de n’importe quel port du serveur vers le TID (port) du client lors de la réception du paquet de session de contrôle. Aucune traduction NAT n’est nécessaire, car la traduction NAT a déjà été effectuée et les informations sont disponibles à partir de la structure de données de session.
Paquets TFTP
Tout transfert commence par une demande de lecture ou d’écriture d’un fichier. Un paquet de données de moins de 512 octets signale la fin d’un transfert.
TFTP prend en charge cinq types de paquets :
Demande de lecture (RRQ)
Demande d’écriture (WRQ)
Données (DONNÉES)
Accusé de réception (ACK)
Erreur (ERROR)
TFTP Session
L’ALG TFTP est basé sur UDP, qui est un protocole de transport sans état. Dans un pare-feu, l’ALG TFTP agit comme une session UDP avec un délai d’expiration. S’il n’y a pas de session d’actualisation des paquets, la session est arrêtée après un délai d’expiration. Bien que le client et le serveur TFTP déterminent la fin d’une conversation TFTP, ils ne sont parfois pas au courant de la session dans Fireware. Par conséquent, le client et le serveur peuvent demander une nouvelle conversation TFTP dans ce scénario.
La session TFTP ALG peut se dérouler de l’une des manières suivantes :
Lorsque la session de contrôle TFTP atteint son expiration, la session n’est pas terminée si la session de données est toujours active.
Une session TFTP peut se terminer ou être endommagée par les commandes ou
clear security flow session all
de l’interface de ligneclear specific session
de commande, que la session de données soit en cours ou non.Si une nouvelle demande de session TFTP arrive et atteint la session existante, l’ALG TFTP rouvrira le sténopé pour la nouvelle demande.
Si le sténopé existe déjà, l’ALG TFTP ne l’ouvrira plus et il n’y aura pas d’abandon de paquet.
L’ALG TFTP n’abandonnera aucun paquet.
Comprendre la conversation TFTP ALG
Par défaut, les serveurs TFTP écoutent les demandes entrantes des clients TFTP sur le port 69. Un client TFTP choisit son port d’identifiant de tunnel source (TID) et envoie sa requête initiale au serveur. En réponse, le serveur utilise le TID choisi comme port source et envoie une réponse au TID du client comme port de destination. Les deux ports TIDs sont ensuite utilisés pour le reste du transfert de données.
Read file conversation steps:
L’hôte A (client) envoie un paquet RRQ à l’hôte B (serveur) avec le TID de A comme source et le port 69 comme destination.
L’hôte B (serveur) envoie un paquet DATA à l’hôte A (client) avec le TID de B comme source et le TID de A comme destination.
L’hôte A (client) envoie un paquet ACK à l’hôte B (serveur) avec le TID de A comme source et le TID de B comme destination.
La conversation sur les paquets DATA et ACK se poursuit jusqu’à ce que le transfert des données de fichier soit terminé.
Write file conversation steps:
L’hôte A (client) envoie un paquet WRQ à l’hôte B (serveur) avec le TID de A comme source et le port 69 comme destination.
L’hôte B (serveur) envoie un paquet ACK à l’hôte A (client) avec le TID de B comme source et le TID de A comme destination.
L’hôte A (client) envoie un paquet DATA à l’hôte B (serveur) avec le TID de A comme source et le TID de B comme destination.
L’hôte B (serveur) envoie un paquet ACK à l’hôte A (client) avec le TID de B comme source et le TID de A comme destination.
Comprendre la prise en charge IPv6 de TFTP ALG
La passerelle de couche applicative (ALG) du protocole TFTP (Trivial File Transfer Protocol) a été améliorée pour prendre en charge les conversations TFTP IPv6 et IPv4, avec des adresses IPv6 et IPv4 pour l’adresse IP source et l’adresse IP de destination.
TFTP ALG traite les paquets qui initient la demande de routage et créent des trous d’épingle pour permettre le retour des paquets dans le sens inverse vers le port qui a envoyé la requête.
La session de données est établie par le premier paquet du client au serveur. TFTP ALG surveille le premier paquet et ouvre un sténopé de n’importe quel port du serveur au client. Ce processus facilite le passage des paquets de retour du serveur et des paquets de données suivants.
Exemple : Configuration de l’ALG TFTP
L’ALG TFTP traite les paquets TFTP à l’origine de la requête et ouvre une porte pour permettre aux paquets de renvoyer les paquets dans le sens inverse vers le port qui envoie la requête.
Cet exemple montre comment configurer l’ALG TFTP pour qu’il transmette le trafic TFTP avec un pool NAT source sur les équipements Juniper Networks.
Exigences
Configurez l’ARP du proxy pour toutes les adresses IP du pool NAT source.
Comprendre les concepts de base de TFTP ALG. Reportez-vous à la section Présentation de l’ALG TFTP.
Aperçu
Dans cet exemple, l’ALG TFTP est configuré pour surveiller et autoriser le trafic TFTP, en transférant des fichiers entre le client et le serveur situés de part et d’autre d’un équipement Juniper Networks.
Configuration
Configuration d’un pool de sources NAT, d’un ensemble de règles et d’une stratégie
Configuration rapide de la CLI
Pour configurer rapidement cette section de l’exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à la configuration de votre réseau, copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie, puis passez commit
en mode de configuration.
set security nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32 set security zones security-zone green address-book address sa1 1.1.1.0/24 set security zones security-zone red address-book address da1 2.2.2.0/24 set security nat source rule-set rs1 from zone green set security nat source rule-set rs1 to zone red set security nat source rule-set rs1 rule r1 match source-address 1.1.1.0/24 set security nat source rule-set rs1 rule r1 match destination-address 2.2.2.0/24 set security nat source rule-set rs1 rule r1 then source-nat pool pool1
set security policy from-zone green to-zone red policy pol1 match destination-address da1 set security policy from-zone green to-zone red policy pol1 match source-address sa1 set security policy from-zone green to-zone red policy pol1 match application junos-tftp set security policy from-zone green to-zone red policy pol1 then permit
Si vous n’êtes pas sûr de l’adresse IP du client et du serveur TFTP, vous pouvez remplacer « da1 » et « sa1 » par « any ».
Procédure étape par étape
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour obtenir des instructions sur cette procédure, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de l’interface de ligne de commande.
Pour configurer un pool NAT source :
Créez un pool source NAT.
[edit security] user@host# set nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32
Configurez les entrées du carnet d’adresses des zones de sécurité.
[edit security zones security-zone] user@host# set green address-book address sa1 1.1.1.0/24 user@host# set red address-book address da1 2.2.2.0/24
Créez un ensemble de règles de source NAT.
[edit security nat source rule-set rs1] user@host# set from zone green user@host# set to zone red user@host# set rule r1 match source-address 1.1.1.0/24 user@host# set rule r1 match destination-address 2.2.2.0/24 user@host# set rule r1 then source-nat pool pool1
Configurer une stratégie
[edit security policies from-zone green to-zone red policy pol1] user@host# set match source-address sa1 user@host# set match destination-address da1 user@host# set match application junos-tftp user@host# set then permit
Résultats
En mode configuration, confirmez votre configuration en entrant les show security nat
commandes and show security policies
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
[edit] user@host# show security nat source { pool pool1 { address { 10.10.10.1/32 to 10.10.10.10/32; } } rule-set rs1 { from zone green; to zone red; rule r1 { match { source-address 1.1.1.0/24; destination-address 2.2.2.0/24; } then { source-nat { pool { pool1; } } } } }
[edit] user@host# show security policies from-zone green to-zone red {policy pol1 { policy pol1 { match { source-address sa1; destination-address da1; application [junos-tftp]; } then { permit; } } } default-policy { permit-all; }
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification du pool de sources NAT et de l’ensemble de règles
But
Vérifiez que le pool source NAT et l’ensemble de règles utilisés pour prendre en charge l’ALG TFTP fonctionnent correctement.
Action
À partir du mode opérationnel, entrez la show security nat static rule r1
commande.
Vérification de TFTP ALG
But
Vérifiez que l’ALG TFTP est activé.
Action
À partir du mode opérationnel, entrez la show security alg status
commande.
user@host> show security alg status DNS : Enabled FTP : Enabled H323 : Enabled TFTP : Enabled
Signification
La sortie indique l’état TFTP ALG comme suit :
Enabled (Activé) : indique que l’ALG TFTP est activé.
Disabled (Désactivé) : indique que l’ALG TFTP est désactivé.
Comportement de l’ALG TFTP spécifique à la plate-forme
Utilisez l’explorateur de fonctionnalités pour confirmer la prise en charge de fonctionnalités spécifiques par la plate-forme et la version.
Utilisez le tableau suivant pour passer en revue les comportements spécifiques à votre plateforme :
Plateforme |
Différence |
---|---|
SRX Series |
|