Como fazer backup de um firewall Netscreen: 8 etapas
Como fazer backup de um firewall Netscreen: 8 etapas
Anonim

Por joeFollow Mais pelo autor:

Sobre: Eu gosto de mexer em quase tudo, às vezes dá certo no final. Divirta-se olhando os projetos, tente abrir algo e me diga como foi. cheers, -Joe Mais sobre Joe »

Este instrutível mostra um script que pode ser usado para automatizar backups de um firewall netscreen executando o ScreenOS.

Etapa 1: Requisitos

Este script foi escrito em expect e assume que o SSH está ativado em sua tela netscreen e em um ambiente Linux. Se você nunca deu uma olhada, Oreilly tem um ótimo livro "Exploring Expect"

Etapa 2: Variáveis

Começaremos definindo algumas variáveis. Você desejará definir as variáveis de porta / nome de usuário / senha / netscreen / prompt para corresponder ao seu ambiente. #! / usr / bin / expect # Espere o script para fazer backup da configuração dos firewalls netscreen # Joe #Defina algum tempo limite varsset 60set usuário "root" definir senha "senha" definir porta "2022" definir netscreen "foo.bar.com" definir basedir "/mnt/netapp/backups/foo.bar.com"set log" [timestamp -format% Y-% m-% d] -config.txt "set mailto" [email protected] "set mailsubject" Erro: netscreen backup falhou [timestamp -format% Y-% m-% d] "set mailfail" "set prompt" foo->"

Etapa 3: conectar

A seguir, no script, tentaremos conectar.send_user "Script de backup NetScren / n" send_user "Conectando-se a $ netscreen / n" spawn ssh $ user @ $ netscreen -p $ port expect {"password:" {send "$ password / r "expect {" $ prompt "{send_user" Connected "}" Permissão negada "{send_user" Senha inválida, saindo de "set mailfail" Senha inválida, saindo de "close} timeout {send_user" Nenhum prompt retornado "set mailfail" Nenhum prompt retornado "close}}}" Nenhuma rota para o host "{send_user" Incapaz de conectar-se a $ netscreen / n "set mailfail" Incapaz de conectar-se a $ netscreen / n "}" Nome ou serviço desconhecido "{send_user" Incapaz de conectar-se a $ netscreen / n "set mailfail" Incapaz de conectar a $ netscreen / n "} timeout {send_user" Tempo limite de conexão a $ netscreen "set mailfail" Tempo limite de conexão a $ netscreen "close}} if {$ mailfail! =" "} { exec / bin / mail -s $ mailsubject $ mailto << saída "$ mailfail"}

Etapa 4: Desligue o Paging

Você precisa desligar a paginação - ou o prompt mais na tela netscreen. # Desative o "mais" promptsend "definir página do console 0 / r" expect {"$ prompt" {send_user "\ nPagamento desativado / n"} padrão {enviar "O ScreenOS não excluiu a opção de paginação. / N" definir mailfail "O ScreenOS fez não exceto opção de paginação. " close} timeout {send_user "ScreenOS não exceto opção de paging / n" set mailfail "ScreenOS não exceto opção de paging." fechar}} if {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}

Etapa 5: obter configuração

Agora vamos obter a configuração. send_user "Baixando configuração / n" log_file $ basedir / $ logsend "get config / r" expect {"$ prompt" {log_file send_user "\ nConfiguração baixada / n"} timeout {send_user "\ nErro durante o download da configuração." set mailfail "Erro durante o download da configuração." }} closeif {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}

Etapa 6: verifique se a configuração está do tamanho certo

Saberemos verificar se a configuração é de pelo menos 1k.set filesize [tamanho do arquivo $ basedir / $ log] se {$ filesize <= 1024} {send_user "A configuração do Netscreen é muito pequena, investigue / n" set mailfail " A configuração do Netscreen é muito pequena, investigue / n "exec / bin / mail -s $ mailsubject $ mailto <<" $ mailfail "exit}

Etapa 7: Limpeza

Vamos fazer uma pequena limpeza para remover configurações com mais de duas semanas. #Remover configuração anterior a 2 semanasexec encontrar $ basedir -name '* config.txt *' -mtime +14

Etapa 8: todos juntos

Junte tudo agora. Ele é anexado como um arquivo de texto. Ele enviará e-mails em todas as falhas. #! / usr / bin / expect # Esperar o script para fazer backup da configuração dos firewalls netscreen # Joe # Definir algum tempo limite varsset 60set usuário "root" definir senha "senha" definir porta "2022" definir netscreen "foo.bar.com" definir basedir "/mnt/netapp/backups/foo.bar.com"set log" [timestamp -format% Y-% m-% d] -config.txt "set mailto" [email protected] "set mailsubject" Erro: netscreen backup falhou [timestamp -format% Y-% m-% d] "set mailfail" "set prompt" foo-> "send_user" Script de backup NetScren / n "send_user" Conectando-se a $ netscreen / n "spawn ssh $ user @ $ netscreen -p $ port expect {"password:" {send "$ password / r" expect {"$ prompt" {send_user "Connected"} "Permissão negada" {send_user "Senha inválida, saindo" set mailfail "Senha inválida, saindo "close} timeout {send_user" Nenhum prompt retornou "set mailfail" Nenhum prompt retornou "close}}}" Nenhuma rota para o host "{send_user" Incapaz de conectar a $ netscreen / n "set mailfail" Incapaz de conectar-se a $ netscreen / n "}" Nome ou serviço desconhecido "{send_user" Incapaz de conectar a $ netscreen / n "s et mailfail "Incapaz de conectar a $ netscreen / n"} tempo limite {send_user "Tempo limite de conexão $ netscreen" set mailfail "Tempo limite de conexão $ netscreen" close}} if {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} #Agora que acabou, continue # Desative o "mais" promptsend "definir a página do console 0 / r" expect {"$ prompt" {send_user "\ nPaginização desativada / n "} default {send" ScreenOS não exceto opção de paging. / n "set mailfail" ScreenOS não exceto opção de paging. " close} timeout {send_user "ScreenOS não exceto opção de paging / n" set mailfail "ScreenOS não exceto opção de paging." close}} if {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} send_user "Baixando configuração / n" log_file $ basedir / $ logsend "get config / r "esperar {" $ prompt "{log_file send_user" / nConfiguração baixada / n "} tempo limite {send_user" / nErro durante o download da configuração. " set mailfail "Erro durante o download da configuração." }} closeif {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} definir o tamanho do arquivo [tamanho do arquivo $ basedir / $ log] se {$ filesize <= 1024} {send_user "A configuração do Netscreen é muito pequena, investigue / n" set mailfail "A configuração do Netscreen é muito pequena, investigue / n" exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} #Remove config com mais de 2 semanassexec encontrar $ basedir -name '* config.txt *' -mtime +14