Mostrando entradas con la etiqueta IOS. Mostrar todas las entradas
Mostrando entradas con la etiqueta IOS. Mostrar todas las entradas

lunes, 22 de diciembre de 2014

NAT IOS (Network Address Translation )


NAT permite a los host que no tienen una IP publica acceder a Internet.


Cisco IOS soporta varios tipos de NATs .


NAT Estático (Static NAT) 

Permite  mapear una IP a otra estaticamente 

Para la terminología de Cisco , la IP privada del host en la red interna es llamada "inside local" y la IP publica con la que el host saldrá  Internet es conocida como "Inside Global"

Ejemplo de la configuración:

interface GigabitEthernet0/0
ip address 10.2.2.5 255.255.255.0
ip nat inside

interface Serial0/0/0
ip address 200.1.1.251 255.255.255.0
ip nat outside

ip nat inside source static 10.1.1.2 200.1.1.2
ip nat inside source static 10.5.5.1 200.1.1.1


NAT# show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 200.1.1.1 10.5.5.1 --- ---
--- 200.1.1.2 10.1.1.2 --- ---
NAT# show ip nat statistics
Total active translations: 2 (2 static, 0 dynamic; 0 extended)
Outside interfaces:
Serial0/0/0
Inside interfaces:GigabitEthernet0/0
Hits: 100 Misses: 0
Expired translations: 0
Dynamic mappings:


NAT Dinámico (Dynamic NAT) 


Muy similar al NAT estático , creando una asociación "one-to-one" entre  IPs privadas y publicas.

Pero esta vez ese mapeo es dinámico,  creando un pool de posibles IPs a las que las IPs privadas se pueden traducir. 


Manualmente se puede borrar las entradas dinámicas de la tabla de traducciones con el comando "clear ip nat traslations "

Ejemplo de la configuración:

NAT# show running-config
!

interface GigabitEthernet0/0
ip address 10.1.1.3 255.255.255.0
ip nat inside
!
interface Serial0/0/0
ip address 200.1.1.251 255.255.255.0
ip nat outside

access-list 1 permit 10.1.1.2
access-list 1 permit 10.1.1.1
!
ip nat pool test 200.1.1.1 200.1.1.2 netmask 255.255.255.252
ip nat inside source list 1 pool test
!


NAT# show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 200.1.1.1 10.1.1.1 --- ---
NAT# show ip nat statistics
Total active translations: 1 (0 static, 1 dynamic; 0 extended)
Outside interfaces:
Serial0/0
Inside interfaces:
Ethernet0/0
Hits: 69 Misses: 1
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 1 pool fred refcount 1
pool fred: netmask 255.255.255.252
start 200.1.1.1 end 200.1.1.2
type generic, total addresses 2, allocated 1 (50%), misses 0


NAT con traducción de puertos  (PAT or NAT Overload ) 


La mayoría de las redes necesitan que todos sus host salgan a Internet , si utilizamos NAT estático cada host deberá tener una IP publica diferente asignada , lo cual es muy costoso y no provee escalabilidad. 

PAT soluciona este problema haciendo posible traducir múltiples IP privadas a una sola IP publica. 

Con el mapeo de PAT , no solo se seleccionan las IPs , sino que también agrega un numero de puerto único a la traducción, creando una combinación única en su tabla de traducciones. 

PAT puede crear hasta 65000 traducciones simultaneas. 

Ejemplo de la configuración:

NAT# show running-config
!
interface GigabitEthernet0/0
ip address 10.1.1.3 255.255.255.0
ip nat inside
!
interface Serial0/0/0
ip address 200.1.1.249 255.255.255.252
ip nat outside
!
ip nat inside source list 1 interface Serial0/0/0 overload
!
access-list 1 permit 10.1.1.2
access-list 1 permit 10.1.1.1
!
NAT# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 200.1.1.249:3212 10.1.1.1:3212 170.1.1.1:23 170.1.1.1:23
tcp 200.1.1.249:3213 10.1.1.2:3213 170.1.1.1:23 170.1.1.1:23
tcp 200.1.1.249:38913 10.1.1.2:38913 170.1.1.1:23 170.1.1.1:23

