jueves, 14 de abril de 2011

VPN Roadwarrior con OpenVPN

Una VPN roadwarrior es una VPN de Acceso Remoto, la teoría la puse en la entrada anterior, vamos de frente a la configuración.

Consideraciones preliminares


OpenVPN

Es el software de código abierto que nos permite implementar los diferentes tipos de VPN, de acuerdo a nuestras necesidad mas información aquí:

http://openvpn.net/


Lo instalamos:

# yum -y install openvpn

Configuración:

En el servidor de OpenVPN no te olvides de activar el ip_forwarding.

Edita /etc/sysctl.conf y cambia ip_forwarding a 1 (está normalmente en 0).

Entonces ejecuta:

# sysctl -p

De olvidar lo anterior la vpn no hará ping hacia la red interna!

En el servidor openvpn necesitamos crear una serie de claves y certificados iniciales, para poder autenticar y encriptar la información que transitará desde/hacia el servidor/clientes.

Contamos con una serie de scripts en el directorio /usr/share/easy-rsa los cuales nos ayudarán mucho a ejecutar ésta tarea inicial.

Como primer paso, sugiero copiar ese directorio (easy-rsa) hacia /etc/openvpn y cambiarnos a ese directorio:

# cp -a /usr/share/doc/openvpn*/easy-rsa /etc/openvpn

# cd /etc/openvpn/easy-rsa/2.0

Una vez dentro de éste directorio procedemos a ejecutar los siguientes pasos:

# .vars

# sh clean-all

# sh build-ca

Con ellos lo que haremos es:

* Inicializar variables de ambiente para poder trabajar con los siguientes scripts de shell para generar las variables.

* Inicializamos el directorio de las claves (borrando potenciales archivos viejos).

Primero: Creando el certidicado CA

Procedemos a generar el certificado CA, en el último paso se nos pedirá una serie de información sobre nuestra red/empresa que debemos llenar lo más fielmente posible.

