Como configurar um servidor TFTP no Ubuntu Server com tftpd-hpa

Instale o servidor tftpd-hpa e o cliente tftp-hpa do Ubuntu . Essa configuração serve arquivos /srv/tftpe mantém os uploads em um diretório separado. Consulte a lista de pacotes do servidor e do cliente do Ubuntu .

Segurança: O TFTP não possui login nem criptografia. Restrinja o acesso a uma LAN confiável; os clientes acessíveis podem ler os arquivos disponíveis e podem fazer upload onde as permissões permitirem. Não transfira segredos. A especificação do TFTP descreve seus limites de segurança.

Configure o servidor TFTP.

1. Instale o servidor e o cliente.

Atualize os metadados do APT e, em seguida, instale os dois pacotes:

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Terminal do Ubuntu Server mostrando o comando para instalar tftpd-hpa e tftp-hpa.
Instale os pacotes do servidor e do cliente.

2. Configure a raiz TFTP

Edite o arquivo de configuração do pacote:

sudo nano /etc/default/tftpd-hpa

Defina estes valores:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --umask 027"

--secureConfina o daemon à sua raiz configurada, --createpermite uploads e --umask 027limita os novos arquivos de upload ao modo especificado 0640. O manual do tftpd do Ubuntu documenta essas opções. Salve com Ctrl+O, pressione Enter e depois Ctrl+X.

Como o diretório raiz é visível --securepara /srv/tftpo cliente, os nomes dos arquivos são relativos a ele: use `/var/www/tftp` hello.txt, não `/ /srv/tftp/hello.txtvar/www/tfp`. Os clientes TFTP não navegam por diretórios, portanto, mantenha uma lista dos nomes de arquivos publicados e seus respectivos caminhos.

Editor de terminal mostrando o tftpd-hpa configurado com a raiz /srv/tftp, modo seguro, uploads e umask 027.
Limite os arquivos e defina a máscara de upload.

3. Crie o diretório raiz e o diretório de upload.

Mantenha o diretório raiz principal como propriedade do usuário root e conceda permissão de escrita apenas à pasta de upload:

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

O daemon pode ler a raiz, mas somente a tftpconta pode escrever nela /srv/tftp/upload. Evite tornar toda a árvore gravável por todos com permissões como 777.

Os arquivos na raiz pública devem ser considerados legíveis por todos os clientes autorizados. Limite essa árvore a imagens de inicialização, firmware ou outros materiais destinados a essa rede. Para transferências privadas, escolha um protocolo com autenticação e criptografia.

Terminal do Ubuntu criando /srv/tftp/upload com o usuário e grupo tftp e permissão 0750
Somente o subdiretório de upload é gravável.

4. Adicione um arquivo para servir

Crie um arquivo conhecido na raiz. As verificações de leitura padrão do TFTP exigem que os arquivos servidos sejam publicamente legíveis, portanto, defina o modo 0644:

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
O terminal do servidor Ubuntu está escrevendo o arquivo hello.txt em /srv/tftp e definindo as permissões do arquivo para 0644.
Crie um arquivo conhecido para o teste de download.

5. Ative e reinicie o serviço.

Habilite a unidade na inicialização, reinicie-a para aplicar as configurações e verifique seu status:

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

Se a inicialização falhar, verifique o log do serviço com sudo journalctl -u tftpd-hpa -b --no-pager.

Comandos do terminal do Ubuntu Server para habilitar, reiniciar e inspecionar o serviço tftpd-hpa.
Reinicie o serviço após alterar suas configurações.

6. Limitar o acesso ao firewall

Se o UFW estiver ativado, permita a solicitação inicial somente da sua sub-rede de clientes. Substitua a rede de exemplo pelo seu intervalo de LAN confiável:

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

Consulte o guia do UFW do Ubuntu para obter informações sobre as regras de rede de origem. O TFTP inicia na porta UDP 69 e, em seguida, usa uma porta UDP selecionada pelo servidor para os dados do arquivo, conforme descrito na especificação do protocolo . Um firewall, roteador ou dispositivo NAT com restrições rigorosas pode permitir a solicitação, mas bloquear a transferência. Se os clientes atingirem o tempo limite, use o rastreamento de conexão compatível com TFTP ou uma política de firewall apropriada; não abra todas as portas UDP nem exponha o TFTP à internet. Este comando adiciona uma regra; ele não habilita o UFW. Se você administra o servidor via SSH e pretende ativar um firewall inativo, permita o SSH primeiro para preservar o acesso remoto.

O comando UFW permite apenas a porta UDP 69 na sub-rede de exemplo 192.168.1.0/24.
Permitir solicitações iniciais de uma sub-rede confiável.

Teste de downloads e uploads

7. Faça o download a partir de um cliente Ubuntu

No servidor, execute o comando ip -brief addresse anote o endereço LAN acessível. Em um cliente Ubuntu, instale o cliente, se necessário. Substitua o 192.0.2.10endereço abaixo pelo endereço real do servidor:

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

