Um artigo simples, mas que mostra como configurar o TFTP server no Linux e no Windows, além de demonstrar estas utilidades para o gerenciamento de roteadores Cisco.
Título: Configurando TFTP server em Linux e Windows
Público-alvo: Iniciantes
Objetivos:
• TFTP server no Linux
• TFTP server no Windows
• Utilizando o serviço TFTP para armazenar o Cisco IOS e arquivos de configuração
Neste artigo mostraremos a utilidade do protocolo TFTP.
TFTP
TFTP significa "Trivial File Transfer Protocol", e é um dos protocolos mais antigos ainda em operação. O objetivo deste artigo não é descrever o TFTP por completo, e sim mostrar-lhes de forma clara e objetiva os benefícios de um TFTP server. Se você nunca usou um TFTP server, o fará logo após o término deste artigo :-)
O TFTP possui os seguintes benefícios:
• Administração simplificada dos dispositivos da rede: O TFTP server poderá armazenar dados úteis, entre eles o Cisco IOS dos roteadores, arquivos de configuração (startup/running-config), assim como qualquer outro tipo de arquivo. Sendo assim, atualizar a configuração de roteadores ou fazer o upgrade de múltiplas máquinas fica muito mais fácil.
• Backup centralizado: Uma vez que todas as imagens IOS e arquivos de configuração poderão ser copiadas para um servidor TFTP, efetuar o backup disto tudo será uma tarefa das mais simples.
• Não exige autenticação: Lembre-se... FTP e TFTP são protocolos completamente diferentes e, no caso do TFTP, não é necessário informar username/password para que a conexão com o server seja possível. Isto diminui bastante a complexidade, e não será necessário a intervenção do administrador da rede, ou do próprio roteador, quando copiando arquivos para o TFTP server.
Instalando e configurando o servidor TFTP no Linux
Como o objetivo deste artigo é sermos 100% práticos, iremos direto ao assunto! Você precisará de um TFTP server (lógico!). Recomendamos o In.TFTPD (baixe-o aqui), já que as nossas estações Linux são todas Red Hat. A instalação, assim como tudo *RPM*, é muito fácil:
rpm -ivh tftp-server-0.32-4.i386.rpm ou rpm -Uvh tftp-server-0.32-4.i386.rpm, caso você esteja fazendo o upgrade.
Após a instalação, devemos configurar o seguinte arquivo:
[root@portal-srv xinetd.d]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer
# protocol. The tftp protocol is often used to boot diskless
# workstations, download configuration files to network-aware printers,
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
Em seguida...
[root@portal-srv xinetd.d]# /etc/rc.d/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@portal-srv xinetd.d]#
Isto fará com que o TFTP server seja iniciado pelo xinetd.
Utilizando o TFTP server no Linux
Bem mais fácil do que a instalação, é a própria utilização do serviço. Verique a existência do diretório /tftpboot em sua distribuição Linux. Antes que você possa jogar arquivos para este diretório (via tftp), torna-se necessário criar o arquivo (touch) e conceder as permissões necessárias para que 'terceiros' possam escrever o arquivo. Isto é característico do TFTP, e segue a lei deste protocolo. No Windows isto não é necessário, conforme mostraremos mais adiante. Para o nosso exemplo, copiaremos a startup-config do Router-C para o TFTP server. Vamos lá?
No Linux:
[ciscostudent@portal-srv tftpboot]# touch router-c-confg
[ciscostudent@portal-srv tftpboot]# chmod 666 router-c-confg
Faremos ainda no Linux a verificação do arquivo router-c-confg. Ele deverá ser "0" byte.
[root@portal-srv tftpboot]# ls -l
total 68708
-rw-rw-rw- 1 root root 0 Aug 11 05:55 router-c-confg
drwxr-xr-x 3 root root 4096 Jul 6 03:24 X86PC
No Cisco, jogaremos a startup-config para o TFTP server, nomeando-a para "router-c-confg":
Router-C#ping 192.168.168.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.168.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 ms
Router-C#
Router-C#copy startup-config tftp
Address or name of remote host []? 192.168.168.1
Destination filename [router-c-confg]?
!!
1672 bytes copied in 0.248 secs (6742 bytes/sec)
Router-C#
Voltando para a máquina Linux, confirmaremos se o arquivo foi modificado:
-rw-rw-rw- 1 root root 1672 Aug 11 05:59 router-c-confg
Sim, tudo está em perfeita ordem. Mas... NÃO se esqueça de configurar o seu firewall para impedir acessos desejados para o seu TFTP server. As políticas de segurança deverão ser observadas, após a inserção de qualquer componente na rede, e isto implica TUDO (inclusive o TFTP). Considere a possibilidade do hosts.deny e hosts.allow.
Agora faremos um outro exemplo: backup do IOS do roteador para o TFTP server.
No Linux:
[root@portal-srv tftpboot]# touch c2500-ik8os-l.122-13a.bin
[root@portal-srv tftpboot]# chmod 666 c2500-ik8os-l.122-13a.bin
No Cisco:
Router-C#show flash
System flash directory:
File Length Name/status
1 14526220 c2500-ik8os-l.122-13a.bin
[14526284 bytes used, 2250932 available, 16777216 total]
16384K bytes of processor board System flash (Read ONLY)
Router-C#dir
Directory of flash:/
1 -rw- 14526220 c2500-ik8os-l.122-13a.bin
16777216 bytes total (2250932 bytes free)
Router-C#copy flash tftp
Source filename []? c2500-ik8os-l.122-13a.bin
Address or name of remote host []? 192.168.168.1
Destination filename [c2500-ik8os-l.122-13a.bin]?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14526220 bytes copied in 189.304 secs (76735 bytes/sec)
Router-C#
Mais um exemplo: O roteador poderá bootar uma imagem IOS via TFTP. Isto é particularmente interessante em situações onde você deseja informar ao roteador uma alternativa à imagem IOS localizada no flash. Caso a imagem localizada no flash torne-se corrompida ou seja removida acidentalmente, o roteador será capaz de utilizar a imagem localizada no TFTP server.
Router-C#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router-C(config)#boot system flash c2500-ik8os-l.122-13a.bin
Router-C(config)#boot system tftp c2500-ik8os-l.122-13a.bin 192.168.168.1
Router-C(config)#end
Caso você esteja enfrentando alguma dificuldade, certifique-se de que a porta do TFTP está em Listening (use o netstat -a), ou se o processo está ativo (ps -ax, pstree, top...).
Instalando e configurando o servidor TFTP no Windows
Não espere encontrar um passo-a-passo para a instalação de um aplicativo Windows! Afinal, tudo não passa de um "next, next, finish" :-) . Recomendamos a seguinte ferramenta FREE para Windows:
• SolarWinds TFTP Server: Obviamente, temos inúmeras opções FREE para Windows, mas pretendemos demonstrar somente uma aqui neste artigo. Este TFTP server é absurdamente simples.
Após a instalação deste TFTP server (sim.. "next --> next --> Finish"), recomendo que você visite a opção "File --> Configure" do aplicativo, e informe os seguintes parâmetros:
• TFTP Root Directory: Diretório raiz do TFTP server, equivalente ao "/tftpboot" do Linux.
• Security: O padrão deste TFTP server é somente "receive only". Caso você queira enviar e receber arquivos, marque a opção "Transmit and Receive files".
• Advanced Security: Aqui você poderá informar quais hosts/redes poderão acessar o seu TFTP server.
• Auto-close e log: Parâmetros opcionais, porém úteis.
Isto fará com que você tenha o seu TFTP server rodando em sua máquina Windows. Utilizar o TFTP server no Windows, no que diz respeito à enviar/receber arquivos do Cisco para o TFTP server, é exatamente a mesma coisa em que fazemos no Linux. A única diferença é que você não precisará criar o arquivo e dar a devida permissão ANTES de enviar o arquivo para o TFTP server. Somente isto.