Time-Based ACLs
As ACLs que podemos implementar em roteadores Cisco são ferramentas de segurança bastante úteis no dia-a-dia de um profissional da área de redes. Nesse tocante fala-se muito nas listas padrões (standard) e estendidas (extended) que são comumente cobradas nos exames de certificação, no entanto é possível incorporar a elas o recurso de aplicá-las com base no horário, o que é pouco comentado e MUITO últil nas empresas.
A sintaxe e os principais conceitos das ACLs padrões e estendidas podem ser encontrados no"Lab09" do meu livro e por isso não estarei focando essa postagem nesses princípios. Ao contrário, meu objetivo nessa postagem é mostrar como o recurso "time-range" pode ser acoplado às ACLs tradicionais para te permitir aplicar suas regras com base no horário.
Bom, antes de partir para os comandos, é preciso entender o que queremos fazer. Estaremos utilizando o mesmo cenário do "Lab10" do livro, que traz um ambiente bastante simples em que temos uma LAN 172.22.0.0/16, cujo gateway é a interface f0/0 do roteador (172.22.11.1). Na rede existe uma máquina (172.22.11.101) que somente poderá acessar a Internet no horário do almoço (das 12h às 13h). Essa poderia ser, por exemplo, uma máquina da recepção de uma empresa.
A interface s0/0 do roteador está conectada na Internet e o equipamento já foi devidamente configurado para fazer o compartilhamento da conexão via NAT. Mais uma vez, os detalhes de como configurar NAT em roteadores Cisco podem ser encontrados no "Lab10" do livro.
Podemos setar o horário do roteador manualmente, mas esse método é pouco confiável. Aproveitaremos a oportunidade de escrever as ACLs com base em horário para verificar os procedimentos para configurar o horário do dispositivo através do Protocolo NTP (Network Time Protocol).
O NTP.br é um serviço público nacional disponibilizado pelo NIC.br (autoridade máxima da Internet do Brasil) que provê a sincronização do horário oficial brasileiro através de servidores gratuitos rodando o NTP. Nessa postagem, estaremos utilizando esse serviço para atualizar a hora, conforme pode ser observado no roteiro abaixo:
01. Router# conf t
02. Router(config)# ntp server 200.160.7.186
03. Router(config)# clock timezone BR -3 0
04. Router(config)# clock summer-time BRV recurring 3 Sun Oct 0:00 3 Sun Feb 0:00
05. Router(config)# service timestamp debug datetime msec localtime show-timezone year
06. Router(config)# service timestamp log datetime msec localtime show-timezone year
No roteiro acima foi utilizado o servidor "a.st1.ntp.br" (do NTP.br) que responde pelo IP 200.160.7.186 (linha 2). O relógio dos equipamentos trabalha sincronizado com o UTC de cada região (o padrão é 0) e por isso precisamos da terceira linha para setar o UTC do Brasil (que é -3).
O NTP não trata da questão do horário de verão, ou seja, quando entramos ou saímos do horário de verão o relógio não é alterado. Por isso informamos a linha 4 para fazer os ajustes manuais referentes ao nosso horário de verão nacional. O horário de verão teve início no terceiro domingo de outubro (20/10/2012) e terminará no terceiro domingo de fevereiro (17/02/2013).
Nas linhas 5 e 6 informamos ao IOS que passe a anexar o horário sincronizado em todos os seus registros de log e debug, uma boa prática que pode facilitar muito na detecção de problemas a partir da leitura dos logs. Reparem que essas linhas são opcionais e não são necessárias para ofuncionamento da configuração proposta, no entanto essa prática é realmente muito recomendada.
Agora que o horário do nosso roteador é confiável através da soncrinização via NTP, então podemos partir para a escrita das ACLs propriamente ditas. Antes de escrevermos as ACLs (nas linhas de 11 a 14), criamos um escopo de horário que será acoplado a elas (linhas 8 e 9), como pode ser observado no roteiro abaixo. Por fim, aplicamos a ACL na interface f0/0 do roteador.
07. Router# conf t
08. Router(config)# time-range HORA-ALMOCO
09. Router(config-time-range)# periodic weekdays 12:00 to 13:00
10. Router(config-time-range)# exit
11. Router(config)# ip access-list extended TIME-ACL
12. Router(config-ext-nacl)# permit tcp host 172.22.11.101 any time-range HORA-ALMOCO
13. Router(config-ext-nacl)# deny ip host 172.22.11.101 any
14. Router(config-ext-nacl)# permit ip 172.22.0.0 0.0.255.255 any
15. Router(config-ext-nacl)# exit
16. Router(config)# int f0/0
17. Router(config-if)# ip access-group TIME-ACL in
18. Router(config-if)# end
19. Router#
Ou seja, é bem simples. Basta adicionarmos o parâmetro "time-range" ao final da ACL que o efeito de filtro por horário estará em ação. Claro que antes de utilizar esse parâmetro você deve lembrar de criar o escopo referente ao horário.
Para finalizar, seguem alguns comandos "show" para você verificar seus escopos "time-range", o horário do seu dispositivo e o funcionamento do NTP:
Router# show time-range
Router# show clock
Router# show ntp associations
Router# show ntp status
É isso! Espero que seja útil!!! Vou avaliar a possibilidade de aproveitar essa "postagem" para criar um cenário "configurável" nos simuladores e quem sabe já não teremos um novo laboratório na próxima edição do livro...
Fonte: http://labcisco.blogspot.com.br/2012/11/time-based-acls.html