La variable que debemos procurar llenar (no dejar en blanco! es: Common Name. Se refiere al nombre del servidor.

Ejecutamos:

# build-ca


Segundo: Generación del certificado y de la clave de encriptación para el servidor

Siguiente a la generación del Certificado de autoridad, procedemos a crear el certificado del servidor y de su clave de encriptación, ejecutamos:

# sh build-key-server server

En éste paso, también se nos pedirá nuevamente información sobre el certificado propio del servidor. En éste caso por favor, escoger en Common Name un nombre diferente al anteriormente escogido. En mi caso escogí: server

Este paso nos generará dos archivos en el directorio /etc/openvpn/easy-rsa/keys/ los que debemos copiar dentro del mismo servidor en /etc/openvpn, ellos son:

* server.crt
* server.key

Tercero: Generando certificados y claves privadas para los clientes

Cada cliente debe tener su propio certificado y clave de seguridad, para cada cliente que tengamos deberemos repetir el siguiente paso. Los archivos obtenidos debemos copiarlos hacia el directorio /etc/openvpn/ de los clientes.

En el caso de que nuestros clientes sean en windows, debemos copiarlos hacia c:\program files\openvpn\

En nuestro servidor, generamos el certificado y las claves privadas para los clientes, dentro de /etc/openvpn/easy-rsa/

Ejecutamos:

# sh build-key client1

Debemos tener en cuenta que al ejecutar el programa sh build-key, le pasamos como parámetro el nombre del cliente (client1 en el ejemplo anterior) el cual debe ser diferente para cada cliente. En el common name ponemos el nombre del cliente (client1 en éste ejemplo) tal y como le pasamos de parámetro.

Se pueden generar tantas claves como sean necesarias:

# sh build-key client2

# sh build-key client3

Esto nos genera dos claves y certificados más, para client2 y client3, no olvidar en Common Name debemos poner client2 o client3 respectivamente.

Cuarto: Generamos el parámetro Diffie-Hellman

Ejecutamos:

# sh build-dh

Quinto: archivos a copiar al servidor

Hacia el directorio /etc/openvpn del servidor copiamos los siguientes archivos:

* ca.crt
* ca.key
* server.key
* server.crt
* dh1024.pem

Estos archivos están presentes en: /etc/openvpn/easy-rsa/keys

Sexto: Archivos a copiar al cliente

Hacia el directorio /etc/openvpn de cada cliente copiamos los siguientes archivos:

* ca.crt
* clientX.crt

* clientX.key

Tenga en cuenta que X es un número que se corresponde con el cliente (para el cliente 2 sería: client2.crt y client2.key por ejemplo).

Estos archivos están presentes en: /etc/openvpn/easy-rsa/keys del servidor.

Para la configuración en modo roadwarrior las configuraciones del cliente y el servidor varían un poco:

Configuración del servidor:

El archivo /etc/openvpn/server.conf quedará así:


* un push de la ruta hacia la red local interna del servidor. Esa ruta estática permitirá que el road warrior vea a las máquinas de la red interna

* server: Indica el rango de direcciones que se asignará a los clientes que se conecten, deben ser direcciones no similares a las de la red local.

Configuración del cliente:

En el caso del cliente, así quedaría el archivo de configuración, client1.conf:

Si usamos como cliente algún windows el archivo de configuración debe tener la siguiente extensión client1.ovpn.

Servidores VPN

  • Qué es una VPN?
Una VPN (Virtual Private Network o Red Privada Virtual), es la tecnología que nos permite extender una red privada LAN hacía la red mundial WAN, mediante un proceso de encapsulación (tunneling) y en su caso de encriptación, de tal manera que desde cualquier lugar del mundo podremos conectarnos a nuestra red local, y trabajar de manera similar tal como si estuviésemos físicamente dentro de ella, para ello es necesario una conexión a internet.
  • Tipos de VPN
Existen 4 tipos de VPN, las voy a detallar a continuación:
  1. VPN de Acceso Remoto (roadwarrior)

Es quizás el modelo más usado actualmente, y consiste en usuario o proveedores que se conectan con la empresa desde sitios remotos (oficinas comerciales, domicilios, hoteles, aviones preparados, etc.) utilizando Internet como vínculo de acceso. Una vez autentificados tienen un nivel de acceso muy similar al que tienen en la red local de la empresa. Muchas empresas han reemplazado con esta tecnología su infraestructura dial-up (módems y líneas telefónicas).



2. VPN Punto a Punto (site to site)

Este esquema se utiliza para conectar oficinas remotas con la sede central de la organización. El servidor VPN, que posee un vínculo permanente a Internet, acepta las conexiones vía Internet provenientes de los sitios y establece el túnel VPN. Los servidores de las sucursales se conectan a Internet utilizando los servicios de su proveedor local de Internet, típicamente mediante conexiones de banda ancha. Esto permite eliminar los costosos vínculos punto a punto tradicionales, sobre todo en las comunicaciones internacionales. Es más común el siguiente punto, también llamado tecnología de túnel o tunneling.

3. TUNNELING

La técnica de tunneling consiste en encapsular un protocolo de red sobre otro (protocolo de red encapsulador) creando un túnel dentro de una red de computadoras. El establecimiento de dicho túnel se implementa incluyendo una PDU determinada dentro de otra PDU con el objetivo de transmitirla desde un extremo al otro del túnel sin que sea necesaria una interpretación intermedia de la PDU encapsulada. De esta manera se encaminan los paquetes de datos sobre nodos intermedios que son incapaces de ver en claro el contenido de dichos paquetes. El túnel queda definido por los puntos extremos y el protocolo de comunicación empleado, que entre otros, podría ser SSH.

4. VPN over LAN


Este esquema es el menos difundido pero uno de los más poderosos para utilizar dentro de la empresa. Es una variante del tipo "acceso remoto" pero, en vez de utilizar internet como medio de conexión, emplea la misma red LAN de la empresa. Sirve para aislar zonas de servidores dentro de la LAN. También es muy usada para mejorar la seguridad de las redes inalámbricas WIFI.

LANZAMIENTO DE CURSOS CON GNU/LINUX EN TRUJILLO

La empresa RedLinux S.R.L. los invita a participar de los cursos que está lanzando, RedLinux está formada por 4 profesionales, con experiencia en implementación y docencia, a la vez cada uno cuenta con certificaciones reconocidas en el mundo de redes y servidores, como RedHat, CCNA, CCNA SECURITY y LPIC. Contamos también con la infraestructura adecuada: PCS core i3 4GB RAM, Monitores LCD, tarjetas asterisk, telefonos ip y analógicos, atas, etc.

- Linux Enterprise Servers

http://www.redlinux.com.pe/node/22

- Zimbra Collaboration Suite

http://www.redlinux.com.pe/node/23

- Centrales IP con Asterisk

http://www.redlinux.com.pe/node/25

- Alta Disponibilidad y seguridad en Redes

http://www.redlinux.com.pe/node/24

Estos cursos se dictarán por primera vez en la ciudad de Trujillo,y además cuentan con temas super interesantes, manteniendo el mismo nivel que los cursos ofertados en Lima, los cuales tienen precios muy elevados a diferencias de los nuestros. Tengan la seguridad que recibirán un curso de alta calidad.

Esperamos puedan revisar los temarios adjuntos y animarse de participar en ellos. Confiamos en contar con su presencia. Pasen la voz a sus amigos, hay descuentos si se matriculan en grupos de 2 o más.

miércoles, 13 de abril de 2011

Servidor de Mensajería Openfire integrado con OPenLDAP

Hoy vamos a configurar el Servidor de Mensajería Instantánea Openfire (chat corporativo) y lo vamos a integrar con un server OpenLDAP (previamente configurado) o Active Directory, para centralizar y autenticar a nuestros usuarios. Openfire: Es desarrollado por la empresa Inigte Realtime, descargamos la último versión desde la web.

http://www.igniterealtime.org/downloads/

En este caso: openfire-3.6.4-1.i386.rpm

Descargamos el cliente Spark para windows y linux también de la misma web.

Procedimiento:

  1. Instalamos openfire:

    # rpm -Uvh openfire-3.6.4-1.i386.rpm

  1. Ingresamos al directorio /opt/openfire/bin, ejecutamos el script openfire.sh

    # cd /opt/openfire/bin

    # ./openfire.sh

  2. En nuestro navegador tecleamos y escogemos nuestro idioma : http://localhost:9090

  3. Definimos nuestro dominio redlinux.org, click en Continuar.

  4. Seleccionamos Base de datos interna, click Continuar:

  5. Seleccionamos Servidor de Directorio (LDAP), podemos elegir (OpenLDAP, Novell NDS, Microsoft Active DIrectory, etc.) de acuerdo a nuestra necesidad y luego click en Continuar.

  6. En la pagina Seteos de perfil: Seteos de Conexión Paso 1 de 3: Seteos de Conexión Servidor LDAP configure su conexión a servidor LDAP, en el ejemplo Tipo de Servidor: OpenLDAP, Servidor: localhost, DN Base: dc=redlinux,dc=org, en Autenticación, DN del Administrador: cn=admin,dc=redlinux,dc=org y Clave: la clave del administrador, para comprobar que todo ha sido ingresado correctamente presione el botón Testear seteos (recomendado) o continúe presionando el botón Salvar y continuar.

  7. Ahora pasamos al Paso 2 de 3: Mapeos de Usuarios presione el botón de Seteos Avanzados ingrese el filtro de usuarios, (objectClass=posixaccount) ahora con la barra de desplazamiento del navegador muévase a la parte inferior de la pantalla y presione los botones de Testear Seteos (recomendado) y luego Salvar y Continuar.

  8. Pasamos al Paso 3 de 3: Mapeos de Grupos presione el botón de Seteos Avanzados ingrese en Modo Posix: No y en filtro de grupos, (objectClass=posixGroup), presione los botones de Testear Seteos (recomendado) y luego Salvar y Continuar.

10. Ahora ingresamos el nombre de un usuario que actúa como administrador de Openfire, este debe ser un usuario valido que se encuentre en el árbol
LDAP, en este caso agregar Administrador: rdavila y presione el botón Agregar.
Finalmente nos conectamos a la consola de administración.

Instalamos el cliente Spark en Linux o windows y nos conectamos con los usuarios de nuestro servidor OpenLDAP. Reiniciamos los servicios y probamos.

Cualquier consulta..................

martes, 14 de diciembre de 2010

viernes, 3 de diciembre de 2010

Creando RAID por Software con Linux

RAID (Arreglo Redundante de Discos Independientes), hace referencia a un sistema de almacenamiento que usa múltiples discos duros. Dependiendo de su configuración (nivel) con RAID tendremos: mayor integridad, mayor rendimiento, mayor tolerancia a fallas, mayor capacidad y redundancia.

Existen seis niveles diferentes de RAID de los cuales solo tres están disponibles para software: RAID 0, RAID 1 Y RAID 5. Aquí voy a crear un RAID 1.

Crear RAID 1

Crearemos un arreglo de 2 discos duros con la utilidad “mdadm”, en este caso nuestro sistema reconoce a los disco como hdb y hdd respectivamente. Asumimos que tenemos dos particiones hdb1 y hdd1, ambas con 500 MB de tamaño. Finalmente montamos el arreglo en la partición /var/cache.

Procedimiento:

1. Creamos el arreglo RAID 1, lo denominamos /dev/md0, compuesto por las particiones hdb1 y hdd1. Usamos el comando “mdadm”. De la siguiente manera:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/hdb1 /dev/hdd1

Luego ejecutamos:

2. Damos formato al arreglo /dev/md0, con ext3 como sistema de archivos. Usamos mkfs.ext3

3. Montamos el dispositivo raid /dev/md0 en algún directorio, para este caso sobre /var/cache

4. Agregamos la línea correspondiente al arreglo /dev/md0 en /etc/fstab

5. Finalmente comprobamos que RAID haya sido montado. Con df -h


Podemos testear y comprobar que el arreglo este correcto, con el siguiente mandato:


Protección de GRUB

Es importante proteger el gestor de arranque GRUB, para evitar que personas no autorizadas puedan ingresar al sistema. Para ello le asignamos una contraseña, y podemos hacerlo de 2 formas:

1. Al momento de la instalación en la configuración de gestor de arranque podemos ingresar una contraseña.

2. Usamos el comando grub-md5-crypt, la que asignará una contraseña encriptada.

3. Para activar la contraseña encriptada, editamos el fichero grub.conf, que se encuentra en /etc /grub/grub.conf . Copiamos la contraseña encriptada de la siguiente manera:

password -- md5 (seguido de la contraeña encriptada -- ver imagen)