problemas de configuração do TFTP

3

Não consigo fazer com que o TFTP funcione corretamente no meu sistema. Eu configurei /etc/default/tftpd-hpa para /srv/tftp/ , que eu defini para as permissões 777 , como todo o conteúdo também (e /srv/ também), no entanto, sempre que eu faço get test , recebo um tempo limite (e eu m conectado no meu localhost para 127.0.0.1). Eu não acho que o TFTP registra em algum lugar, não é? Qualquer ajuda sobre como depurar isso seria muito apreciada!

EDIT # 1

Isto está em um sistema (K) Ubuntu e /srv e seu conteúdo pertenceu a root:root , eu mudei isso agora para nobody:nogroup mas eu ainda recebo o mesmo tempo limite:

$ ls -la
total 12
drwxrwxrwx 3 nobody nogroup 4096 Nov  5 08:47 .
drwxrwxrwx 3 nobody nogroup 4096 Nov  5  2013 ..
drwxrwxrwx 2 nobody nogroup 4096 Nov  5  2013 artifacts
-rwxrwxrwx 1 nobody nogroup    0 Nov  5 08:48 test
-rw-r--r-- 1 reg    reg        0 Nov  5 08:47 vx.bin
reg@ubuntu:/srv/tftp$tftp 127.0.0.1
tftp> get test
Transfer timed out.

EDIT # 2

Depois de perceber que aparentemente não há nenhuma instância de tftp em execução, tentei lançá-lo com #tftp e o Ubuntu me disse que eu deveria fazer apt-get install cobbler para instalar o cobbler, foi o que eu fiz e Eu tentei de novo e recebi o seguinte:

# tftpd
Traceback (most recent call last):
  File "/usr/sbin/tftpd", line 51, in <module>
    import tornado.ioloop as ioloop
ImportError: No module named tornado.ioloop
root@ubuntu:/srv# 

O que isso significa, estou me perguntando, alguma pista?

    
por cerr 06.11.2013 / 01:35

4 respostas

2

Acabei seguindo este guia que explica que openbsd-inetd deve ser instalado também e eu também tive que definir RUN_DAEMON="yes" no meu arquivo de configuração tftp em /etc/default/tftpd-hpa .

UPDATE # 1

O link acima não funcionou mais, então encontrei uma alternativa aqui, intitulada: Rodando o TFTP Server no Ubuntu 12.04 LTS (Preciso) UPDATE .

    
por 06.11.2013 / 18:20
2

Eu tive que lidar com isso eu mesmo algumas vezes recentemente e estas são as perguntas que eu me perguntei para tirar sarro:

  • o tftpd é executado a partir do xinetd ou como um daemon independente?
  • você precisa alterar /etc/hosts.allow ou hosts.deny
  • está habilitado para o SELinux (verifique com o comando "getenforce")?
  • há um firewall host em execução? (status do serviço iptables)
  • você tem certeza do diretório que o tftpd está usando como diretório de dados?
  • o arquivo que você está tentando "obter" realmente existe?

Minha aposta é em uma combinação das opções acima. Como firewall e SELinux e localização do diretório de dados.

Você não quer que / srv seja aberto com os modos 0777. E você não precisa fazer isso com o diretório de dados tftp. Você só precisa dos arquivos legíveis pelo mundo. A menos que você esteja colocando arquivos no servidor. Nesse caso, você deve criar os arquivos antes e torná-los graváveis enquanto você os escreve.

Boa sorte!

    
por 06.11.2013 / 01:51
1

Acabei de ter este problema no Debian Jessie: "Tempo de transferência esgotado".

Em /etc/default/tftpd-hpa , há uma linha para o endereço: TFTP_ADDRESS="0.0.0.0:69" .

Substitua-o pelo endereço completo do servidor. Por exemplo:

TFTP_ADDRESS="192.168.99.10:69"

E reinicie o daemon. Isso parece ter resolvido isso para mim.

Esta variável no Debian configura a opção --address para o daemon. Talvez seja necessário configurá-lo de maneira diferente em uma distribuição diferente, mas no final você verá o endereço ao fazer ps x :

# ps x | grep tftp
3988 ?        Ss     0:00 /usr/sbin/in.tftpd --listen --user tftp --address 192.168.99.10:69 --secure /docs/tftp-pxe

Parece um bug no servidor ou no cliente.

    
por 16.07.2015 / 18:02
0

Se este for o CentOS / Fedora, você pode habilitar mensagens verbosas a partir do TFTP. No arquivo de configuração /etc/xinetd.d/tftp , altere a variável server_args para esta:

server_args = -v -v -l /var/log/tftpd

Certifique-se de reiniciar o servidor. Você pode adicionar mais opções -v para ser mais detalhado.

    
por 06.11.2013 / 01:57