TFTP ALG
O Trivial File Transfer Protocol (TFTP) ALG processa pacotes TFTP que iniciam a solicitação à porta de destino UDP 69 e abre um portão para permitir o retorno de pacotes da direção inversa à porta que envia a solicitação. O suporte a firewalls stateful e serviços NAT exige que você configure o TFTP ALG para a porta de destino UDP 69.
Use o Feature Explorer para confirmar o suporte de plataforma e versão para recursos específicos.
Analise a seção de comportamento de ALG TFTP específica da plataforma para obter notas relacionadas à sua plataforma.
Entendendo o TFTP ALG
- Visão geral
- Pacotes TFTP
- Sessão de TFTP
- Entendendo a conversa do TFTP ALG
- Entendendo o suporte IPv6 para o TFTP ALG
Visão geral
Trivial File Transfer Protocol (TFTP) é um protocolo simples usado para transferência de arquivos (RFC 1350). O TFTP é implementado em cima do UDP, com a porta de destino 69 como a porta bem conhecida. O TFTP Application Layer Gateway (ALG) processa pacotes TFTP que iniciam a solicitação e cria pinholes para permitir o retorno de pacotes na direção inversa.
No processamento de fluxos existem duas sessões para uma conversa de TFTP, uma é a sessão de controle de TFTP criada por um pacote de solicitação de leitura (RRQ) ou solicitação de gravação (WRQ). a outra é a sessão de dados TFTP criada por um pacote de dados (para RRQ) ou pacote de reconhecimento (ACK) (para WRQ).
Em um firewall Junos OS, a sessão de controle do TFTP é permitida por meio da política de aplicativos junos-tftp. A sessão de dados é permitida através do pinhole aberto TFTP ALG de qualquer porta do servidor até a TID (porta) do cliente quando o pacote de sessão de controle é recebido. Nenhuma tradução de NAT é necessária, porque a tradução de NAT já foi realizada e as informações estão disponíveis na estrutura de dados da sessão.
Pacotes TFTP
Qualquer transferência começa com uma solicitação para ler ou escrever um arquivo. Um pacote de dados com menos de 512 bytes sinaliza o término de uma transferência.
O TFTP oferece suporte a cinco tipos de pacotes:
Leia a solicitação (RRQ)
Solicitação de gravação (WRQ)
Dados (DADOS)
Reconhecimento (ACK)
Erro (ERRO)
Sessão de TFTP
O TFTP ALG é baseado em UDP, que é um protocolo de transporte sem estado. Em um firewall, o TFTP ALG funciona como uma sessão de UDP com tempo limite. Se não houver sessão de atualização de pacotes, a sessão será terminada após o intervalo. Embora o cliente e o servidor do TFTP determinem o término de uma conversa de TFTP, eles às vezes desconhecem a sessão no Fireware. Portanto, o cliente e o servidor poderiam solicitar uma nova conversa de TFTP neste cenário.
A sessão de ALG do TFTP pode prosseguir de qualquer uma das seguintes maneiras:
Quando a sessão de controle do TFTP chega ao intervalo, a sessão não é terminada se a sessão de dados ainda estiver viva.
Uma sessão de TFTP pode terminar ou ser corrupta pelos
clear security flow session allcomandos da CLI,clear specific sessionindependentemente de a sessão de dados estar em andamento ou não.Se uma nova solicitação de sessão de TFTP chegar e chegar à sessão existente, o TFTP ALG abrirá o buraco novamente para a nova solicitação.
Se o pinhole já existir, o TFTP ALG não abrirá o pinhole novamente e não haverá nenhuma queda de pacote.
O TFTP ALG não soltará nenhum pacote.
Entendendo a conversa do TFTP ALG
Os servidores TFTP padrão ouvem as solicitações recebidas dos clientes do TFTP na porta 69. Um cliente TFTP escolhe sua porta de identificador de túnel de origem (TID) e envia sua solicitação inicial ao servidor. Em resposta, o servidor usa o TID escolhido como porta de origem e envia uma resposta ao TID do cliente como a porta de destino. As duas portas TIDs são então usadas para o resto da transferência de dados.
Read file conversation steps:
O Host A (cliente) envia um pacote RRQ para hospedar B (servidor) com O TID como fonte e porta 69 como destino.
O Host B (servidor) envia um pacote de DADOS para hospedar A (cliente) com o TID de B como fonte e o TID de A como destino.
O Host A (cliente) envia um pacote ACK para hospedar B (servidor) com O TID como fonte e TID de B como destino.
A conversa de dados e pacotes ACK continua até que a transferência de dados do arquivo esteja concluída.
Write file conversation steps:
O Host A (cliente) envia um pacote WRQ para hospedar B (servidor) com O TID como fonte e porta 69 como destino.
O Host B (servidor) envia um pacote ACK para hospedar A (cliente) com o TID de B como fonte e o TID de A como destino.
O Host A (cliente) envia um pacote de DADOS para hospedar B (servidor) com o TID de A como fonte e o TID de B como destino.
O Host B (servidor) envia um pacote ACK para hospedar A (cliente) com o TID de B como fonte e o TID de A como destino.
Entendendo o suporte IPv6 para o TFTP ALG
O gateway de camada de camada de aplicativo (ALG) Trivial File Transfer Protocol (TFTP) foi aprimorado para oferecer suporte à conversação IPv6 e IPv4 TFTP, que tem endereços IPv6 e IPv4 para o endereço IP de origem e endereço IP de destino.
O TFTP ALG processa pacotes que iniciam a solicitação de roteamento e criam pinholes para permitir o retorno de pacotes da direção inversa à porta que enviou a solicitação.
A sessão de dados é configurada pelo primeiro pacote do cliente para o servidor. O TFTP ALG monitora o primeiro pacote e abre um buraco de pinhole de qualquer porta no servidor para o cliente. Esse processo ajuda o retorno de pacotes do servidor e pacotes de dados subsequentes a serem repassados.
Exemplo: Configuração do TFTP ALG
O TFTP ALG processa pacotes TFTP que iniciam a solicitação e abre um portão para permitir o retorno de pacotes da direção inversa à porta que envia a solicitação.
Este exemplo mostra como configurar o TFTP ALG para passar pelo tráfego TFTP com um pool de NAT de origem em dispositivos da Juniper Networks.
Requisitos
Configure o ARP proxy para todos os endereços IP no pool de NAT de origem.
Entenda os conceitos básicos do TFTP ALG. Veja como entender o TFTP ALG.
Visão geral
Neste exemplo, o TFTP ALG está configurado para monitorar e permitir o tráfego TFTP, transferindo arquivos entre o cliente e o servidor localizados em lados opostos de um dispositivo da Juniper Networks.
Configuração
Configuração de um pool de fontes de NAT, conjunto de regras e uma política
Configuração rápida da CLI
Para configurar rapidamente esta seção do exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere quaisquer detalhes necessários para combinar com a configuração da sua rede, copiar e colar os comandos no CLI no nível de hierarquia e, em seguida, entrar no [edit] commit modo de configuração.
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
Se você não tiver certeza do endereço IP do cliente e servidor do TFTP, você pode substituir "da1" e "sa1" por "qualquer".
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para configurar um pool de NAT de origem:
Crie um pool de fontes de NAT.
[edit security] user@host# set nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32
Configure as entradas do livro de endereços da zona de segurança.
[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
Crie um conjunto de regras de origem de 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
Configure uma política
[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
Resultados
A partir do modo de configuração, confirme sua configuração inserindo os show security nat comandos e show security policies os comandos. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[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;
}
Se você terminar de configurar o dispositivo, entre no commit modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificando o grupo de origem e o conjunto de regras do NAT
Propósito
Verifique se o grupo de origem e o conjunto de regras de NAT usados para dar suporte ao TFTP ALG estão funcionando corretamente.
Ação
A partir do modo operacional, entre no show security nat static rule r1 comando.
Verificando o TFTP ALG
Propósito
Verifique se o TFTP ALG está habilitado.
Ação
A partir do modo operacional, entre no show security alg status comando.
user@host> show security alg status DNS : Enabled FTP : Enabled H323 : Enabled TFTP : Enabled
Significado
A saída mostra o status de ALG do TFTP da seguinte forma:
Habilitado — mostra que o TFTP ALG está habilitado.
Desativado — mostra que o TFTP ALG está desativado.
Comportamento do TFTP ALG específico da plataforma
Use o Feature Explorer para confirmar o suporte de plataforma e versão para recursos específicos.
Use a tabela a seguir para revisar comportamentos específicos da plataforma para sua plataforma:
| Plataforma |
Diferença |
|---|---|
| Série SRX |
|