sexta-feira, 24 de julho de 2015

Instalação de Servidor TFTP em Ambiente CentOS

Introdução

Um servidor TFTP é útil em pelo menos duas situações:
  • Manipulação de arquivos em ativos de rede, como por exemplo, atualização de firmware, backup e restore de configuração;
  • Manter um backup de seus ativos de rede centralizados em um único diretório, que posteriormente vai para a unidade de fita, claro.
A primeira situação é bem comum, mas poucos se preocupam com a segunda situação, então fique com ela na mente, pense sobre isso enquanto toma banho (já resolvi tantos problemas pensando durante o banho),  eu voltarei nesse ponto em outro post.

Ponto de partida

Eu parto do princípio que você já possui um Servidor CentOS 7 Básico.

Instalação dos pacotes

# yum  -y install  tftp-server xinetd

Ativar o serviço

# systemctl enable tftp.socket

Configuração das permissões

# chown -R nobody:nobody /var/lib/tftpboot/
# chmod 777 /var/lib/tftpboot/

Personalização do arquivo de configuração

# vi /etc/xinetd.d/tftp

service tftp
{
        disable
                 = no 
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s -c /var/lib/tftpboot 

        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}


Observação: Sem o parâmetro -c você não será capaz de criar novos arquivos, apenas de atualizar os já existentes.

Iniciar o serviço

# systemctl start xinetd
# netstat -ntulp | grep 69
udp        0      0 0.0.0.0:69                  0.0.0.0:*                               1329/xinetd

Testar a comunicação com o serviço

Cliente TFTP para Linux

De preferência teste o envio a partir de outro servidor para ter certeza que tudo está funcionando.
# yum install -y tftp

# cd /etc/
# tftp -v 192.168.0.181 -c put passwd
Connected to 192.168.0.181 (192.168.0.181), port 69
putting passwd to IP:passwd [netascii]
Sent 28437 bytes in 0.2 seconds [1228778 bit/s]


Observação: 192.168.0.181 é o IP do meu servidor de TFTP, não esqueça de alterar o endereço.

De volta ao servidor de TFTP:
# ls -l /var/lib/tftpboot/
total 28
-rw-rw-rw- 1 nobody nobody 28111 Jul 23 16:41 passwd


De volta ao servidor Cliente:
# cd ~
# tftp -v IP -c get passwd
Connected to 192.168.0.181 (192.168.0.181), port 69
getting from 192.168.0.181:passwd to passwd [netascii]
Received 28437 bytes in 0.0 seconds [82130090 bit/s]

# ls -l passwd
-rw-r--r-- 1 root root 28111 Jul 23 16:50 passwd


Observe que o arquivo tem exatamente o mesmo tamanho.

Cliente TFTP para Windows

Podemos baixar um cliente linha de comando para Windows em TFTP Client for Windows

Download de um arquivo do TFTP Server
C:\>tftp.exe -i IP GET nome_arquivo_remoto nome_arquivo_local

Upload de um arquivo para o TFTP Server:
C:\>tftp.exe -i IP PUT nome_arquivo_local nome_arquivo_remoto

Download do arquivo passwd
C:\>tftp.exe -i 192.168.0.181 GET passwd passwd.txt
WinAgents TFTP Client version 2.0b Copyright (c) 2004-2011 by Tandem Systems, Ltd.
http://www.winagents.com - Software for network administrators

Transfering file passwd from server in octet mode...
Transferring data from 192.168.0.181...
Using blocksize = 512
Using TFTP timeout = 10s
Transfer size = 28111 bytes
File passwd was transferred successfully.
28111 bytes transfered for 1 seconds, 0 bytes/second

Referências

www.question-defense.com
Knowledge Addict
Fórum CentOS.org
Tournas Dimitrios
TFTP Server for Windows

Nenhum comentário: