Continuando o post sobre o EEM – Embedded Event Manager, vamos ver os scripts. Como já dito no post anterior, o script é feito usando o TCL – Tool Command Language e permite a criação de EEM Policies mais elaboradas.
No exemplo escolhido para ilustrar este post, usando um script EEM o roteador passará a enviar e-mails sempre que uma mensagem syslog SYS-5-CONFIG for gerada.
Repositório
A Cisco mantém um repositório onde podemos encontrar scripts criados pela comunidade. Qualquer um pode criar um script e enviar para que outras pessoas possam utilizar.
Neste repositório temos um template com a programação TCL pronta para que o roteador envie e-mail. Vamos fazer o download deste arquivo, e usá-lo como base neste exemplo.
Editando o Sendmail.tcl
Descompacte o arquivo e abra o sendmail.tcl em um editor de texto.
O autor deste script deixou ele pronto para ser executado manualmente (sem gatilho), mas os códigos para detecção de eventos já estão no arquivo. Assim, precisamos habilitar a linha para detectar syslog e indicar o tipo de mensagem que queremos verificar (*SYS-5-CONFIG.*). Você pode mudar isso de acordo com suas necessidades.
Depois vamos configurar para que o show running-config seja enviado no e-mail (o arquivo original envia o show version). Veja no vídeo abaixo.
Usando o Script EEM
1) Agora, usando um tftp server, pegue o arquivo editado e envie para a flash do roteador.
BrainRT01#copy tftp: flash:
Address or name of remote host [10.10.8.66]? 10.10.8.3
Source filename [brainwork_sendmail.tcl]?
Destination filename [brainwork_sendmail.tcl]?
Accessing tftp://10.10.8.3/brainwork_sendmail.tcl…
Loading brainwork_sendmail.tcl from 10.10.8.3 (via FastEthernet0/0): !
[OK – 5265 bytes]5265 bytes copied in 0.588 secs (8954 bytes/sec)
BrainRT01#
2) Configure as variáveis utilizadas no script (ip do servidor de email, mail from e mail to).
BrainRT01# conf t
BrainRT01(config)#event manager environment _email_server 10.10.10.4
BrainRT01(config)#event manager environment _email_from BrainRT01@brainwork.com.br
BrainRT01(config)#event manager environment _email_to destinatario@brainwork.com.br
BrainRT01(config)#
Observe que o servidor deve estar configurado de forma aceitar que o roteador envie o e-mail.
3) Defina o diretório de uso e registre o Script.
BrainRT01(config)#event manager directory user policy "flash:/"
BrainRT01(config)#event manager policy brainwork_sendmail.tcl
BrainRT01(config)#
4) Pronto. Quando você sair do modo de configuração global será gerada uma mensagem syslog, notificando das configurações realizadas, o que iniciará a execução do Script.
BrainRT01(config)#exit
BrainRT01#
May 13 18:57:42.533: %SYS-5-CONFIG_I: Configured from console by admin on vty0 (10.10.8.3)
May 13 18:57:44.453: %HA_EM-6-LOG: brainwork_sendmail.tcl: Creating mail header…
May 13 18:57:49.441: %HA_EM-6-LOG: brainwork_sendmail.tcl: E-mail sent!
BrainRT01#
Não esqueça de usar o Terminal Monitor, se você estiver acessando o equipamento por Telnet/SSH. E se o e-mail demorar verifique se não foi classificado como SPAM.
O lado negro da força
Como toda ferramenta, o EEM pode ser usado para o bem e para o mal.
Tome cuidado ao baixar scripts da Internet. Scripts baixados de outros lugares que não o repositório Cisco, podem conter backdoor/trojan, permitindo acesso ao seu equipamento.
Aliás, recentemente no Web Security Forum, o Adilson Florentino, do Netfinders, fez uma apresentação chamada IOS Trojan – Quem é o dono do seu roteador? Nela o Adilson alertava justamente para o risco de alguém ter acesso ao seu equipamento e plantar um trojan, que permitiria acesso a sua rede.
É possível, por exemplo, criar um túnel GRE entre seu equipamento e um roteador qualquer, por onde o acesso passaria a ser realizado. Além disso o cracker pode manipular os comandos (show run, show ip int bri, dir) de forma que você não veja as alterações realizadas.
Parece difícil? Saiba que esse script já foi criado, e basta procurar no Google para encontrar o código, comentado inclusive.
Links
Criando scritps
http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_policy_tcl.html
Repositório
http://forums.cisco.com/eforum/servlet/EEM
Até a próxima.