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 instalar o tema Paper GTK no Linux

Como instalar o tema Paper GTK no Linux

Instale o tema Paper GTK a partir de repositórios Linux compatíveis, habilite-o para aplicativos GTK no GNOME Tweaks e veja o que o tema legado pode e não pode alterar.

Como instalar e configurar o SABnzbd no Linux

Como instalar e configurar o SABnzbd no Linux

Instale o SABnzbd no Ubuntu ou Debian, ou execute-o em um contêiner Docker em outro host Linux. Em seguida, abra a interface web e configure seu provedor e as pastas de download.

Como gravar a saída de áudio dos alto-falantes no Linux com o Audacity

Como gravar a saída de áudio dos alto-falantes no Linux com o Audacity

Capture o áudio da área de trabalho Linux no Audacity direcionando o fluxo de gravação para a fonte de monitor do seu dispositivo de saída. Siga os passos do PulseAudio e do PipeWire, dicas de exportação e correções para faixas silenciosas.

Como usar o Dropbox no Linux: Instale e sincronize seus arquivos

Como usar o Dropbox no Linux: Instale e sincronize seus arquivos

Instale o Dropbox no Linux a partir do pacote oficial, faça login, sincronize uma pasta local, gerencie a sincronização seletiva e verifique o status pela linha de comando.

Como instalar o Inkscape no Linux: Ubuntu, Fedora, Arch e outras distribuições

Como instalar o Inkscape no Linux: Ubuntu, Fedora, Arch e outras distribuições

Instale o Inkscape a partir dos repositórios da sua distribuição Linux, do PPA estável do Ubuntu, do Snap ou do Flathub, utilizando os comandos e notas atuais para escolher a origem do pacote.

Como instalar o PulseEffects no Linux com o Easy Effects

Como instalar o PulseEffects no Linux com o Easy Effects

O PulseEffects agora é Easy Effects. Instale o equalizador baseado em PipeWire com apt, DNF, Pacman ou Flatpak, direcione o áudio e salve as configurações.

Como encontrar e remover arquivos duplicados no Linux com o FSlint

Como encontrar e remover arquivos duplicados no Linux com o FSlint

Use o FSlint para analisar pastas selecionadas do Linux, verificar grupos duplicados e excluir arquivos redundantes com segurança, ou aprenda quando a fusão de links físicos é apropriada.

Como instalar e configurar o Plex no OpenMediaVault com o Compose.

Como instalar e configurar o Plex no OpenMediaVault com o Compose.

O antigo plugin OpenMediaVault para Plex foi arquivado. Configure o Plex no OMV 8 com OMV-Extras, o plugin Compose, armazenamento persistente e o contêiner oficial do Plex.

Como encontrar vírus no Linux pela linha de comando

Como encontrar vírus no Linux pela linha de comando

Aprenda como instalar o ClamAV, atualizar suas assinaturas, verificar arquivos e pastas do Linux recursivamente e revisar as detecções sem excluir arquivos automaticamente.

Como limpar e acelerar o Ubuntu com segurança

Como limpar e acelerar o Ubuntu com segurança

Limpe e acelere o Ubuntu com a limpeza segura do APT, verificações de armazenamento e controles de inicialização que ajudam a liberar espaço e solucionar problemas de lentidão na área de trabalho.