Virtual Private Network (VPN)

Una VPN es una red privada que conecta interlocutores a través de redes públicas (por ejemplo Internet).

No garantiza confidencialidad, pero sí métodos criptográficos y autenticidad de datos. Para proporcionar confidencialidad se puede unir con IPSec (IP security) que sí proporciona esta característica junto con autenticidad e integridad.

 

IPSEC (IP Security)

Es un protocolo seguro de la capa de Red, contenido en el estándar 2401, es del IETF del 1999. Proporciona seguridad para IP y los protocolos de capas superiores. Provee control de acceso, integridad, rechazo o reenvio de paquetes, confidencialidad, autenticación y negociación de compresión IP. Es independiente de los algoritmos criptográficos, contempla su implementación en IPv4 e IPv6.

La arquitectura de IPSEC estácompuesta por: protocolos de seguridad (AH – Authentication Header y ESP – Encapsulation Security Payload), Asociaciones de seguridad (SA), IKE (Internet Key Exchange) y algoritmos de autenticación y cifrado.

 

Existen dos tipo de tecnologías VPN:

VPN DE ACCESO REMOTO

Se caracteriza porque los usuarios remotos deben tener acceso de banda ancha, el usuario establece un túnel VPN a través de un proveedor de servicios de Internet, el túnel se establece solo cuando se necesita y los parámetros VPN se negocian dinámicamente.

VPN SITE-TO-SITE

Son configuradas entre dos dispositivos compatibles en los extremos de la conexión, provee conectividad a múltiples redes en ambos lados de la comunicación y en cada extremo del túnel actúa como una puerta de enlace a las diferentes redes.

 

 

Práctica: VPN Site-to-Site

Capt22ura

Primero habría que realizar una lista de control de acceso poniendo como dirección de origen la red en la que estamos y la de destino la red a la que queremos conectarnos y después configurar una política IKE en el router R1, se identifican por números cuanto más bajo más prioridad tiene:

R1(config)# Access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

R1(config)# crypto isakmp policy 10

R1(config-isakmp)# authentification pre-share

R1(config-isakmp)# group 2

R1(config-isakmp)# encryption aes

R1(config-isakmp)# exit

R1(config)# crypto isakmp key miclavevpn address 10.2.2.2

 Esta dirección última es la dirección serial del router de destino. Ahora una vez declaradas las políticas IKE, vamos a configurar las propiedades de IPSec en R1:

R1(config)# crypto ipsec transform-set SETVPN esp-3des esp-sha-hmac

R1(config)# crypto map MAPVPN 10 ipsec-isakmp

R1(config-crypto-map)# description VPN connection to R3

R1(config-crypto-map)# set peer 10.2.2.2

R1(config-crypto-map)# set transform-set SETVPN

 R1(config-crypto-map)# match address 101

R1(config-crypto-map)# exit

 Ahora pasamos a configurar el crypto-map en la interfaz que va a R3:

R1(config)# interface serial0/0

R1(config-if)# crypto map MAPVPN

 

Para finalizar lo único que hace falta es establecer el mismo procedimiento en sentido contrario, en nuestro caso de R3 a R1:

R3(config)# Access-list 101 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255

R3(config)# crypto isakmp policy 10

R3(config-isakmp)# authentification pre-share

R3(config-isakmp)# group 2

R3(config-isakmp)# encryption aes

R3(config-isakmp)# exit

R3(config)# crypto isakmp key miclavevpn address 10.1.1.2

 Esta dirección última es la dirección serial del router de destino. Ahora una vez declarado el IPSec, vamos a configurar las propiedades de isakmp en R3:

R3(config)# crypto ipsec transform-set SETVPN esp-3des esp-sha-hmac

R3(config)# crypto map MAPVPN 10 ipsec-isakmp

R3(config-crypto-map)# description VPN connection to R1

R3(config-crypto-map)# set peer 10.1.1.2

R3(config-crypto-map)# set transform-set SETVPN

 R3(config-crypto-map)# match address 101

R3(config-crypto-map)# exit

 Ahora pasamos a configurar el crypto-map en la interfaz que va a R3