O arquivo é salvo no diretório atual do cliente. O manual do cliente TFTP do Ubuntu documenta binaryisso get. O modo binário é recomendado para firmware, imagens de inicialização e arquivos cujos bytes devem permanecer inalterados. Os nomes de arquivos no Linux diferenciam maiúsculas de minúsculas, portanto, digite cada nome remoto exatamente como está.

Terminal do cliente TFTP conectando-se ao servidor de exemplo e baixando o arquivo hello.txt em modo binário.
Solicite o arquivo conhecido em modo binário.

8. Faça o upload para a pasta restrita.

No cliente, crie um arquivo de teste e envie-o para um caminho dentro do diretório de upload do servidor:

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

Use o endereço real do servidor. O caminho remoto é relativo a /srv/tftp; verifique o upload no servidor com sudo ls -l /srv/tftp/upload/. Os clientes TFTP usam nomes de arquivos conhecidos em vez de navegar por uma lista de diretórios.

Terminal do cliente TFTP enviando upload-check.txt para upload/upload-check.txt em modo binário.
Os arquivos enviados permanecem dentro do subdiretório gravável.

Solucionar problemas de erros comuns

  • Arquivo não encontrado: Verifique o nome do arquivo em relação ao diretório /srv/tftpe confirme se ele existe.
  • Violação de acesso: torne os arquivos servidos publicamente legíveis; para uploads, verifique a tftppropriedade do destino e confirme --createse está configurada corretamente.
  • Tempo limite: Confirme se o cliente está usando um endereço acessível do servidor, se o serviço está ativo e se o firewall permite o fluxo de dados UDP negociado.

Para isolar um problema de rede, teste primeiro a partir de um cliente na mesma LAN. Se isso funcionar, mas um cliente roteado apresentar um tempo limite, verifique se o roteador ou firewall está configurado para lidar com TFTP na porta de dados negociada.

Para um serviço somente leitura, remova --create-o TFTP_OPTIONSe reinicie-o tftpd-hpa.

Deixar um comentário

Como recuperar partições perdidas e dados do disco rígido com segurança

Como recuperar partições perdidas e dados do disco rígido com segurança

Aprenda como recuperar partições e arquivos perdidos com o TestDisk e o PhotoRec. Proteja a unidade de origem, faça a verificação com segurança e salve os dados recuperados em outro disco.

Como ler códigos QR em um computador Linux

Como ler códigos QR em um computador Linux

Escaneie códigos QR no Linux com o CoBang usando uma webcam ou um arquivo de imagem. Veja as opções de instalação, etapas de configuração e correções para acesso à câmera via Flatpak.

Como alterar as configurações da webcam no Linux com o Cameractrls

Como alterar as configurações da webcam no Linux com o Cameractrls

Altere as configurações da webcam no Linux com o Cameractrls: ajuste a exposição, a cor, a redução de cintilação e outros controles compatíveis e, em seguida, verifique os modos de vídeo compatíveis.

Como instalar o PhpStorm no Linux: Toolbox, Tar.gz, Snap e AUR

Como instalar o PhpStorm no Linux: Toolbox, Tar.gz, Snap e AUR

Instale o PhpStorm no Linux com o JetBrains Toolbox ou o arquivo tar.gz independente, além das opções Snap e Arch AUR. O Java já está incluído.

Como configurar dois painéis no XFCE 4

Como configurar dois painéis no XFCE 4

Crie um painel XFCE 4 separado para cada tela, atribua o segundo painel à saída correta, posicione-o e dimensione-o e adicione os atalhos e itens de status necessários.

Como instalar o Cisco Packet Tracer no Linux

Como instalar o Cisco Packet Tracer no Linux

Baixe o Cisco Packet Tracer 9.0.1 para Ubuntu 64 bits, instale o pacote DEB com o APT, aceite a licença no Terminal e faça login para iniciar um laboratório.

Como recortar uma imagem no Linux com o GIMP

Como recortar uma imagem no Linux com o GIMP

Remova o fundo de uma foto no Linux com o GIMP: trace o contorno do objeto, exclua o fundo selecionado, mantenha a transparência e exporte um PNG reutilizável.

Como fazer backup de um CD-ROM como um arquivo ISO no Linux

Como fazer backup de um CD-ROM como um arquivo ISO no Linux

Crie uma imagem ISO de CD-ROM no Linux com o GNOME Disks ou o comando dd. Identifique a unidade óptica, monitore a cópia, verifique a imagem e saiba quando um disco danificado ou de áudio precisa de outra ferramenta.

Baixe o FlightGear gratuitamente: Guia de Instalação Oficial

Baixe o FlightGear gratuitamente: Guia de Instalação Oficial

Baixe o FlightGear gratuitamente no site oficial. Compare os pacotes para Windows, macOS e Linux, instale os arquivos de dados e inicie seu primeiro voo.

Aplicativo Google Tasks para desktop: como usá-lo no computador

Aplicativo Google Tasks para desktop: como usá-lo no computador

Abra o Google Tasks em um navegador, adicione um atalho do Chrome ou inicie o aplicativo automaticamente e gerencie suas tarefas agendadas pelo Agenda e pelo Gmail.