10 pasos para segurizar un dispositivo Cisco IOS
.1. Desactive aquellos servicios o protocolos que son innecesarios.
Por defecto los dispositivos Cisco activan diversos servicios que son opcionales. Estos servicios son potenciales puntos de ataques de seguridad ya que permitien acceder a información del dispositivo.
Si no son utilizados, estos servicios pueden ser fácilmente desactivados:
Protocolo CDP:
Router(config)#no cdp run
Configuración remota:
Router(config)#no service config
Servicio finger:
Router(config)#no service finger
Servicio web:
Router(config)#no ip http server
Protocolo SNMP:
Router(config)#no snmp-server
Protocolo BOOTP:
Router(config)#no ip bootp server
Servicios TCP:
Router(config)#no service tcp-small-servers
Servicios UDP:
Router(config)#no service udp-small-servers
.2. Deshabilite las interfaces que no están en uso.
Las interfaces que no se utilizan deben estar administrativamente deshabilitadas utilizando el comandoshutdown. En los routers Cisco este es el estado por defecto; por el contrario, en los switches Catalyst todos los puertos están habilitados por defecto.
En las interfaces en uso, si no son necesarios, conviene desactivar los siguientes servicios:
Router(config-if)#no ip proxy-arp
Router(config-if)#no ip directed-broadcast
Router(config-if)#no ip mask-reply
.3. Mantenga control del tráfico que atraviesa el router.
Básicamente se debiera bloquear todo tráfico innecesario. Sin embargo, muchas veces es difícil determinar el tráfico necesario.
Pero hay tráfico que ciertamente no debiera ingresar o circular. Por ejemplo, cuando la red tiene un router a través del cual se conecta a Internet; este dispositivo no debiera recibir desde Internet tráfico que se origine en una dirección IP privada. Para esto, se puede implementar la siguiente lista de acceso, suponiendo que la interfaz a través de la cual el router se conecta a Internet es la interfaz serial 0/0:
Router(config)#access-list 101 deny ip 10.0.0.0 0.255.255.255 any log
Router(config)#access-list 101 deny ip 172.16.0.0 0.15.255.255 any log
Router(config)#access-list 101 deny ip 192.168.0.0 0.0.255.255 any log
Router(config)#interface serial 0/0
Router(config-if)#description acceso a Internet
Router(config-if)#ip access-group 101 in
.4. Mantenga los archivos log y utilice una fuente de hora confiable.
Para mantener un control del tráfico que es bloqueado por las listas de acceso, es conveniente utilizar los archivos log. Estos archivos también pueden mantener registro de los cambios de configuración y errores.
Para mantener estos archivos almacenados en el dispositivo, el procedimiento es el siguiente:
Router(config)#logging on
Router(config)#logging buffered 16384
De este modo se reserva un espacio de 16 MB en la memoria RAM del dispositivo.
El problema de guardar estos archivos en el router es que en caso de un reinicio del dispositivo se pierden estos archivos. Por eso conviene almacenarlos en un servidor que puede incluso ser un servidor común a todos los dispositivos de la red.
El comando para identificar este servidor es:
Router(config)#logging [ip]
Un elemento muy importante de información en los archivos log, es la marca horaria de los sucesos.
Esta marca horaria puede tomarse a partir del reloj interno del dispositivo. Sin embargo, si hay varios dispositivos es muy importante que todos tomen su marca horaria de un único servidor para poder hacer las comparaciones que puedan ser necesarias. Para activar este servicio utilice el siguiente comando:
Router(config)#service timestamps log datetime msec
Router(config)#ntp server server.ntp.address
.5. Implemente claves de acceso y clave de acceso al modo privilegiado.
Asegúrese de aplicar claves de acceso a cada uno de los puertos.
Router(config)#line console 0
Router(config-line)#login
Router(config-line)#password [clave]
Router(config-line)#exec-timeout 0 0
Router(config)#line aux 0
Router(config-line)#login
Router(config-line)#password [clave]
Router(config-line)#exec-timeout 0 0
Router(config)#line vty 0 4
Router(config-line)#login
Router(config-line)#password [clave]
Para bloquear el acceso al modo privilegiado utilice siempre la enable secret que se encripta utilizando MD5.
Router(config)#enable secret [clave]
.6. Use claves complejas (robustas) y encripte las claves en texto plano.
Asegúrese de utilizar claves largas y con caracteres alfanuméricos, lo que reduce la posibilidad de que sean violadas por un ataque de fuerza bruta. Este comando Cisco IOS le permite asegurar una longitud de caracteres mínima para cada clave:
Router(config)#security password min-length 6
Asegúrese de que todas las claves estén encriptadas, al menos con un algoritmo de encripción básico:
Router(config)#service password encryption
Se pueden prevenir intentos de acceso por fuerza bruta estableciendo parámetros de tiempo para el ingreso de claves en el dispositivo. En este ejemplo se define que el acceso se bloquee por 180 segundos cuando se realizan 3 intentos fallidos en un intervalo de 30 segundos.
Router(config)#login block-for 180 attempts 3 within 30
.7. Controle quiénes pueden acceder remotamente al router.Es conveniente limitar las posibilidades de acceso remoto a la administración de los dispositivos.
Una posibilidad es limitar las direcciones IP y protocolos que se utilizan para acceder a las terminales virtuales. Por ejemplo, para permitir el acceso exclusivamente desde la red local:
Router(config)#access-list 10 permit 192.168.2.0 0.0.0.255
Router(config)#line vty 0 4
Router(config-line)#access-class 10 in
.8. Utilice SSH para el acceso remoto.No es recomendable el uso de telnet o http para la administración de los dispositivos, dado los riesgos de seguridad que esto entraña.
Es altamente recomendable utilizar SSH (Secure Shell) para la administración remota de los dispositivos ya que SSH viaja encriptado. Para habilitar SSH en un dispositivo siga los siguientes pasos:
Router(config)#hostname [nombre]
Router(config)#ip domain-name [nombre]
Router(config)#crypto key generate rsa
Router(config)#ip ssh timeout 60
Router(config)#line vty 0 4
Router(config-line)#transport input ssh
Nota: Antes de intentar esta implementación, verifique que su versión y package de Cisco IOS soportan SSH.
.9. Segurice los protocolos de enrutamiento y otros servicios opcionales.
A fin de evitar ataques que signifiquen modificaciones no autorizadas de las tablas de enrutamiento es recomendable utilizar protocolos que soporten una autenticación con claves encriptadas.
Por ejemplo, se puede configurar OSPF para que utilice claves encriptadas:
Router(config-if)#ip ospf message-digest key [1-255] md5 [1-7] [clave]
Router(config)#router ospf 1
Router(config-router)#area 0 authentication message-digest
.10. Prevenga los ataques de denegación de servicio.Un modo simple de prevenir ataques DoS comunes, es limitar el ancho de banda utilizado por los paquetes ICMP. El protocolo ICMP suele ser utilizado para inundar la red causando una denegación de servicio.
Para prevenir este tipo de ataque se pueden utilizar los comandos que se indican a continuación en cada interfaz, de modo de limitar el ancho de banda que será ocupado por el protocolo.
En este caso, limitaré a 20 Kbps la disponibilidad para tráfico de ping en la interfaz serial 0/0 que tiene un ancho de banda total de 64 Kbps. Esto en la realidad depende en cada caso del ancho de banda de cada enlace y la proporción de ese ancho de banda que se desea asignar como máximo a estos protocolos.
Router(config)#access-list 101 permit icmp any any echo-reply
Router(config)#access-list 101 permit icmp any any echo
Router(config)#interface serial 0/0
Router(config-if)#rate-limit input access-group 101 20000 8000 8000 conform-action transmit exceed-action drop
Tenga en cuenta que la prevención de ataques de DoS es una tarea más compleja que debe enmarcarse en el contexto de políticas e implementaciones de seguridad. Este es solamente un tip para lograr una prevención básica.
Por defecto los dispositivos Cisco activan diversos servicios que son opcionales. Estos servicios son potenciales puntos de ataques de seguridad ya que permitien acceder a información del dispositivo.
Si no son utilizados, estos servicios pueden ser fácilmente desactivados:
Protocolo CDP:
Router(config)#no cdp run
Configuración remota:
Router(config)#no service config
Servicio finger:
Router(config)#no service finger
Servicio web:
Router(config)#no ip http server
Protocolo SNMP:
Router(config)#no snmp-server
Protocolo BOOTP:
Router(config)#no ip bootp server
Servicios TCP:
Router(config)#no service tcp-small-servers
Servicios UDP:
Router(config)#no service udp-small-servers
.2. Deshabilite las interfaces que no están en uso.
Las interfaces que no se utilizan deben estar administrativamente deshabilitadas utilizando el comandoshutdown. En los routers Cisco este es el estado por defecto; por el contrario, en los switches Catalyst todos los puertos están habilitados por defecto.
En las interfaces en uso, si no son necesarios, conviene desactivar los siguientes servicios:
Router(config-if)#no ip proxy-arp
Router(config-if)#no ip directed-broadcast
Router(config-if)#no ip mask-reply
.3. Mantenga control del tráfico que atraviesa el router.
Básicamente se debiera bloquear todo tráfico innecesario. Sin embargo, muchas veces es difícil determinar el tráfico necesario.
Pero hay tráfico que ciertamente no debiera ingresar o circular. Por ejemplo, cuando la red tiene un router a través del cual se conecta a Internet; este dispositivo no debiera recibir desde Internet tráfico que se origine en una dirección IP privada. Para esto, se puede implementar la siguiente lista de acceso, suponiendo que la interfaz a través de la cual el router se conecta a Internet es la interfaz serial 0/0:
Router(config)#access-list 101 deny ip 10.0.0.0 0.255.255.255 any log
Router(config)#access-list 101 deny ip 172.16.0.0 0.15.255.255 any log
Router(config)#access-list 101 deny ip 192.168.0.0 0.0.255.255 any log
Router(config)#interface serial 0/0
Router(config-if)#description acceso a Internet
Router(config-if)#ip access-group 101 in
.4. Mantenga los archivos log y utilice una fuente de hora confiable.
Para mantener un control del tráfico que es bloqueado por las listas de acceso, es conveniente utilizar los archivos log. Estos archivos también pueden mantener registro de los cambios de configuración y errores.
Para mantener estos archivos almacenados en el dispositivo, el procedimiento es el siguiente:
Router(config)#logging on
Router(config)#logging buffered 16384
De este modo se reserva un espacio de 16 MB en la memoria RAM del dispositivo.
El problema de guardar estos archivos en el router es que en caso de un reinicio del dispositivo se pierden estos archivos. Por eso conviene almacenarlos en un servidor que puede incluso ser un servidor común a todos los dispositivos de la red.
El comando para identificar este servidor es:
Router(config)#logging [ip]
Un elemento muy importante de información en los archivos log, es la marca horaria de los sucesos.
Esta marca horaria puede tomarse a partir del reloj interno del dispositivo. Sin embargo, si hay varios dispositivos es muy importante que todos tomen su marca horaria de un único servidor para poder hacer las comparaciones que puedan ser necesarias. Para activar este servicio utilice el siguiente comando:
Router(config)#service timestamps log datetime msec
Router(config)#ntp server server.ntp.address
.5. Implemente claves de acceso y clave de acceso al modo privilegiado.
Asegúrese de aplicar claves de acceso a cada uno de los puertos.
Router(config)#line console 0
Router(config-line)#login
Router(config-line)#password [clave]
Router(config-line)#exec-timeout 0 0
Router(config)#line aux 0
Router(config-line)#login
Router(config-line)#password [clave]
Router(config-line)#exec-timeout 0 0
Router(config)#line vty 0 4
Router(config-line)#login
Router(config-line)#password [clave]
Para bloquear el acceso al modo privilegiado utilice siempre la enable secret que se encripta utilizando MD5.
Router(config)#enable secret [clave]
.6. Use claves complejas (robustas) y encripte las claves en texto plano.
Asegúrese de utilizar claves largas y con caracteres alfanuméricos, lo que reduce la posibilidad de que sean violadas por un ataque de fuerza bruta. Este comando Cisco IOS le permite asegurar una longitud de caracteres mínima para cada clave:
Router(config)#security password min-length 6
Asegúrese de que todas las claves estén encriptadas, al menos con un algoritmo de encripción básico:
Router(config)#service password encryption
Se pueden prevenir intentos de acceso por fuerza bruta estableciendo parámetros de tiempo para el ingreso de claves en el dispositivo. En este ejemplo se define que el acceso se bloquee por 180 segundos cuando se realizan 3 intentos fallidos en un intervalo de 30 segundos.
Router(config)#login block-for 180 attempts 3 within 30
.7. Controle quiénes pueden acceder remotamente al router.Es conveniente limitar las posibilidades de acceso remoto a la administración de los dispositivos.
Una posibilidad es limitar las direcciones IP y protocolos que se utilizan para acceder a las terminales virtuales. Por ejemplo, para permitir el acceso exclusivamente desde la red local:
Router(config)#access-list 10 permit 192.168.2.0 0.0.0.255
Router(config)#line vty 0 4
Router(config-line)#access-class 10 in
.8. Utilice SSH para el acceso remoto.No es recomendable el uso de telnet o http para la administración de los dispositivos, dado los riesgos de seguridad que esto entraña.
Es altamente recomendable utilizar SSH (Secure Shell) para la administración remota de los dispositivos ya que SSH viaja encriptado. Para habilitar SSH en un dispositivo siga los siguientes pasos:
Router(config)#hostname [nombre]
Router(config)#ip domain-name [nombre]
Router(config)#crypto key generate rsa
Router(config)#ip ssh timeout 60
Router(config)#line vty 0 4
Router(config-line)#transport input ssh
Nota: Antes de intentar esta implementación, verifique que su versión y package de Cisco IOS soportan SSH.
.9. Segurice los protocolos de enrutamiento y otros servicios opcionales.
A fin de evitar ataques que signifiquen modificaciones no autorizadas de las tablas de enrutamiento es recomendable utilizar protocolos que soporten una autenticación con claves encriptadas.
Por ejemplo, se puede configurar OSPF para que utilice claves encriptadas:
Router(config-if)#ip ospf message-digest key [1-255] md5 [1-7] [clave]
Router(config)#router ospf 1
Router(config-router)#area 0 authentication message-digest
.10. Prevenga los ataques de denegación de servicio.Un modo simple de prevenir ataques DoS comunes, es limitar el ancho de banda utilizado por los paquetes ICMP. El protocolo ICMP suele ser utilizado para inundar la red causando una denegación de servicio.
Para prevenir este tipo de ataque se pueden utilizar los comandos que se indican a continuación en cada interfaz, de modo de limitar el ancho de banda que será ocupado por el protocolo.
En este caso, limitaré a 20 Kbps la disponibilidad para tráfico de ping en la interfaz serial 0/0 que tiene un ancho de banda total de 64 Kbps. Esto en la realidad depende en cada caso del ancho de banda de cada enlace y la proporción de ese ancho de banda que se desea asignar como máximo a estos protocolos.
Router(config)#access-list 101 permit icmp any any echo-reply
Router(config)#access-list 101 permit icmp any any echo
Router(config)#interface serial 0/0
Router(config-if)#rate-limit input access-group 101 20000 8000 8000 conform-action transmit exceed-action drop
Tenga en cuenta que la prevención de ataques de DoS es una tarea más compleja que debe enmarcarse en el contexto de políticas e implementaciones de seguridad. Este es solamente un tip para lograr una prevención básica.
No hay comentarios.:
Publicar un comentario