Thursday, January 17, 2008
Regreso
Monday, November 19, 2007
TACACS+
TACACS+ es un protocolo propietario de CISCO para actuar en conjunto con el framework AAA desarrollado por la misma empresa, en ese entorno TACACS+ provee las tres funciones por separado:
- Authentication
- Authorization
- Accounting
Queriendo decir con esto que provee soporte de mensajes, funciones de login con la dupla user/password, control sobre las acciones que puede realizar el usuario una vez autenticado y un log detallado de las acciones realizadas por el mismo.
CISCO provee un servidor de AAA, el Cisco Secure ACS y vamos a configurarlo:
Suponiendo que acabamos de instalarlo, usaremos la base de datos interna, nos interesa dar de alta clientes de TACACS+, grupos y usuarios rápidamente, los pasos básicos para configurarlos en Cisco Secure ACS pueden resumirse a los siguientes:
En Network Configuration damos de alta los AAA Clients, que en nuestro caso son routers CISCO, la Key es la clave que se utilizará para encriptar la información que se intercambie entre el cliente (router) y el server (Cisco Secure ACS):

Completamos haciendo click en Submit + Apply...

A continuación modificamos alguno de los grupos de usuarios que vienen configurados por defecto en la opción Group Setup, le asignamos un nombre descriptivo y aplicamos los permisos y características que necesitemos (privilege level, command authorization set, etc):

Luego creamos un usuario desde la opción User Setup, la primer clave es mandatoria y se utiliza para autenticar el usuario desde el cliente, le asignamos el grupo que creamos anteriormente y señalamos que tome todas las configuraciones desde el mismo:

NOTA: Debemos asegurarnos de configurar correctamente el ACS para que los clientes puedan comunicarse con él, de lo contrario los usuarios no autenticarán y podemos perder acceso a los clientes.
Ahora nos toca configurar los routers como clientes de TACACS+:
aaa new-model tacacs-server host 192.168.100.3 tacacs-server key celticdragon service password-encryption | Activamos el nuevo modelo de AAA para habilitar al router para trabajar con TACACS+ Le indicamos cual o cuales son los servidores de TACACS+ con los que trabajará Le proporcionamos la clave de intercambio, usamos la misma que configuramos para este host en el ACS Recomendación: Encriptamos todas las claves para que no aparezcan en texto plano en el archivo de configuración |
aaa authentication login default group tacacs+ line aaa authentication enable default group tacacs+ enable | Habilitamos el login por TACACS+, para el grupo por defecto (pueden configurarse varios en el cliente), la palabra clave line al final nos indica que en el caso de no estar disponible el servidor de TACACS+ podremos ingresar con la clave de linea Lo mismo para el modo enable usando la clave de enable como último recurso |
aaa authorization exec default group tacacs+ none aaa authorization commands 1 default group tacacs+ none aaa authorization commands 15 default group tacacs+ none | Deshabilitamos la autorización para obtener un prompt (exec) y para los comandos de nivel 1 (usuario) y nivel 15 (enable). En esta opción podríamos habilitarlo de forma que sólo autorize comandos si la autenticación fue satisfactoria u otras opciones avanzadas. Con cuidado con esta opción porque puede dejarnos sin posibilidad de configurar el router estando ya dentro del mismo porque no tenemos autorización para ejecutar algún o todos los comandos. |
enable secret goldfish line vty 0 4 password followthecow login authentication default line console 0 password followthecow login authentication default line aux 0 password followthecow login authentication default | Configuramos claves de enable y de línea. Otra vez la recomendación es encriptarlas. |
banner motd # ****************************************** * DRAGON Networks Asset * * Unauthorized access is prohibited * ****************************************** Location: Buenos Aires, AR Hostname: ARDRGNBUE0001H Status: Active Model: Cisco 7206VXR (NPE400) # | Opcionalmente ponemos un bonito banner de “bienvenida” |
El resultado:
(notar que al ingresar ya obtenemos un prompt de enable, esto lo elegimos en el ACS cuando seleccionamos acceso por defecto de nivel 15)
******************************************
* DRAGON Networks Asset *
* Unauthorized access is prohibited *
******************************************
Location: Buenos Aires, AR
Hostname: ARDRGNBUE0001H
Status: Active
Model: Cisco 7206VXR (NPE400)
Username: dave
Password:
ARDRGNBUE0001H#
En el caso de que no tengamos conectividad con el TACACS+ server:
******************************************
* DRAGON Networks Asset *
* Unauthorized access is prohibited *
******************************************
Location: Buenos Aires, AR
Hostname: ARDRGNBUE0001H
Status: Active
Model: Cisco 7206VXR (NPE400)
Password: linepassword
ARDRGNBUE0001H>ena
Password: enablepassword
ARDRGNBUE0001H#
Verificamos funcionamiento de TACACS+ habilitando el debug:
ARDRGNBUE0001H#debug tac eve
TACACS+ events debugging is on
ARDRGNBUE0001H#debug tac pack
TACACS+ packets debugging is on
ARDRGNBUE0001H#debug tac authentication
TACACS+ authentication debugging is on
ARDRGNBUE0001H#
Y esto es lo que vemos cuando un usuario pide entrar al equipo y se le solicita la información de login:
Nov 20 06:36:06.586: TPLUS: Queuing AAA Authentication request 31 for processing
Nov 20 06:36:06.598: TPLUS: processing authentication start request id 31
Nov 20 06:36:06.602: TPLUS: Authentication start packet created for 31()
Nov 20 06:36:06.606: TPLUS: Using server 192.168.100.3
Nov 20 06:36:06.618: TPLUS(0000001F)/0/NB_WAIT/65CEBF58: Started 5 sec timeout
Nov 20 06:36:06.626: TPLUS(0000001F)/0/NB_WAIT: socket event 2
Nov 20 06:36:06.630: T+: Version 192 (0xC0), type 1, seq 1, encryption 1
Nov 20 06:36:06.630: T+: session_id 3287134433 (0xC3EDB0E1), dlen 25 (0x19)
Nov 20 06:36:06.634: T+: type:AUTHEN/START, priv_lvl:1 action:LOGIN ascii
Nov 20 06:36:06.634: T+: svc:LOGIN user_len:0 port_len:4 (0x4) raddr_len:13 (0xD) data_len:0
Nov 20 06:36:06.638: T+: user:
Nov 20 06:36:06.638: T+: port: tty3
Nov 20 06:36:06.638: T+: rem_addr: 192.168.100.1
Nov 20 06:36:06.642: T+: data:
Nov 20 06:36:06.642: T+: End Packet
Nov 20 06:36:06.646: TPLUS(0000001F)/0/NB_WAIT: wrote entire 37 bytes request
Nov 20 06:36:06.646: TPLUS(0000001F)/0/READ: socket event 1
Nov 20 06:36:06.650: TPLUS(0000001F)/0/READ: Would block while reading
Nov 20 06:36:06.706: TPLUS(0000001F)/0/READ: socket event 1
Nov 20 06:36:06.706: TPLUS(0000001F)/0/READ: read entire 12 header bytes (expect 16 bytes data)
Nov 20 06:36:06.710: TPLUS(0000001F)/0/READ: socket event 1
Nov 20 06:36:06.710: TPLUS(0000001F)/0/READ: read entire 28 bytes response
Nov 20 06:36:06.714: T+: Version 192 (0xC0), type 1, seq 2, encryption 1
Nov 20 06:36:06.714: T+: session_id 3287134433 (0xC3EDB0E1), dlen 16 (0x10)
Nov 20 06:36:06.718: T+: AUTHEN/REPLY status:4 flags:0x0 msg_len:10, data_len:0
Nov 20 06:36:06.718: T+: msg: Username:
Nov 20 06:36:06.722: T+: data:
Nov 20 06:36:06.722: T+: End Packet
Nov 20 06:36:06.722: TPLUS(0000001F)/0/65CEBF58: Processing the reply packet
Nov 20 06:36:06.726: TPLUS: Received authen response status GET_USER (7)
Do you want more?
Saturday, November 10, 2007
SNMP - Simple Network Management Protocol
- SNMP Manager: El sistema usado para controlar y monitorear los hosts de la red.
- SNMP Agent: El componente de software instalado en el host que se encarga de reportar información al SNMP Manager.
- MIB (Management Information Base): Conjunto de objetos virtuales que representan información acerca de diferentes aspectos del dispositivo (host). Se divide en módulos y puede ser accedida por el Manager a través del Agent, el valor de sus variables puede ser leído y/o modificado.
Notificaciones de SNMP:
El Agente de SNMP puede generar y enviar notificaciones no solicitadas en forma de traps o informs hacia el SNMP Manager:
Traps | Informs |
Unreliable | Reliable: Esperan un acuse de recibo desde el Manager. Se reenvían si no se recibe ACK desde el Manager. |
Implican menor uso de recursos | Implican mayor uso de recursos |
Versiones de SNMP:
Existen tres versiones de SNMP actualmente: SNMPv1, SNMPv2 y SNMPv3
Las dos primeras versiones basan su seguridad en el concepto de comunidad, se utiliza una password y ACL.
SNMPv3 permite una autenticación basada en challenges, usuarios y encriptación de datos.
Versión | Nivel | Autenticación | Encriptación |
V1 | noAuthNoPriv | Community String | NO |
V2c | noAuthNoPriv | Community String | NO |
V3 | noAuthNoPriv | Username | NO |
V3 | authNoPriv | MD5 o SHA | NO |
V3 | authPriv | MD5 o SHA | DES 56-bit |
Habilitando SNMP:
El primer comando snmp-server que apliquemos habilitará SNMP en el dispositivo.
Los comandos requeridos para la operación
de SNMP son los siguientes:
Router(config)# snmp-server community string [view view-name] [ro | rw] [number]
ARDRGNBUE0001H(config)#snmp-server community DrAgOnNeTwOrKs ro
Router(config)# snmp-server host host-
id [traps | informs][version {1 | 2c | 3
[auth | noauth | priv]} ] community-string [udp-port port-number] [notification-type]
ARDRGNBUE0001H(config)#snmp-server host 192.168.1.9 traps version 2c DrAgOnNeTwOrKs
Router(config)# snmp-server enable traps [trap-type]
ARDRGNBUE0001H(config)# snmp-server enable traps
Se puede verificar el funcionamiento de SNMP traps desde el dispositivo administrado con comandos debug snmp y show snmp, y desde un host con algún visor de traps de SNMP:

Una vez habilitado el SNMP Agent en el dispositivo administrado podemos agregarlo a una polling engine, recuperar datos de la MIB y presentarlos de una forma amigable (gráficos estadísticos, real-time information, etc):
Tuesday, November 6, 2007
CISCO IOS - IP Accounting

· Habilitar el IP Accounting nos permite obtener un reporte del número de bytes y paquetes que atraviesan el router.
· Indica dirección ip de origen y destino.
· Sólo el tráfico de tránsito saliente es medido.
· El tráfico generado o que termina en el router no es tenido en cuenta.
· Habilitar el IP Accounting cambia la forma de trabajar del router, lo cual puede causar degradación de la performance.
Habilitando IP Accounting debido a una sobre utilización del circuito:
Si el circuito está sobre utilizado en rx:
MXTESTLA0001R#sh int Serial1/0

Serial1/0 is up, line protocol is up
Hardware is M4T
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
Teniendo en cuenta que sólo el tráfico saliente es medido, habilitamos el IP Accounting en la interfaz Ethernet
reliability 255/255, txload 33/255, rxload 237/255
MXTESTLA0001R#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
MXTESTLA0001R(config)#interface Ethernet 2/0
MXTESTLA0001R(config-if)#ip accounting output-packets
MXTESTLA0001R(config-if)#
Comprobamos la configuración:
MXTESTLA0001R#show running-config interface Ethernet 2/0
Building configuration...
Current configuration : 110 bytes
!
interface Ethernet2/0
ip address 192.168.0.1 255.255.255.0
ip accounting output-packets
duplex half
end
MXTESTLA0001R#
Comprobamos que el IP Accounting esté corriendo:
MXTESTLA0001R#show ip accounting
Source Destination Packets Bytes
192.168.1.2 192.168.0.2 16 4008
Accounting data age is 0
MXTESTLA0001R#
Si el circuito está sobre utilizado en tx:
MXTESTLA0001R#sh int Serial1/0
Serial1/0 is up, line protocol is up
Hardware is M4T
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 233/255, rxload 23/255
Teniendo en cuenta que sólo el tráfico saliente es medido, habilitamos el IP Accounting en la interfaz Serial
MXTESTLA0001R#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
MXTESTLA0001R(config)#interface Serial 1/0.100
MXTESTLA0001R(config-subif)#ip accounting output-packets
Comprobamos la configuración:
MXTESTLA0001R#show running-config interface Serial 1/0.100
Building configuration...
Current configuration : 151 bytes
!
interface Serial1/0.100 point-to-point
ip address 135.42.64.1 255.255.255.252
ip accounting output-packets
frame-relay interface-dlci 100
end
MXTESTLA0001R#
Comprobamos que el IP Accounting esté corriendo:
MXTESTLA0001R#show ip accounting
Source Destination Packets Bytes
192.168.0.2 192.168.1.2 799 993015
Accounting data age is 1
MXTESTLA0001R#
Borrando el IP Accounting:
MXTESTLA0001R#clear ip accounting
MXTESTLA0001R#show ip accounting
Source Destination Packets Bytes
Accounting data age is 0
MXTESTLA0001R#
Deshabilitando el IP Accounting (IMPORTANTE!):
NO OLVIDAR EL IP ACCOUNTING HABILITADO: Habilitar el IP Accounting cambia la forma de trabajar del router, lo cual puede causar degradación de la performance.
Dentro de la interfaz o sub-interfaz dónde hayamos habilitado el IP Accounting:
MXTESTLA0001R#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
MXTESTLA0001R(config)#interface Serial 1/0.100
MXTESTLA0001R(config-subif)#no ip accounting output-packets
COMPROBAR CON “SHOW RUNNING-CONFIGURATION INTERFACE [INTERFAZ]” QUE SE HAYA DESHABILITADO CORRECTAMENTE.
En general cuando el IP Accounting está deshabilitado vamos a ver lo siguiente:
MXTESTLA0001R#show ip accounting
MXTESTLA0001R#
Notar que no aparecen los encabezados de las columnas ni el tiempo que estuvo corriendo el IP Accounting.
Extrayendo el IP Accounting:
La forma más rápida de extraer el IP Accounting es habilitando el log en el PuTTY haciendo botón derecho en el título de la ventana y pinchando en “Change Settings…”, seleccionamos la categoría Sessionà Logging y “Log printable output only”, en el campo “Log file name:” podemos colocar el nombre del router y presionamos Apply.
Luego ejecutamos el comando “show ip accounting”, presionamos la barra espaciadora las veces que sea necesario hasta recuperar el prompt y HACEMOS UN BACKUP DEL ARCHIVO ANTES DE LIMPIAR EL IP ACCOUNTING.
Editamos el archivo con el block de notas y eliminamos encabezados y toda otra información que no corresponda.
En el caso de que usen otro cliente de SSH cada uno sabrá como proceder, el PuTTY no es el más cómodo pero es el más popular.
Saludos,