R3(config)# interface serial0/0

R3(config-if)# crypto map MAPVPN

 

Por ultimo, para comprobar el correcto funcionamiento podemos usar el comando: show crypto ipsec sa

 

 

 

 

 

 

 

 

 

 

Anuncios

Autenticación, autorización y auditoria

Buenos días, en este post quería comentar de qué se trata el protocolo AAA (Autenticación, Autorización y Auditoría) y además adjuntar una pequeña práctica en la que se emplea este protocolo de forma sencilla.

 

¿Qué es el protocolo AAA?

Se trata de un conjunto de protocolos que satisfacen estas tres características: autenticación, autorización y auditoria. Entre estos protocolos se encuentran: TACACS+ y RADIUS.

TACACS+ (terminal Access control access control server plus)

Está soportado por Cisco, es multiprotocolo, TCP, tiene paquete completamente cifrado, separa autenticación y autorización (por tanto hay mayor modularidad), desafío bidireccional y autorización comandos del router a usuarios y grupos.

RADIUS (remote dial-in user services)

Es un estándar abierto IRFC, UDP, no soporta ARA ni NetBEVI, tiene contraseña cifrada, no autoriza comandos, combina autorización y autenticación pero separa auditoría (por tanto hay menor flexibilidad), desafío unidireccional y respuesta desde el servidor RADIUS al cliente RADIUS.

 

Autenticación

Los usuarios y administradores deben probar que son quienes dicen ser. La autenticación puede establecerse por medio de combinaciones de usuario y contraseña, preguntas de desafío y respuesta, tarjetas token y otros métodos. Se utilizan dos tipos de autenticación en los router Cisco:

  • Local: Usa una base de datos local para la autenticación. Este método almacena los nombres de usuario y sus correspondientes contraseñas localmente en el router Cisco, y los usuarios se autentican en la base de datos local. Es ideal para redes pequeñas.
  • Basada en Servidor: Usa un recurso externo de servidor de base de datos que utiliza los protocolos RADIUS o TACACS+. Este tipo de autenticación es preferible para redes grandes.

Autorización

Una vez el usuario ha sido autenticado, los servicios de autorización determinan los recursos y operaciones a los que el usuario tiene acceso.

Auditoria

Registran lo que el usuario hace, incluyendo los recursos a los que accede, la cantidad de tiempo que se mantiene y cualquier cambio que se haga. Recolecta y reporta datos (comandos, fecha, hora, nombre, número de paquetes, número de bytes).

 

Práctica: AAA

Captuasdfra

Primero vamos a configurar por consola a R1:

R1(config)# username Admin1 secret admin1pa55

R1(config)# aaa new-model

R1(config)# aaa authentication login default local

R1(config)# line console 0

R1(config-con)# login authentication default

R1(config-con)#exit

 Ahora voy a configurar el router R1 pero esta vez por telnet:

R1(config)# aaa authentication login TELNET local

R1(config)# line vty 0 4

R1(config-con)# login authentication TELNET

R1(config-con)#exit

 A continuación vamos a realizar que la autentificación sea a través de un servidor y por tanto no sea local, para ello vamos a probar con el servidor TACACS+ que se encuentra en la dirección 192.168.2.2:

R2(config)# username Admin secret adminpa55

R2(config)# tacacs-server host 192.168.2.2

R2(config)# tacacs-server key tacacspass

R2(config)# aaa new-model

R2(config)# aaa authentication login default group tacacs+ local

R2(config)# line console 0

R2(config-con)# login authentication default

 Finalmente, decir que del mismo modo que se ha operado para el servidor TACACS+ se podría hacer con el servidor RADIUS:

R3(config)# username Admin secret adminpa55

R3(config)# radius-server host 192.168.3.2

R3(config)# radius-server key radiuspass

R3(config)# aaa new-model

R3(config)# aaa authentication login default group radius local

R3(config)# line console 0

R3(config-con)# login authentication default

Listas de Control de Acceso

Hace una semana empecé a escribir este post pero hoy ya lo he acabado, así que espero que os guste, trata sobre qué son las listas de acceso y adjunto una práctica sobre ella.

