O TFTP (Trivial File Transfer Protocol) foi descrito pela primeira vez em 1980. É um protocolo bastante antigo publicado em junho de 1981 como TFTP Protocol revision 2 na RFC 783 (Request For Comments) por Karen R. Sollins.
Nos primeiros dias, o principal objetivo do TFTP era enviar e receber arquivos em uma rede. Em particular, ele foi usado para transferir os arquivos necessários durante a inicialização para permitir que os sistemas inicializassem em uma rede.
Veja como você pode configurar um servidor TFTP em uma máquina Linux.
O que é TFTP?
O TFTP ainda é usado para fins de transferência de arquivos e não há alterações fundamentais nos recursos que ele suporta. O TFTP é usado para baixar e enviar arquivos por UDP/IP. Ele não possui funções adicionais, como controle de identidade e autorização, listagem de arquivos, exclusão ou renomeação, que geralmente são encontradas em outros protocolos de transferência de arquivos.
Ao contrário dos protocolos avançados de transferência de arquivos que usam TCP na camada de transmissão, ele funciona no protocolo UDP e não possui recursos como verificar se os pacotes pertencentes ao arquivo estão indo ou não para o outro lado. Devido a essa limitação, é mais adequado para uso em redes locais do que na Internet ou em redes de longa distância.
Apesar de todos esses recursos aparentemente negativos listados acima, um aspecto do protocolo TFTP que é muito forte é sua simplicidade. A implementação do protocolo é bastante fácil em comparação com suas alternativas, mesmo para ambientes que não possuem um sistema operacional neles. Devido a esta característica, possui uma ampla área de utilização em sistemas embarcados.
Instalando um servidor TFTP no Linux
Ao trabalhar com dispositivos incorporados, é importante ter o serviço de servidor TFTP instalado. Em sistemas Linux, várias implementações de servidor TFTP podem ser executadas. Se você estiver usando um Distribuição baseada em Debian, você pode instalar o tftpd-hpa, tftpd, ou atftpd pacotes. Se você não tiver certeza de qual escolher, considere instalar o pacote tftpd-hpa.
sudo apt-pegue instalar tftpd-hpa
Após a instalação, o serviço TFTP começará a ouvir no a porta UDP 69. Para servir os arquivos para outros sistemas através do servidor TFTP, você precisa ter em mente alguns pré-requisitos:
- Copiando o arquivo necessário para o diretório inicial do TFTP ou um diretório abaixo desse diretório inicial
- Tornando as permissões de arquivo visíveis ao público
Para descobrir qual é o diretório inicial do servidor TFTP, você pode consultar o TFTP_DIRECTORY variável no /etc/default/tftpd-hpa Arquivo. Normalmente, você verá diretórios como /var/lib/tftpboot ou /srv/tftp. Se desejar, você pode alterar esse diretório e reiniciar o serviço.
gato /etc/predefinição/tftpd-hpa
Para facilitar o uso, se você alterar o proprietário do diretório inicial TFTP relevante para sua conta de usuário, não precisará adicionar o prefixo sudo a todos os comandos executados. Use o comando chown para alterar a propriedade de root para o usuário atual:
sudo chown -R $USER /srv/tftp
Os nomes dos pacotes do servidor TFTP e os diretórios iniciais padrão podem diferir dependendo da distribuição Linux usada.
Enviando arquivos com o servidor TFTP
Às vezes, há situações em que o TFTP é a única opção para mover um arquivo do seu sistema Linux embarcado ao ambiente externo. Por exemplo, às vezes o sistema pode não suportar nenhuma mídia gravável com a qual você possa transferir o arquivo.
Nesses casos, como o cliente TFTP provavelmente será compilado em caixa ocupada, você pode enviar um arquivo salvo no sistema para um servidor TFTP em uma rede.
Para usar o aplicativo cliente TFTP, emita o caixa ocupada tftp comando:
caixa ocupada tftp
Para enviar um arquivo de amostra para o servidor TFTP, você precisa usar um comando como este:
caixa ocupadatftp-euexemplo.bin-p 192.168.1.100
Embora o comando acima esteja correto, você receberá um erro ao transferir o arquivo para seu servidor TFTP. Como a mensagem de erro retornada não é autoexplicativa, é difícil entender qual é o problema real.
O problema aqui é devido a alguns procedimentos de segurança no servidor TFTP. O TFTP requer que um arquivo com o mesmo nome esteja no diretório onde o arquivo será gravado como pré-requisito para um upload de arquivo e que o acesso de gravação para este arquivo deve estar disponível para todos.
Em outras palavras, não é possível fazer upload de um arquivo que não existe no servidor TFTP via clientes TFTP. Se você criar um arquivo vazio com o mesmo nome e editar seus direitos de acesso, o processo de upload acima será bem-sucedido. Para isso, você deve executar os seguintes comandos no diretório inicial do servidor TFTP relevante:
cd /srv/tftp
toqueexemplo.bin
chmod 666 exemplo.bin
Agora você pode realizar seu upload com sucesso.
Também é possível desabilitar a medida de segurança acima e fazer com que o servidor TFTP crie um arquivo que não existe. Para isso, você pode usar o -c ou --crio parâmetro ao iniciar o tftpd-hpa inscrição. É suficiente adicionar este parâmetro ao existente TFTPD_OPTIONS variável no /etc/default/tftpd-hpa Arquivo:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--seguro --criar"
Por que usar um servidor TFTP para transferência de arquivos?
A vantagem mais importante do TFTP é que ele é rápido e ajuda você a economizar tempo. É uma opção ideal para transferir arquivos de configuração de dispositivos de rede para outros sistemas. Além disso, possui critérios de uso muito simples. Funciona confortavelmente com software em sistemas operacionais baseados em Windows e Linux. Finalmente, o TFTP está sempre lá para salvar o dia em situações em que você não pode tecnicamente usar o FTP.
A maior desvantagem é, claro, que não é seguro. Portanto, você deve ter muito cuidado ao transferir arquivos usando um servidor TFTP.
Além das transferências de arquivos, você não pode executar funções como exclusão, edição e modificação de arquivos usando um servidor TFTP. Esse recurso é uma grande desvantagem para quem usa ou busca sistemas avançados. Finalmente, ele não requer autenticação, o que é uma grande desvantagem se você levar a sério sua segurança.
Configurando o TFTP em outros sistemas operacionais
Se você for usar o TFTP no Windows, não precisará instalar nenhum software de terceiros. Você pode habilitar o TFTP com a opção Ativar ou desativar recursos do Windows no painel de controle.