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 - 

jueves, 18 de diciembre de 2014

Listas de acceso IPv4 ( ACL)


 Las listas de acceso tienen muchas funciones dentro de los Routers , Switches y dispositivos de Seguridad  (QoS, VPN , PBR…)  , pero el más común es para filtrar paquetes.

Las ACLs permiten a los ingenieros una manera de identificar los paquetes en varias formas (IP, TCP, UDP) o por origen y destino ya sea por IP o puerto.  

Desde el punto de vista lógico, las listas de acceso pueden ser aplicadas para los paquetes entrantes a la interfaz o para los paquetes salientes.

Una vez el router tenga las listas de acceso configuradas inspeccionara cada paquete y dependiendo de la regla de la lista determinara si deja pasar o no a ese paquete.

Las listas de acceso solo permiten 2 acciones, permitir y denegar.

ACLs usan  “first-match logic”, esto significa que una vez un paquete  coincide con una línea del ACL , el router tomara la acción y no buscara por mas entradas en la lista de acceso.

Si un paquete no coincide con ningún ACL , el paquete es descartado. La razón es que todas las ACL tienen una denegación implícita al final.


Tipos de listas de acceso

Cisco IOS contiene las siguientes listas de acceso :
·         Estándar numeradas (1–99)
·         Extendidas numeradas  (100–199) 
·         Números adicionales (1300–1999  estándar, 2000–2699 extendidas)
·         ACL nombradas

Listas de acceso Estándar

Estándar ACL solo filtra los paquetes por su dirección de origen , utiliza numero en lugar de nombres.

Access-list {1-99 | 1300-1999} {permit | deny} matching-parameters

Ejemplo:

Access-list 5 permit 192.168.2.0 255.255.255.0
Access-list 5 deny   192.168.3.0 255.255.255.0



Mascaras Comodin “Wildcard Masks” 0.0.0.255, 0.0.255.255, 0.255.255.255

En los routers para identificar las redes , o los hosts de de esas redes que necesitamos filtrar es necesario hacer el proceso de subneteo mediante estas mascaras.

El valor de un “Wildcard mask” puede ser obtenido , substrayendo la mascara actual a la mascara de Broadcast 255.255.255.255

Por ejemplo si queremos filtrar la subred 192.168.1.0 255.255.255.0  , restamos la mascara original a la mascara de Broadcast , dándonos como resultado la mascara comodín 0.0.0.255

Otro ejemplo:

Si queremos filtrar la red 172.16.32.0 255.255.248.0 , usaríamos la mascara comodín 0.0.7.255 en nuestra lista de acceso.

Ejemplo:

Access-list 101 permit 172.16.32.0 0.0.7.255 any 


 En algunos casos vamos a necesitar permitir/denegar todo el trafico , con la palabra “any” vamos a ser posible esto dentro del ACL.

Listas de acceso extendidas

Muy similar a las listas de acceso estándar, deben ser habilitadas en la interfaz para los paquetes salientes o entrantes. IOS busca secuencial mente y usa la lógica de “first-match”.

Las listas de acceso extendidas se diferencian de las estándar , por la gran cantidad de paquetes con diferentes encabezados que permiten filtrar, una sola lista de acceso extendida puede filtrar múltiples puertos de aplicaciones en TCP/UDP .

Ejemplos

Access-list 101 deny icmp any any
Access-list 101 permit tcp eq https any any
Access-list 101 deny udp eq 2436 any any


Listas de Acceso Nombradas

Al igual que las listas de acceso estándar y extendidas, las listas de acceso nombradas son usadas para filtrar paquetes.
Las listas de acceso nombradas tienen 3 diferencias fundamentales en comparación a las anteriores:

•Usan nombres en lugar de números , facilitando el recordar la funcion del ACL
• Usan subcomandos para las ACL , no comandos globales.
• Funciones de edición en la ACL  permiten al usuario eliminar lineas independientes y agregar nuevas lineas a la existente ACL.



Ejemplo de un ACL Nombrada:

Router(config)# ip access-list extended Test
Router(config-ext-nacl)# permit tcp host 10.1.1.2 eq www any
Router(config-ext-nacl)# deny udp host 10.1.1.1 10.1.2.0 0.0.0.255
 Router(config-ext-nacl)# deny ip 10.1.3.0 0.0.0.255 10.1.2.0 0.0.0.255
Router(config-ext-nacl)# deny ip 10.1.2.0 0.0.0.255 10.2.3.0 0.0.0.255
Router(config-ext-nacl)# permit ip any any
Router(config-ext-nacl)# exit
Router(config)# interface fastethernet 0/0

Router(config)# ip access-group test out 



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 -