viernes, 15 de junio de 2012

ACL entre 2 hosts de dos redes


Se nos plantea el caso de que un proveedor monta una red en las instalaciones de nuestra empresa. Por motivos técnicos y de seguridad no queremos acceder a su red ni que ellos accedan a la nuestra red. 

Se necesita que un único ordenador de nuestra empresa comparta datos con un único ordenador de la red del proveedor, a través de ciertos puertos. También nos sale la necesidad que si tenemos un problema el proveedor pueda abrir un túnel desde el exterior y poder acceder únicamente a su red, este caso a un único ordenador de su red, y desde este que acceda al resto.

Se configuran 2 Vlan (NIVEL 2):

- vlan EMPRESA
- vlan PROVEEDOR

Se asigna IP a las dos vlan (NIVEL 3) y hacemos que nuestro Cisco 3750 sea nuestra puerta de enlace principal

- vlan EMPRESA 10.10.10.1 /24
- vlan PROVEEDOR: 10.20.30.1 / 24

El escenario sería algo parecido a lo siguiente:


11.11.20.20 : IP que le da nuestro FW al abrir el tunel.
10.20.30.11: Servidor del Proveedor
10.10.10.10: Servidor de nuestra empresa. 

Las máquinas de la red del proveedor deben estar en puertos de switch de la Vlan PROVEEDOR y nuestros hosts en puertos de la vlan EMPRESA. El 3750 nos hará el nivel 3 para que se enruten las 2 redes.

De la explicación de abajo no hay que tener presente que el número que hay al principio de la línea, es el número de línea y en función a la ACL puede variar.

Configure terminal
IP access-list Extended PERMIT_PROVEEDOR

Explicación: Definimos una lista de acceso extendida.

2 permit tcp host 10.20.30.11 host 11.11.20.20 established

Explicación: Esta línea únicamente permite que se establezcan conexiones contra el FW (a través del cliente VPN).
   
10 permit icmp host 10.20.30.11 host 10.10.10.10 

Explicación: Permite hacer ping del servidor del PROVEEDOR a nuestro servidor (10.10.10.10)

30 permit tcp host 10.20.30.11 host 10.10.10.10 eq ftp ftp-data 

Explicación: Permite conectar desde el servidor del PROVEEDOR a través de FTP a nuestro servidor
    
50 permit tcp host 10.20.30.11 host 10.10.10.10 eq 42511

Explicación: Permite conecta por el puerto 42511 del servidor del PROVEEDOR a nuestro servidor (10.10.10.10)

70 permit tcp host 10.20.30.11 host 10.10.10.10 eq 42508 

Explicación: Permite conecta por el puerto  42508  del servidor del PROVEEDOR a nuestro servidor (10.10.10.10)
   
90 deny ip any any 

Explicación: Deniega el resto de tráfico.

Con lo que hemos hecho evitamos que el tráfico de la vlan de PROVEEDORES salga de su red, limitando a lo que hemos autorizado en la ACL. Nosotros llegaríamos pero como no sabe devolverlo es lo mismo que tenerla inaccesible.

Para ver todas las ACL:  "sh access-lists" , 

Para ver una única ACL: "sh access-lists PERMIT_PROVEEDOR"

Este comando también nos da una información muy valiosa, que son los "Match", el numero al final de cada línea, que son las veces que se esta aplicando esa línea.

 90 deny ip any any (130205 matches)


Para añadir nuevas reglas:

configure terminal
ip access-list extended PROVEEDOR

Por ejemplo que la ip 10.11.12.13 pueda acceder a 10.20.30.11 y la posicionamos en la línea 3:

3 permit ip host 10.20.30.11 host 10.11.12.13

Para eliminar una línea de las ACL

configure terminal
no "número de línea"

*****************************************************************************
Esta claro que hay que asociar la ACL a la VLAN PROVEEDOR


!
interface Vlan199
 description Vlan199PROVEEDOR
 ip address 10.20.30.1 255.255.255.0
 ip access-group PERMIT_PROVEEDOR in
!


Si queremos ver el log de los accesos a una regla deberíamos añadir "log" al final de la regla:

50 permit tcp host 10.20.30.11 host 10.10.10.10 eq 42511 log

Esto no debe dejarse de manera definitiva por el incremento de gestión extra que puede aportar.