NAT# show ip nat statistics
Total active translations: 3 (0 static, 3 dynamic; 3 extended)
Outside interfaces:
Serial0/0/0
Inside interfaces:
GigabitEthernet0/0
Hits: 103 Misses: 3
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 1 interface Serial0/0/0 refcount 3



NAT Troubleshooting

  • Asegurarse que la configuración incluye los comandos "ip nat inside" y "ip nat outside" en las interfaces y que este correctamente posicionadas. 
  • Para el NAT estático , asegurarse que las IPs privadas y publicas estén en el orden correcto. 
  • Si utiliza NAT dinámico , asegúrese que el ACL contenga las IPs correctas, y  que el pool tenga suficientes IPs para las traducciones requeridas.
  • Asegurarse que no haya ningún ACL previamente aplicado en la interfaz. 

Espero sea de ayuda

- Randy -




domingo, 21 de diciembre de 2014

NTP (Network time protocol) IOS


NTP da la capacidad a los routers ,Switches , Firewalls y otros dispositivos de sincronizar el tiempo entre ellos.

Si todos los dispositivos de la red tienen sus relojes sincronizados , la lista de logs va a ser mas precisa facilitando las labores de "Troubleshooting"



Para configurar NTP en un router o Switch se utiliza el siguiente comando. 


R1# configure terminal
R1(config)# ntp server x.x.x.x  version 4


Podemos usar los siguientes comandos para revisar el estado de NTP en nuestro router:


R1# show ntp status
Clock is synchronized, stratum 8, reference is 172.16.2.2
nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**21
ntp uptime is 4700 (1/100 of seconds), resolution is 4000
reference time is D42BD899.5FFCE014 (13:48:09.374 UTC Fri Oct 19 2012)
clock offset is -0.0033 msec, root delay is 1.28 msec
root dispersion is 3938.51 msec, peer dispersion is 187.59 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000000000 s/s
system poll interval is 64, last update was 42 sec ago.

R1# show ntp associations
address ref clock st when poll reach delay offset disp
*172.16.2.2 127.127.1.1 7 36 64 1 1.261 -0.001 7937.5
* sys.peer, # selected, + candidate, - outlyer, x falseticker, configured

Routers y switches pueden actuar como servidores NTP con el comando (ntp masters) 


NOTA: NTP usa el protocolo UDP 123 , por lo que si usamos un servidor NTP externo , es probable que tengamos que agregar un ACL a nuestro router para permitir la comunicación. 




Deshabilitando servicios sin utilizar en el IOS

Cisco IOS , al igual que todos los sistemas operativos , trae algunos servicios habilitados por defecto, esta configuración incluye una variedad de  servicios útiles para el IOS , sin embargo esto también facilita las labores a lo atacantes  con posibles vulnerabilidades en esos servicios o  para recopilar información sobre el sistema.


Servicio HTTP


Por defecto , IOS habilita el servicio HTTP en el router ,  este servicio es usado por el router para permitir al usuario accesar el GUI del router mediante un "browser" , normalmente se usa CCP (Cisco Configuration Profesional) .

Lo recomendable es deshabilitar el servicio HTTP y habilitar el modo seguro con HTTPS , o deshabilitar el servicio del todo en caso que no se desee usar el GUI.

Comandos:

Deshabilitar HTTP

no ip http server


Habilitar HTTPS

http secure-server 


Cisco Discovery Protocol (CDP)

Al tener este protocolo habilitado , un atacante puede aprender valiosa información sobre la red y los dispositivos conectados , y crear una topologia basado en el resultado de CDP.

Como medida de seguridad se recomienda deshabilitar CDP de las interfaces conectas a redes no seguras o deshabilitarlo globalmente en el router.


