Thursday, January 17, 2008

Regreso

Estuve primero estudiando y luego de vacaciones, en cualquier momento vuelvo con algún update =)

Monday, November 19, 2007

TACACS+

Terminal Access Controller Access Control System


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 es un protocolo de capa de aplicación que consta de tres elementos:
  • 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):



Do you want more?

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,

Monday, November 5, 2007

Nuevo Blog

Esta vez no prometo nada porque después nunca cumplo. Saludos.