Es importante configurar la Vlan a nivel 2 por cada Switch por el que deba comunicarse nuestro hosts contra el que tengamos de gateway de Vlans (nuestra puerta de enlace).

jueves, 31 de mayo de 2012

Copiar - Guardar configuración - Putty

Siempre llega el momento de guardar la configuración del estado del trabajo realizado, se puede hacer de varias maneras pero solemos usar la que nos sea más rápida y fácil.

Voy a explicar una de las más sencillas y útiles que podemos usar.

Para ello usaremos el Putty, que es gratuito y no necesita instalación, para conectarnos al host.


Le damos con el botón derecho del ratón sobre el logo del Putty para entra en las opciones de configuración. Escojemos "Change setting..."


Nos vamos al submenu de "Logging"


En "Log file name: " elegiremos el fichero txt donde queremos guardar los datos visualizados. En este caso he puesto "SW01-test2.log"

Salimos aplicando los cambios.

Ahora todo lo que hagamos en la sesión abierta quedará guardado en el fichero que hemos seleccionado.

Para evitar que nos vaya pidiendo el típico "--More--" ya que lo que queremos es copiar todo lo que queremos consultar:


Podemos poner el comando "term len 0" con lo que le decimos que no pare en las visualizaciones. Si en lugar del 0 ponemos un número, esté será el número de líneas que nos mostrará antes de pedirnos "--More--"

Una vez preparado esto, para irnos tranquilos de no dejarnos casi nada por guardar yo ejecutaría los siguientes comandos:

sh ver

sh run

sh invent

sh cdp nei

sh int status


miércoles, 16 de mayo de 2012

Ejemplo Trunk y Port-channel


Se que hace tiempo que no publico nada, ando liado en un par de proyectos.

Me estoy encontrando con muchos cambios y se que me será difícil recordarlos todos, así que de vez en cuando iré poniendo configuraciones de ejemplo que tengo en un entorno real y se pueden aplicar en más sitios.


Configuración Ejemplo para un Storage NAS.


Esta NAS tiene 2 vias de comunicación (3 puertos agrupados +1 puerto gestión) 3 puertos agrupados para aumentar el caudal y un puerto de Control.


Los 3 puertos agrupados podrían ser de la siguiente manera:


interface GigabitEthernet0/X
 description Storage_NAS
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 10,100,200
 switchport mode trunk
 spanning-tree portfast trunk
 switchport nonegotiate
 storm-control broadcast level 4.00
 storm-control multicast level 4.00
 channel-group 55 mode active
!


La agrupación tiene esta definición:


!
interface Port-channel55
 description Storage_NAS
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 10,100,200
 switchport mode trunk
!


Si no quisiésemos definir las vlan que tienen acceso a los puertos y dejar que pase todo sería:


!
interface GigabitEthernet0/X
 description PASAnTodasVlans
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 spanning-tree portfast trunk
 storm-control broadcast level 4.00
 storm-control multicast level 4.00
 channel-group 55 mode active
!


También habría que modificar la creacion del channel-group con esos datos.


El puerto de control se podría quedar así:


!
interface GigabitEthernet0/x
 description Standby_Backup_NAS
 switchport access vlan 11
 switchport mode access
 switchport nonegotiate
 spanning-tree portfast
!


La vlan 11 está definida como gestión.


Esta configuracíon normalmente está duplicada en otro switch y es la controladará NAS la que se encarga de hacer el Activo/Pasivo.


En algunos CPD extrenos no dejan poner modo Trunk sino que hay que definir las Vlans que deben tener acceso.


Para los trunk también se suelen poner en conexiones entre Switch o Cabinas de servidores.


Si queremos ver el estado de la unión de puertos :"sh etherchannel summary"



SU: es que lo tenemos levantado.
P: Son los puertos que pertenecen a ese etherchannel.



Para que lo que he comentado en este post funcione las máquinas que se conectan en los "trunk" deben tener definido en el hosts/servidor/pc a que vlan pertence, normalmente se hace en la tarjeta de red. Cada fabricante tiene su manera de hacerlo y no todas las tarjetas de red lo soportan.








Para VMWare en el que tenemos unos cuantos servidores en las mismas tarjetas, sería algo parecido a esto:








Configuración testeada en Cisco 2960.