¿Qué es una lista de control de acceso o ACL?

Son listas secuenciales que dan permiso o deniegan direcciones IP o protocolos en una red y se aplican a una interfaz del router. Su utilización permite controlar y limitar el tráfico, controlar áreas de red y analizar hosts. Operan en la capa de Red y de Transporte.

La aceptación y rechazo se pueden basar en dirección origen, dirección destino, protocolo de capa superior y número de puerto. Las ACL no actúan sobre paquetes que se originan en el router dónde se encuentran sino sobre los paquetes que entran o salen. ACL pueden controlar la mayoría de protocolos en un router Cisco. Sólo se puede especificar una ACL por protocolo y por interfaz.

El lugar dónde se encuentre una ACL influye en la reducción del tráfico innecesario: las ACL extendidas se deben colocar lo más cerca posible del origen del tráfico denegado y las ACL estándar lo más cerca posible del destino.

Existen varios tipos de listas de control de acceso, aunque los más importantes son los dos primeros:

  • Estándar

Permiten o deniegan el tráfico desde una IP de origen. No importa el destino ni los puertos. Como número identificativo usan entre 1 y 99.

  • Extendida

Filtran por tipo de protocolo, IP de origen, IP de destino, puerto de origen, puerto de destino, información adicional,  puertos TCP UDP. Como número identificativo usan entre 101 y 199.

 

  • Nombradas: Se utiliza una cadena alfanumérica en lugar de números del 1- 199. Se suelen usar cuando todos los identificativos han sido utilizados.

Estos son tipos de listas de control de acceso complejas:

  • Dinámicas: Permite tráfico por un tiempo, producen errores por inactividad y superar el tiempo de espera.
  • Reflexivas: Sólo entradas temporales, sesiones de forma dinámica y sólo lleva a cabo la conexión si sólo es iniciado en una dirección. Usan los protocolos UDP e ICMP.
  • Basadas en tiempo: Similar a las ACL extendida con control de acceso basado en tiempo, rango horario, identifica el rango con nombre y se remite a él con una función, se puede poner restricciones temporales.

 

 Práctica: LISTA CONTROL ACCESO BÁSICAS (ACL)

Capt22ura

Primero vamos a hacer una lista estándar:

R3(config)# ip Access-list standard MIESTANDAR

R3(config-acl)# deny 192.168.11.0 0.0.0.255

R3(config-acl)# permit any

R3(config-acl)# exit

R3(config)# interface serial 0/0

R3(config-if)# ip acces-group MIESTANDAR in

R3(config-if)# end

 Una vez hecho esto vamos a probar a realizar una lista de control de acceso extendida:

R3(config)# ip Access-list extended MIEXTENDIDA

R3(config-acl)# deny ip 192.168.10.0 0.0.0.255 host 209.168.200.225

R3(config-acl)# permit ip any any

R3(config-acl)# exit

R3(config)# interface serial 0/0

R3(config-if)# ip acces-group MIEXTENDIDA out

R3(config-if)# end

 Finalmente, voy a realizar una lista de control de acceso estándar para controlar las líneas telnet:

R3(config)# ip Access-list standard MIOTRAESTANDAR

R3(config-acl)# permit 10.2.2.0 0.0.0.3

R3(config-acl)# permit 192.168.30.0 0.0.0.255

R3(config-acl)# deny any

R3(config-acl)# exit

R3(config)# line vty 0 4

R3(config-if)# acces-class MIOTRAESTANDAR in

R3(config-if)# end

 

Finalmente decir que cuando incluimos la lista de control de acceso a una interfaz o a una línea telnet o de consola introduzco el comando “in” o “out”. Usamos “in” si el tráfico o paquetes son entrantes, y en caso contrario “out” cuando los paquetes o tráfico es saliente.

¡Un saludo!

¿QUÉ ES LDAP?

¡Buenas tardes!

Esta semana he tratado la herramienta LDAP. LDAP viene de las siglas de “Lighweight Directory Access Protocol”, es una base de datos jerárquica orientada a objetos, dónde las clases no tienen métodos, sólo atributos, a la cual se realizan consultas de registros con usuarios y perfiles.

