Mostrando postagens com marcador FTP. Mostrar todas as postagens
Mostrando postagens com marcador FTP. Mostrar todas as postagens

sexta-feira, 31 de julho de 2015

Script de Backup das Configurações de Ativos de Rede para Servidor TFTP

Introdução

É possível realizar o exporte das configurações de ativos de redes (como switches, roteadores, controladoras de rede sem fio, etc) para um Servidor TFTP, como o arquivo gerado é irrelevante em termos de tamanho, criei um script que se conecta via telnet em cada um dos ativos, realiza o exporte para um Servidor TFTP e renomeia o arquivo para o dia da semana. Com isso temos uma cópia das configurações dos últimos sete dias de cada ativo. Como medida adicional de segurança o servidor de backup coleta esses dados, para preserva-los mesmo que algo aconteça com o Servidor TFTP, como um crash de disco, por exemplo.

Estrutura

  • /Scripts: Diretório que abriga o script;
  • /Backup/Logs: Diretório que abriga o log do processo, Log_Switches-DIA_DA_SEMANA.log, se esse arquivo não for vazio, ou seja, acontecer algum erro, esse log será enviado por e-mail;
  •  /Backup/Switches: Diretório que abriga o export das configurações, existe um diretório para cada switch (switch1, switch2, etc), e dentro de cada diretório o arquivo de configuração, SwitchX-DIA_DA_SEMANA.cfg.

Ponto de partida

Eu parto do princípio que você já possui um Servidor TFTP em execução.

Pré-Requisitos

O único pré-requisito é o servidor ter um cliente de telnet.
# yum install telnet

Criar a estrutura de diretórios

# mkdir -p /Backup/{Logs,Switches}

Nesse exemplo estou partindo do princípio que você possui 10 Switches, altere de acordo com sua necessidade.
# for ((i=1; i<=10; i++))
do
mkdir /Backup/Switches/switch$i
done

Verificando a sintaxe do ativo

Antes de partirmos para o script em si, é preciso alguns passos:
  • Verificar se seu ativo possui suporte a telnet e, se está habilitado;
  • Ler o manual para encontrar qual é a sintaxe de comando de backup das configurações e como exportá-las para um servidor TFTP;
  • Rodar o comando de forma manual e ter certeza de que tudo funcionou como deveria;
  • Verificar quanto tempo demora o upload da configuração para o Servidor TFTP.

Sintaxe de alguns equipamentos

Switch 3COM 4200G
tftp IP_TFTP put 3com4200g.cfg Switch.cfg

Switch 3COM 4800G
tftp IP_TFTP put 3comoscfg.cfg Switch.cfg

Switch D-Link DGS-3100 / DES-3226S
upload configuration IP_TFTP Switch.cfg

Switch D-Link DGS-3120
upload cfg_toTFTP IP_TFTP dest_file Switch.cfg

Switch D-Link DGS-3526
upload cfg_toTFTP IP_TFTP Switch.cfg

Automatizando o processo

A primeira dificuldade que encontramos é que ao realizar uma conexão telnet, estamos em outro equipamento, e por isso não podemos usar o Here Document como faríamos com um banco de dados, por exemplo, mas esse problema foi solucionado pelo Mago do Shell Script Julio César Neves:

#(echo 'admin'; sleep 2; echo 'senha_ativo'; sleep 2; echo 'comando_ativo'; sleep 2; echo 'quit') | telnet IP_ATIVO

Por exemplo para o Switch 3COM 4800G:
# (echo 'admin'; sleep 2; echo 'S3NhAd0sW1TcH3'; sleep 2; echo 'pwd'; sleep 2; echo 'quit') | telnet 192.168.100.2

O Script

O Script pode ser baixado aqui e está todo comentado para melhor compreensão.

Referências

Lista Shell Script Yahoo

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