NOTA: En redes en producción hay que ser sumamente cuidadoso a la hora de apagar el servicio de CDP , especialmente si se usan  Teléfonos IP  CISCO , muchos de estos teléfonos usan CDP   para instalarse/registrarse.


Comandos:

Deshabilitar CDP globalmente
Router(config)#no cdp run 

Deshabilitar CDP de una interfaz 

Router(config)#interface fastEthernet 0/0
Router(config-if)#no cdp enable 


Servicios pequeños ( small services ) 

IOS trae habilitado por defecto servicios catalogados como "Small services" los cuales incluyen  el servicio de ICMP para protocolos TCP/UDP. Se podría decir que es un ping a nivel de la capa de transporte. 

Por ejemplo podríamos hacer desde una PC:

Telnet x.x.x.x echo 
Telnet x.x.x.x daytime 

Para verificar si el servicio de Telnet esta encendido  y el segundo comando para verificar la hora del sistema. 

Los comandos para deshabilitar estos servicios son los siguientes:

R1(config)# no service tcp-small-servers
R1(config)# no service udp-small-servers

Estos servicios vienen deshabilitados por defecto en versiones posteriores a la 11.3


Se puede encontrar mas información de estos  servicios en el siguiente link:


Protocolo Finger 

La función de este protocolo es proveer a la  interfaz  un nombre y "Figer programs" para la red 

Se deshabilita con el siguiente comando:

 no service finger


Servicio BOOTP 

 Es un protocolo de red UDP utilizado por los clientes de red para obtener su dirección IP automáticamente. Normalmente se realiza en el proceso de arranque de los ordenadores o del sistema operativo. Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema operativo avanzado

Se deshabilita con el siguiente comando:

no ip bootp serve



Para mas información de los servicios por defecto habilitados por defecto en el IOS , puede revisar el siguiente documento. 


Espero sea de ayuda

- Randy - 

lunes, 1 de diciembre de 2014

Resolucion de nombres con DNS



Domain Name System (DNS) define un protocolo extensamente útil a nivel mundial.

Normalmente dentro de una compañía, se utilizan al menos 2 servidores de DNS , cada uno capaz de resolver os nombres de los Host  internos de la compañía.

Cuando ocurren problemas con los host , normalmente se revisan la configuración de DNS y verificar el servidor DNS en uso. Esto es posible con el comando “nslookup” en Windows. 
Ejemplos:

C:\Users\User>nslookup
Default Server:  google-public-dns-a.google.com
Address:  2001:4860:4860::8888


En los dispositivos IOS de Cisco (Router y Switches ) el comando para configurar como el dispositivo va a resolver nombres a IPs en modo global es "ip name-server server-IP".
Ejemplo: ip name-server 8.8.8.8

Estáticamente se pueden configurar nombres asociados a IPs en los IOS   , utilize el comando “ip host name x.x.x.x”
Ejemplo: ip host google  8.8.8.8

Para que el router use esta base local , primero debemos deshabilitar las búsquedas externas de DNS con el comando “ ip domain-lookup”
El comando “ip domain-lookup” viene habilitado por defecto.

Espero sea de ayuda


-          - Randy -

jueves, 27 de noviembre de 2014

Configurando Routers y ASAs para sopotar DHCP


DHCP (Dynamic Host Configuration Protocol)  es un protocolo muy común.

DHCP tiene múltiples ventajas sobre las configuraciones manuales o estáticas.

La configuración de la red el host la obtiene mediante un servidor de DHCP , dando como resultado la configuración IP de los ordenadores es controlada por el personal de IT, simplificando el troubleshooting en caso de fallas.  

DHCP permite asignar las IPs de manera estática , pero normalmente se asigna temporalmente. Haciendo su uso más eficiente en la red.

Otra ventaja del protocolo DHCP es la movilidad , por ejemplo cuando un usuario se mueve a una nueva ubicación: otra oficina , un café, etc , el dispositivo se puede conectar a la red WI-FI y obtener una nueva IP mediante DHCP.