Las características de LDAP frente a otros servidores de directorios como X.500, son las siguientes:

  • Permite varias peticiones en curso
  • Existe un formato para exportar información entre servidores de directorios, conocida como LDIF
  • Tiene autenticación muy rápida, y se puede utilizar Kerberos en este proceso.
  • El acceso de LDAP mediante JAVA, se realiza por JNDI (“Java Naming Directory Interface”). Es una sintaxis propia, diferente a SQL.

El proceso de configuración que he seguido para instalar el servicio OpenLDAP es siguiendo una serie de pasos:

Comenzamos instalando el servidor LDAP en nuestra máquina servidora con: apt-get install slapd ldap-utils.

Cuando hayamos puesto la clave que deseemos, configuramos el servidor LDAP con: dpkg-reconfigure slapd Cuando nos pregunten si deseamos omitir la configuración de OpenLDAP, decimos que NO, después introduciremos el dominio DNS que deseemos (por ejemplo micasa.edu), el motor de base de datos yo he seleccionado el que está por defecto el HDB porque es totalmente jerárquica, al pedirnos si puede borrar la base de datos al ser la primera vez le podemos dar que (aunque habría que dar que NO si ya está hecha, ya que sino se elimina).

Cuando nos pide si queremos mover otra base de datos, en caso de tener otra dar que sí, en mi caso como quiero empezar una desde cero, pues le doy a NO. Finalmente, dejamos la utlima opción por defecto, ya que NO queremos utilizar el protocolo LDAPv2, vamos a utilizar el protocolo LDAPv3.

Creamos un archivo ldif para crear usuarios y grupos: por ejemplo usergroup.ldif

dn: ou=personas,dc=casa,dc=edu
objectClass: organizationalUnit
ou: personas

dn: ou=grupos,dc=cum,dc=edu
objectClass: organizationalUnit
ou: grupos

* en dc ponemos casa y edu, porque se trata del dominio DNS: miequipo.casa.edu

A continuación, introducimos el comando en el terminal: ldapadd -x -D cn=admin,dc=casa,dc=edu -W -f usergroup.ldif  Nos pedirá una contraseña y si la introducimos correctamente, aparecerán añadidas 2 nuevas entradas en el directorio LDAP.

CONFIGURACIÓN VISORES LDAP

Tenemos dos importantes visores, a saber:

PHPLDAPADMIN

Instalamos el paquete siguiente: apt-get install phpldapadmin

Trae como servidor por defecto “example.com”, para cambiarlo nos metemos en el archivo de configuración y cambiamos las líneas “dc=example,dc=com” por “dc=cum,dc=edu”. Para modificar el archivo introducimos: nano /etc/phpldapadmin/config.php

JXPLORER

Nos descargamos de la página oficial de JXplorer, y cuando tengamos el paquete en nuestra carpeta, le damos permisos y ejecutamos del siguiente modo:

  • ls -l jxplorer-3.3.02-linux-installer.run
  • chmod a+x jxplorer-3.3.02-linux-installer.run
  • ./jxplorer-3.3.02-linux-installer.run
  • cd /opt/jxplorer/
  • ./jxplorer.sh

CONFIGURACIÓN FRAME-RELAY

Frame-Relay es una técnica de comunicación mediante retransmisión de tramas para redes de circuito virtual. Se diseñó a finales de los 80 y principios de los 90. Opera en el nivel físico y de enlace, ofrece mayores velocidades y no es tan cara como otras tecnologías WAN. Sólo tiene detección de errores en el nivel de enlace, no hay control de flujo ni control de errores. Tiene un tamaño de trama de 9000 bytes. Se diseñó para ofrecer una rápida transmisión para medios fiables y además, ofrece control de congestión y calidad de servicio (QoS).

A continuación vamos a ver como configurar esta tecnología en una red de tres maneras distintas:

  •  Configuración de Frame Relay como una red Broadcast.

Para este ejemplo he utilizado dos routers con un conmutador Frame-Relay. El primer paso es configurar este dispositivo. Por el puerto 1 de entrada tenemos el camino DLCI 102, y como salida por el puerto 2 el camino DLCI 201.