En algunas empresas ,  el router reenvía las peticiones a un servidor DHCP centralizado (ip helper-address), en otros casos el router actual como servidor DHCP.

El proceso de liberar una IP mediante DHCP (lease an IP) utiliza los siguientes 4 mensajes (DORA)

Descubrimiento (Discover): Enviada desde el cliente, esperando encontrar algún servidor DHCP
Ofrecimiento (Offer): Enviada por el servidor DHCP , ofreciendo una dirección  IP al cliente.

Solicitud (Request): Enviada por el cliente , preguntando al servidor por una IP disponible de la lista anteriormente enviada por el servidor.

Reconocimiento (Acknowledgment): Enviada por el servidor para assignar la IP , la mascara , la ruta por defecto y el servidor DNS al cliente.  


Soportando DHCP para redes remotas con “DHCP RELAY”

Muchas compañías tienen un par de servidores DHCP centralizados, los routers necesitan saber como reenviar las peticiones de DHCP que reciben de los clientes a esos servidores. Para hacer esto posible se necesita del comando “ip helper-address”

Este comando le dice al router que haga lo siguiente para la petición de DHCP

1.       Las peticiones de DHCP de los clientes vienen con una IP destino de  255.255.255.255
2.       El router cambia el origen del paquete por la IP de su interface en la que el paquete ingreso.
3.       El router cambia la IP destino del paquete por la del servidor DHCP previamente configurado.
4.       El router envía el paquete al servidor DHCP

Los pasos para configurar DHCP en IOS y ASA son los siguientes.

1.       Excluir las direcciones IP que no queremos asignar a los clientes.
2.        Crear un pool DHCP de IPs  el cual debe contener un rango de IPs , mascara , ruta por defecto , servidores DNS y dominios.

Ejemplo de la configuración de DHCP en IOS

Router(config)#ip dhcp  excluded-address 192.168.1.1 192.168.1.10
Router(config)#ip dhcp pool TEST
  Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.1.1
Router(dhcp-config)#dns-server 4.2.2.2
Router(dhcp-config)# domain-name mydomain.com

Configuration de IP-relay on IOS

Router(config)#ip dhcp relay information trust-all
Router(config)#interface fastethernet x/x
Router(config)#IP helper-address x.x.x.x

Configuration de DHCP para ASA

Creamos un pool de direcciones y lo habilitamos en una interface

dhcpd address 192.168.1.5-192.168.1.7 outside


Asignamos los valores de DNS y WINS
dhcpd dns 192.168.0.1
dhcpd wins 172.0.0.1

Configuramos el tiempo antes que la IP expire en segundos y lo habilitamos en la interface.
dhcpd lease 3600
dhcpd enable outside
 
 
Configuration de DHCP-Relay para ASA

Configuramos la IP del servidor DHCP y la interface a la que pertenece

dhcprelay server 198.51.100.2 Outside
 
Habilitamos las interfaces en las que seran recibidas las peticiones de DHCP



dhcprelay enable inside                                    

Opcionalmente indicamos al ASA que el tambien debe obtener su IP mediante DHCP

dhcprelay setroute inside      

 
 
Algunos comandos que nos pueden servir para troublshotear DHCP en caso de problemas
En el caso del IOS:

·         show ip dhcp binding: Muestra una lista de las IPs asigandas .
·         show ip dhcp pool [poolname]: Muestra una lista de las IPs configuradas en el Pool , el numero de IPs usadas y disponibles. show ip dhcp server statistics: Lists DHCP server statistics
·         Show ip dhcp conflicto : lista si hay alguna IP conflictiva(duplicada) en la red.

En el ASA tenemos  los siguientes comandos :

 debug dhcpd event
debug dhcpd packet
show dhcpd statistics
show dhcpd binding 



Espero sea de ayuda

-  Randy -