Configuración Frame-Relay Broadcast

Configuración Frame-Relay Broadcast

A continuación, configuramos los dos routers de la siguiente manera:

ROUTER R1

interface Serial1/0

  • ip address 10.10.10.1 255.255.255.0
  • encapsulation frame-relay
  • frame-relay lmi-type ansi
  • ip ospf network broadcast
  • frame-relay map ip 10.10.10.2 102 broadcast
  • frame-relay interface-dlci 102

router ospf 1

  • network 10.10.10.0 0.0.0.255 area 0

ROUTER R2

interface Serial1/0

  • ip address 10.10.10.2 255.255.255.0
  • encapsulation frame-relay
  • frame-relay lmi-type ansi
  • ip ospf network broadcast
  • frame-relay map ip 10.10.10.1 201 broadcast
  • frame-relay interface-dlci 201

router ospf 1

  • network 10.10.10.0 0.0.0.255 area 0

Como vemos, hemos configurado OSPF para el encaminamiento, y dentro del Serial correspondiente añadimos los comandos para Frame-Relay. Una forma de probar que funciona correctamente es con el comando:

#debug frame-relay packet interface Serial1/0

  • Configuración a través de subinterfaces punto a punto 

Utilizamos la misma configuración que en broadcast, y los mismos caminos en el conmutador Frame-Relay. Pero varía los comandos introducidos en los routers R1 y R2, que ahora serían de la siguiente manera:

ROUTER R1

interface Serial1/0

  • encapsulation frame-relay
  • frame-relay lmi-type ansi

interface Serial1/0.1 point-to-point

  • ip address 10.10.10.1 255.255.255.0
  • frame-relay interface-dlci 102

router ospf 1

  • network 10.10.10.0 0.0.0.255 area 0

ROUTER R2

interface Serial1/0

  • encapsulation frame-relay
  • frame-relay lmi-type ansi

interface Serial1/0.1 point-to-point

  • ip address 10.10.10.2 255.255.255.0
  • frame-relay interface-dlci 201

router ospf 1

  • network 10.10.10.0 0.0.0.255 area 0
  • Configuración a través de subinterfaces punto-multipunto

En este ejemplo vamos a utilizar 3 routers en lugar de 2. Y la configuración del conmutador Frame-Relay cambia con respecto al anterior. Por el puerto 11 de entrada tenemos el camino DLCI 102, y como salida por el puerto 22 el camino DLCI 201. Por el mismo puerto 11 tambien tenemos el camino de entrada DLCI 103, y como salida el puerto 33 con camino DLCI 301.

Configuración Frame-Relay Punto-Multipunto

Configuración Frame-Relay Punto-Multipunto

La configuración de los routers también varía, siendo ahora de la siguiente manera:

ROUTER R1

interface Serial1/0

  • encapsulation frame-relay
  • frame-relay lmi-type ansi

interface Serial1/0.1 multipoint

  • ip address 10.10.10.1 255.255.255.0
  • ip ospf network broadcast
  • frame-relay map ip 10.10.10.2 102 broadcast

interface Serial1/0.2 multipoint

  • ip address 11.11.11.1 255.255.255.0
  • ip ospf network broadcast
  • frame-relay map ip 11.11.11.2 103 broadcast

router ospf 1

  • network 10.10.10.0 0.0.0.255 area 0
  • network 11.11.11.0 0.0.0.255 area 0

ROUTER R2

interface Serial1/0

  • ip address 10.10.10.2 255.255.255.0
  • encapsulation frame-relay
  • ip ospf network broadcast
  • frame-relay map ip 10.10.10.1 201 broadcast
  • frame-relay lmi-type ansi

router ospf 1

  • network 10.10.10.0 0.0.0.255 area 0

ROUTER R3

interface Serial1/0

  • ip address 11.11.11.2 255.255.255.0
  • encapsulation frame-relay
  • ip ospf network broadcast
  • frame-relay map ip 11.11.11.1 301 broadcast
  • frame-relay lmi-type ansi

router ospf 1

  • network 11.11.11.0 0.0.0.255 area 0