Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
com/ncastillo/category/vpn-linux/
Pages
OpenVPN COMO
OpenVPN en Centos, RHEL, FC
OpenVPN RoadWarrior Centos 5
OpenVPN, Manual para Novatos
PRIMEROS PASOS EN LINUX
Quien Soy?
SAMBA como PDC
Calendario Libre
Noviembre 2008
L M X J V S D
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
« Oct
Blogroll
Centos
Cisco PIX 515e Quick Start Guide
Debian 4.0_R5
Distribuciones de Linux Mas conocidas
Fedora Core
Gentoo Linux
Knoppix Linux
Knoppix Linux Get
Mandriva Linux
Mepis Linux
PCLinuxOS
Periodico Digital CLAVEDigital.com
PIX/ASA: Easy VPN with an PIX 515E
Samba
Samba3-ByExample
Samba3-HOWTO
Slackware Linux
Ubuntu
Ubuntu Es
Administracion
Iniciar sesión
RSS de Entradas
RSS de los comentarios
WordPress.org
Archivo Libre
Noviembre 2008 (12)
Octubre 2008 (37)
Comentarios Libres
marketing y publicidad el Añadiendo filtrado de contenidos al Squid
base de datos de argentina ,chile , brasil, españa y uruguay el Active Directory Integracion
Categorias Libres
Cisco Networking Plug (1)
Comandos linux (3)
DNS Serever (1)
Linux Network Plus (15)
Mac OSx Loepard en Tu PC (1)
PDC Samba (3)
Proxy Squid Server (10)
Seguridad de Redes (2)
Temas Varios (22)
Ultimas Noticias (3)
Video y Audio Stream Linux (3)
VPN Linux (7)
VPN Windows (3)
Webmail (2)
Windows Networking (1)
WordPrees (5)
Etiquetas
Añadir nueva etiqueta Bloquear MSN Webmail WordPress Upgrade
home
OpenVPN COMO
OpenVPN en Centos, RHEL, FC
OpenVPN RoadWarrior Centos 5
OpenVPN, Manual para Novatos
PRIMEROS PASOS EN LINUX
Quien Soy?
SAMBA como PDC
Manual OpenVPN
25th Octubre 2008
INTRODUCCIÓN
OpenVPN es una solución de conectividad basada en software: SSL(Secure Sockets Layer) VPNVirtual Private Network [red virtual privada],
OpenVPN ofrece conectividad punto-a-punto con validación, jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción
en tecnologías Wi-Fi (redes inalámbricas EEI 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas entre otras.
Tipo de configuración.
Este tipo de redes es creado entre una oficina central [servidor] y una o varias oficinas remotas [clientes]. El acceso viene del exterior. Se utiliza
este tipo de VPN cuando se necesita enlazar a los sitios que son parte de una compañía, en nuestro caso será compuesto por un servidor Central que
conectará a muchos clientes VPN entre si.
La información y aplicaciones a las que tendrán acceso los directivos móviles en el VPN, no serán las mismas que aquellas en donde pueden
acceder los usuarios que efectúan actividades de mantenimiento y soporte, esto como un ejemplo de lo que se podrá realizar con esta configuración.
Ademas de que podrá conectarse vía Terminal Server [en el caso de clientes Linux] a terminales Windows de la red VPN así como de Clientes
Windows a computadoras con el mismo sistema operativo [mediante RDP].
Nota Importante: Enfocado a esta configuración .. Una vez que los clientes [Win/Linux] se conecten a la red VPN quedarán automáticamente sin
conexión a Internet, lo cual NO podrán acceder a la red mundial. Esto puede ser modificable en el servidor VPN.
Diagrama OpenVPN
Servidor de Pasarela OpenVpn con clientes [Win/Linux] remotos
El servidor VPN hace de pasarela para que todos los clientes [Windows/Linux] puedan estar comunicados a través del túnel OpenVpn, estos al
conectarse por medio de Internet al túnel automáticamente quedan sin linea a la red mundial quedando como una red local, esto claro esta a través
del VPN.
Cada cliente se encuentra en lugares diferentes [ciudad/estado/país] con diferentes tipos de segmento de red, al estar conectados mediante el túnel
VPN se crea un red virtual y se asigna un nuevo segmento de red proporcionada por el servidor principal en este caso con segmento
[10.10.0.0/255.255.255.255].
Antes que nada debemos actualizar todo nuestro sistema, si cuenta con acceso a Internet así como también correctamente configurado sus depósitos
yum se hará de la siguiente forma:
yum -y update
Lo anterior bajará lo paquetes actualizados de Internet así como sus dependencias en caso de ser necesario.
Paquetes Requeridos
Se necesita los paquetes OpenVPN y lzo, se podrá hacer de la siguiente forma, si cuenta en sus depósitos con la paquetería AL Desktop:
Se requiere utilizar la compresión sobre el enlace VPN, para esto instale la biblioteca LZO [http://www.oberhumer.com/opensource/lzo/].
Los usuarios de Linux 2.4.7 o superior deberían tener el controlador TUN/TAP ya incluido en su kernel.
Usuarios de Linux 2.4.0 -> 2.4.6 deberían leer la advertencia al final del fichero INSTALL.
http://www.openvpn.net
[http://prdownloads.sourceforge.net/openvpn/]
http://www.openvpn.se
Instalar desde paquete .tar, descomprima el paquete donde x.x-x es la versión del Openvpn:
Compilar OpenVPN:
cd openvpn-x.x.
./configure
make
make install
Si no se descargó la biblioteca LZO, añada –disable-lzo al comando configure. Se pueden habilitar otras opciones como el soporte para
pthread(./configure –enable-pthread) para mejorar la latencia durante los intercambios dinámicos de clave SSL/TLS.
Si desea mas información acerca de todas las opciones de configuración para OpenVPN puede usar el comando.
./configure –help
Para la administración de la PKI (Infraestructura de Llave Publica - Public Key Infrastructure) usaremos los guiones que vienen junto con OpenVPN
(easy-rsa) la versión reciente trae consigo muchas mejoras, es esta easy-rsa 2.0.
A continuación será modificar la Autoridad Certificadora ( CA) para generar las llaves, para esto se edita el fichero /etc/openvpn/easy-rsa/vars de
la siguiente forma, por ejemplo:
export KEY_COUNTRY=MX
export KEY_PROVINCE=MiEstado/Provincia
export KEY_CITY=MiCiudad
export KEY_ORG=”midominio.com”
export KEY_EMAIL=”fulanito@modominio.com”
Importante: Se deben de llenar todos los parámetros ya que son indispensables para los certificados que serán creados.
Seguidamente se ejecutarán los guiones (scripts) para general las llaves correspondientes de la siguiente forma:
cd /etc/openvpn/
source easy-rsa/2.0/./vars
sh easy-rsa/2.0/clean-all
sh easy-rsa/2.0/build-ca
cd /etc/openvp
Los parámetros Diffie Hellman deben de ser generados en el Servidor OpenVPN, para realizar esto deberá ejecutar el guión de la siguiente
forma:
sh easy-rsa/2.0/build-dh
Generación de llaves.
sh easy-rsa/2.0/build-key-server miservidor
En donde [miservidor] es una variable para identificar la llave privada del servidor.
Para generar el certificado y llave para los CLIENTESse hará de la siguiente forma:
sh easy-rsa/2.0/build-key cliente
sh easy-rsa/2.0/build-key cliente1
sh easy-rsa/2.0/build-key cliente2
Una ves que se han generado las llaves correspondientes a los clientes y servidor, se podrá rescatar estas en el directorio /etc/openvpn/easy-
rsa/2.0/keys
CONFIGURACIÓN.
Para la creación del servidor OpenVPN se deberá crear un archivo de configuración UDP para el este en el directorio /etc/openvpn/ con el nombre
servidorvpn-udp-1194.conf
port 1194
proto udp
dev tun
#—- Seccion de llaves —–
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
#—————————-
server 10.11.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status-servidorvpn-udp-1194.log
verb 3
Descripción:
Port: Especifica el puerto que será utilizado para que los clientes vpn puedan conectarse al servidor.
dh: Ruta exacta del fichero [.pem] el cual contiene el formato de Diffie Hellman (requirerido para –tls-server solamente).
server: Se asigna el rango IP virtual que se utilizará en la red del túnel VPN.
Ifconfig-pool-persist: Fichero en donde quedarán registrado las direcciones IP de los clientes que se encuentran
conectados al servidor OpenVPN.
Keepalive 10 120 : Envía los paquetes que se manejan por la red una vez cada 10 segundos; y asuma que el acoplamiento es
abajo si ninguna respuesta ocurre por 120 segundos.
comp-lzo: Especifica los datos que recorren el túnel vpn será compactados durante la trasferencia de estos paquetes.
persist-key: Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no
necesitan ser releídos.
Persist-tun: Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down
status: fichero donde se almacenará los eventos y datos sobre la conexión del servidor [.log]
verb: Nivel de información (default=1). Cada nivel demuestra todo el Info de los niveles anteriores. Se recomienda el nivel
3 si usted desea un buen resumen de qué está sucediendo.
0 –No muestra una salida excepto errores fatales. 1 to 4 –Rango de uso normal. 5 –Salida R y Wcaracteres en la consola
par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes
TUN/TAP.
Para la configuración del Servidor VPN necesitamos insertar el módulo (tun) para controlar los interfaces /dev/net/tunX que se necesiten en le
sistema, así pues creamos el directorio /var/empty para hacer chroot y seguidamente reiniciamos el servicio OpenVPN:
Cargamos el módulo:
modprobe tun
Y habilitamos el IP forwarding:
A continuación se creará un directorio para hacer chroot [jaula], en el cual solamente seráusado para configuración de clientes Linux
(no-Windows), de la siguienteforma:
mkdir /var/empty
Para la ejecución del servidor OpenVPN puede utilizar el siguiente guión y guardarlo con el nombre de [iniciovpnserver], tendrá el siguiente
contenido:
#!/bin/bash
#
#– Variables –
RUTACONFIG=”/etc/openvpn/”
NOMCONFIG=”servidorvpn-udp-1198.conf”
#
#– Ejecuciónde la configuraciónpara el servicioOpenVPN
#
$RUTACONFIG./$NOMCONFIG
#
exit 0
chmod +x iniciovpnserver
Para ejecutar nuestro guión al inicio del sistema (arranque), puede colocar lo siguiente dentro del fichero /etc/rc.local
Acerca de shorewall
Shorewall (Shoreline Firewall) es una robusta y extensible herramienta de alto nivel para la configuración de muros cortafuego. Shorewall
solo necesita se le proporcionen algunos datos en algunos ficheros de texto simple y éste creará las reglas de cortafuegos correspondientes a través
de iptables. Shorewall puede permitir utilizar un sistema como muro cortafuegos dedicado, sistema de múltiples funciones como puerta de enlace,
dispositivo de encaminamiento y servidor.
URL: http://www.shorewall.net/
Procedimiento
En este fichero se definirá las zonas que se administrarán con Shorewall. La zona fw está presente en el fichero /etc/shorewall.conf como
configuración predefinida. En el siguiente ejemplo se registrarán las zonas de Internet (net), Red Local (loc) y el túnel virtual tun para el vpn (rem):
En éste se establecen cuales serán las interfaces para las tres diferentes zonas. Se establecen las interfaces que corresponden a la Internet, virtual
tun y Red Local.
A continuación se cuenta con una interfaz ppp0 para acceder hacia Internet, una interfaz eth0 para acceder hacia la LAN y una interfaz rem para
acceder hacia la red virtual tun, y en todas se solicita se calcule automáticamente la dirección de transmisión (Broadcast):
En este fichero se establece como se accederá desde una zona hacia otra y hacia la zona de Internet.
2. La zona virtual tun (rem) puede acceder hacia el cortafuegos, viceversa y también hacia la zona de Internet.
5. Se establece una política de rechazar conexiones para todo lo que se haya omitido.
En éste se establecen el tipo de conexión vpn. Puesto que es un servidor VPN se le indicará a al cortafuego que en el servidor vpn se utilizará el
puerto que nosotros le indiquemos así como también la IP donde se encuentra este, en nuestro caso siguiendo el tipo de configuración será en la red
192.168.2.0/24:
Todos los puertos están cerrados de modo predefinido, así que se deberá habilitar el puerto configurado para el túnel vpn en el cual fue
especificado en la configuración del servidor OpenVpn. Esto debe ser especificado con la acción [ACCEPT] en [rules].
ACCEPT
La acción ACCEPT se especificará que se permiten conexiones para el puerto OpenVpn desde o hacia una(s) zona (s) un protocolo(s) y puerto(s)
en particular. A continuación se permiten conexiones desde Internet hacia el firewall y viceversa por el puerto UDP [1194]. Los nombres de los
servicios se asignan de acuerdo a como estén listados en el fichero /etc/services.
Clientes Windows
Para la configuración de clientes OpenVPN utilizaremos el programa OpenVPN GUI para Windows.
OpenVPN GUI para Windows corre normalmente en una ventana de consola, al ser conectado al servidor remoto/local VPN le da un aviso en el
área de notificación (el área de abajo a la derecha por el reloj en la barra ), desde allí puede tener el control de iniciar/parar el Cliente OpenVPN,
consultar los avisos (log), incluso cambiar su contraseña.
Preparativos y configuración
• ca.crt.
• cliente1.crt.
• cliente1.csr.
• cliente1.key
Estos fueron creados en el directorio /etc/openvpn/easy-rsa/2.0/keys y deberán ser colocados en la máquina cliente dentro de C:Program
FilesOpenVPN config o a su vez en C:|Archivos de Programa|OpenVPN|config
Se creará un fichero de configuración cliente para el OpenVPN dentro del directorio C:|Archivos de ProgramaOpenVPN config con el nombre de
cliente1-udp-1194.ovpn.
client
dev tun
proto udp
remote dominio-o-ip.del.servidor.vpn 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
#—— SECCION DE LLAVES ——–
ca ca.crt
cert cliente.crt
key cliente.key
ns-cert-type server
#———————————
comp-lzo
verb 3
Descripción:
Port: Especifica el puerto que será utilizado para que los clientes VPN puedan conectarse al servidor.
El cliente OpenVPN puede tratar de conectar al servidor con host:porten el orden especificado de las opciones de la
opción –remote.
float: Este le dice a OpenVPN aceptar los paquetes autenticados de cualquier dirección, no solamente la dirección cuál fue
especificado en la opción –remote.
resolv-retry: Si la resolución del hostname falla para – remote, la resolución antes de fallar hace una re-comprobación de
n segundos.
remote: Especifica el dominio o IP del servidor así como el puerto que escuchara las peticiones para servicio VPN.
comp-lzo: Especifica los datos que recorren el túnel VPN será compactados durante la trasferencia de estos paquetes.
persist-key: Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no
necesitan ser releídos.
Persist-tun: Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down
verb: Nivel de información (default=1). Cada nivel demuestra toda la Información de los niveles anteriores. Se recomienda
el nivel 3 si usted desea un buen resumen de qué está sucediendo.
0 –No muestra una salida excepto errores fatales. 1 to 4 –Rango de uso normal. 5 –Salida R y W caracteres en la consola
par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes
TUN/TAP.
Una ves configurado el cliente VPN con Windows, deberá ir al área de notificación (el área de abajo a la derecha por el reloj en la barra de
Windows) y dar un click derecho al icono del cliente OpenVPN, allí aparecerá un menú en el cual podrá elegir la opción conectar [connect].
openvpn-icono
Icono de notificación
Cuando intente conectarse al servidor VPN una vez que haya elegido la opción [connect] aparecerá una ventana de notificación en el cual vera los
procesos de verificación e intento de conexión al servidor VPN, si todo sale bien, en el icono de notificación del cliente OpenVPN le indicará la
correcta conexión y le mostrará el número de IP virtual [tun] que se le fue asignado.
Pruebas de Conexión
Una ves efectuada la conexión al servidor, para asegurarse que estamos dentro del túnel VPN y tenemos conexión al servidor, podemos realizar una
búsqueda de dirección IP [Ping], así como también verificar el número IP asignado por el servidor VPN al estar conectarnos en el túnel.
Para esto utilizaremos el comando [cmd] para hacer llamado al MS-Dos de Windows a través de la aplicación [ejecutar].
Una ves estando en la consola en modo texto, utilice el comando [ipconfig] para ver que dirección IP se le fue asignado.
Importante: Deberá desactivar el cortafuego que trae como predeterminado Windows o cual quier otro que este utilizando.
Clientes Linux
Para la configuración de clientes Linux con OpenVPN utilizaremos el modo texto [terminal] y el arranque a través de un bash.
Preparativos y configuración
ca.crt
cliente1.crt
cliente1.csr
cliente1.key
Estos fueron creados en el directorio /etc/openvpn/easy-rsa/2.0/keys y deberán ser colocados en la máquina cliente dentro del directorio
OpenVPN.
Supongamos que las llaves la tenemos en el directorio /tmp/llaves, debemos copiar estas en el siguiente directorio /etc/openvpn/keys, para esto hay
que crearlo antes.
mkdir /etc/openvpn/keys
cp -R /tmp/llaves/* /etc/openvpn/keys/
cd /etc/openvpn/
A continuación se creará un fichero de configuración cliente para el OpenVPN dentro del directorio /etc/openvpn/ con el nombre de cliente1-
udp-1194.ovpn.
Descripción:
Port : Especifica el puerto que será utilizado para que los clientes VPN puedan conectarse al
servidor.
float : Este le dice a OpenVPN aceptar los paquetes autenticados de cualquier dirección, no
solamente la dirección cuál fue especificado en la opción –remote.
resolv-retry : Si la resolución del hostname falla para – remote, la resolución antes de fallar
hace una re-comprobación de n segundos.
remote : Especifica el dominio o IP del servidor así como el puerto que escuchara las
peticiones para servicio VPN.
comp-lzo : Especifica los datos que recorren el túnel VPN será compactados durante la
trasferencia de estos paquetes.
persist-key : Esta opción soluciona el problema por llaves que persisten a través de los
reajustes SIGUSR1, así que no necesitan ser releídos.
Persist-tun : Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los
guiones up/down
verb : Nivel de información (default=1). Cada nivel demuestra toda la Información de los
niveles anteriores. Se recomienda el nivel 3 si usted desea un buen resumen de qué está
sucediendo.
Ahora necesitamos insertar el módulo [tun] para controlar los interfaces /dev/net/tunX que se necesiten en le sistema para el servicio OpenVPN:
Cargamos el módulo:
modprobe tun
y habilitamos el IP forwarding:
Para la ejecución del cliente OpenVPN puede utilizar el siguiente guión y guardarlo con el nombre de [iniciovpncliente], tendrá el siguiente
contenido:
#!/bin/bash
#
#– Variables –
RUTACONFIG=”/etc/openvpn/”
NOMCONFIG=”cliente1-udp-1194.conf”
#
#– Ejecución de la configuración para el servicio OpenVPN
#
/usr/bin/openvpn $RUTACONFIG./$NOMCONFIG
#
exit 0
chmod +x iniciovpncliente
Si desea ejecutar el servicio VPN al inicio del sistema (arranque), puede colocar lo siguiente dentro del fichero /etc/rc.local
Pruebas de Conexión
Una ves efectuada la conexión al servidor VPN, para asegurarse que estamos dentro del túnel VPN y tenemos conexión al servidor, podemos
realizar una búsqueda de dirección IP [Ping], así como también verificar el número IP asignado por el servidor VPN al estar conectarnos en el
túnel.
Para esto utilizaremos el necesitamos entrar a la terminal de comando, una ves estando en la consola en modo texto, utilice el comando [ifconfig]
para ver que dirección IP se le fue asignado.
Tags:
Posted in: Linux Network Plus, VPN Linux |
Comentarios (0)
To install on CentOS, I grab the rpms from the EPEL repo. EPEL stands for Extra Packages for Enterprise Linux.
They are Fedora packages repackaged for Redhat Enterprise. The project homepage and documentation is at
http://fedoraproject.org/wiki/EPEL. There is also a package list at that site.
To install the EPEL yum repo, run the following command:
sudo rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-2.noarch.rpm
For now I will setup OpenVPN to route rather than bridge. Later I will likely bridge two remote networks.
Generate the Master Certificate Authority. Copy the templates files into place:
Now cd into /etc/openvpn/certs and edit the var file. The only thing I changed was the last five lines containing
the location information. Now run the following commands
sudo su
. ./vars
./clean-all
./build-ca
Note that you want to be root when running these commands because the vars script alters your environment, and
they will get lost if you are using sudo on each command individually.
I left challenge password empty and answered yes to signing and committing the certificate.
You can now drop root permissions and setup the server configuration file
sudo cp /usr/share/doc/openvpn-2.1/sample-config-files/server.conf /etc/openvpn
Edit it to your liking. I did not change much except to add paths appropriately to the certificate and dh files.
Copy the keys from the server to the client and start it up
For routing so that I run the following
echo 1 > /proc/sys/net/ipv4/ip_forward
on the server so that machines on the same subnet as the server can talk to the clients. Likewise, I add the
following static route to the default gateway (which is my wireless router):
Destination LAN IP: 10.8.0.0
Subnet Mask: 255.255.255.0
Gateway: 192.168.35.2
Roadwarrior en Openvpn
Este es un howto bien basico para hacer roadwarrior en openvpn , para esto use Centos 4.2 ,por que ? ,bueno por que
funciona muy bien ya lo tengo bastante tiempo en produccion asi que doy fe de ello.
- actualizar el sistema
#yum upgrade
#rpm -i lzo-1.08-4.2.el4.rf.i386.rpm
#rpm -i rpm -i openvpn-2.0.2-1.2.el4.rf.i386.rpm
#cd /lib/
Para esta parte dejo el enlace donde postean como hacerlo http://es.tldp.org/Manuales-LuCAS/doc-guia-ubuntu-breeze
/guia-ubuntu-htmls/administracion-miscelanea.html
cp * /etc/openvpn/
cp -t keys/ /etc/openvpn/
- Archivos de configuracion
#vi /etc/openvpn/tunel.conf
verb 5
status openvpn-status.log
log openvpn.log
user nobody
#group nogroup
persist-key
persist-tun
local TU.IP.PULICA
port 559
proto tcp-server
dev tun
#comp-lzo
ca /etc/openvpn/keys/mi-ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/dh1024.pem
server 10.0.1.0 255.255.255.0
keepalive 10 120
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/cld
push “route 169.254.0.0 255.255.255.0″ #Red interna a la cual de quiere acceder
username-as-common-name #Primer parametro para el roadwarrior
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login # segundo parametro para habilitar el uso de pam
- Iniciar el servicio
tail -f /etc/openvpn/openvpn.log
/etc/init.d/openvpn start
/etc/init.d/openvpn stop
* instalar openvpn
* /etc/init.d/openvpn start
This guide was done using a FC4 VPS, running on Xen, it will work on OpenVZ, all you need to do is ask your VPS
provider to install “tun support”.
1. First of all get a few additional repos, If you already have your repos setup, skip this step
http://stanton-finley.net/fedora_cor…notes.html#Yum
http://stanton-finley.net/fedora_cor…notes.html#Yum
http://stanton-finley.net/fedora_cor…notes.html#Yum
If you have CentOS, follow the “additional third party CentOS repos”
http://www.osresources.com/11_6_en.html
Then issue these commands, each line is a new command, anything beginning with “#” are comments so dont try to
execute those.
Code:
yum update
2. Right, now you want to install OpenVPN, here are the commands,
Code:
yum install openvpn -y
3. A few things to setup before you can make certificates, issue these commands,
Code:
find / -name "easy-rsa"
/usr/share/doc/openvpn-2.0.7/easy-rsa
#Now, make a copy of the easy-rsa directory, to /etc/openvpn/ ( make sure you #have put the rig
cp -R /usr/share/doc/openvpn-2.0.7/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa
chmod 777 *
mkdir /etc/openvpn/keys
Code:
export KEY_DIR=$D/keys
to
Code:
export KEY_DIR=/etc/openvpn/keys
Also at the bottom of this file you will see something similar to this,
Code:
export KEY_COUNTRY=US
export KEY_PROVINCE=CA
export KEY_CITY=SOMEWHERE
export KEY_ORG="My Org"
export KEY_EMAIL=me@mydomain.com
Code:
. ./vars
Code:
./clean-all
Code:
./build-ca
# just hit enter to the defaults apart from Common Name, this must be unique
# call it something like mydomain-ca
Code:
./build-key-server server
Code:
./build-key client1
Code:
./build-key client2
Code:
./build-dh
6. We are almost done now… right we need to create a few config files, you can download my template from here,
Code:
cd /etc/openvpn
Code:
wget www.designpc.co.uk/downloads/server.conf
# make sure you change a few things in the server.conf file, like DNS
# servers
Code:
touch server-tcp.log
Code:
touch ipp.txt
Code:
cd /etc/init.d/
Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
Add these lines below it, changing 123.123.123.123 to your public IP address,
Code:
iptables -t nat -A POSTROUTING -s 192.168.2.3 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.4 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.5 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.6 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.7 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.8 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.9 -j SNAT --to 123.123.123.123
iptables -t nat -A POSTROUTING -s 192.168.2.10 -j SNAT --to 123.123.123.123
Code:
yum install iptables
#test it
8. Now for the client config files. If your client is a Windows machine, make sure you have installed OpenVPN, use the
gui version, downloadable from here;
http://www.designpc.co.uk/downloads/….3-install.exe
You need to copy a few files from the server to your client machine, here is the list, located in /etc/openvpn/keys/
## WARNING ## Use a secure way of transferring these files off the server, something like WinSCP.
ca.crt
client1.csr
client1.key
client1.crt
PHP Code:
client
dev tun
proto tcp
resolv
-retry infinite
nobind
persist-key
persist-tun
ca ca
.crt
cert client1.crt
key client1.key
ns
-cert-type server
comp-lzo
verb 3
Make sure you edit any of the lines with comments above them.
Tags:
Posted in: Temas Varios, VPN Linux |
Comentarios (0)
Tipo de Openvpn
22nd Octubre 2008
Tipo de Openvpn
1 Introduccion
La VPN es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como
por ejemplo Internet.
El ejemplo más común es la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo
Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, o que un
usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo esto utilizando la
infraestructura de Internet.
Para hacerlo posible de manera segura es necesario proveer los medios para garantizar la autenticación, integridad y
confidencialidad de toda la comunicación:
Autenticación y autorización: ¿Quién está del otro lado? Usuario/equipo y qué nivel de acceso debe tener.
Confidencialidad: Dado que los datos viajan a través de un medio potencialmente hostil como Internet, los mismos son
susceptibles de interceptación, por lo que es fundamental el cifrado de los mismos. De este modo, la información no debe
poder ser interpretada por nadie más que los destinatarios de la misma.
Tipos de VPN
VPN de acceso remoto
Éste es quizás el modelo más usado actualmente y consiste en usuarios o proveedores que se conectan con la empresa
desde sitios remotos (oficinas comerciales, domicilios, hotel, aviones, etcétera) utilizando Internet como vínculo de
acceso. Una vez autenticados 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 dialup (módems y líneas telefónicas), aunque por
razones de contingencia todavía conservan sus viejos modems.
Este esquema se utiliza para conectar oficinas remotas con la sede central de 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 mas comun el anterior punto. tambien llamada
tecnologia de tunel o tunneling
VPN interna
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 de área local (LAN)
de la empresa. Sirve para aislar zonas y servicios de la red interna. Esta capacidad lo hace muy conveniente para mejorar
las prestaciones de seguridad de las redes inalámbricas (WiFi).
Un ejemplo muy clásico es un servidor con información sensible, como las nóminas de sueldos,
ubicado detrás de un equipo VPN, el cual provee autenticación adicional más el agregado del cifrado, haciendo posible
que sólo el personal de RRHH habilitado pueda acceder a la información.
Certificado digital
Un Certificado Digital es un documento digital mediante el cual un tercero confiable (una autoridad de certificación)
garantiza la vinculación entre la identidad de un sujeto o entidad y su clave pública.Si bien existen varios formatos de
certificado digital, los más comúnmente empleados se rigen por el estándar UITT X.509v3. El certificado contiene
usualmente el nombre de la entidad certificada, un número serial, fecha de expiración, una copia de la clave pública del
titular del certificado (utilizada para la verificación de su firma digital), y la firma digital de la autoridad emisora del
certificado de forma que el receptor pueda verificar que el esta última ha establecido realmente la asociación.
Clave pública
Clave privada
Información del Propietario
Información del emisor del Certificado
2 Paquetes Necesarios
openvpn2.0.71.el4.rf
lzo1.084.2.el4.rf
openssldevel0.9.7a43.4
openssl0.9.7a43.4
3 Procedimientos
Configurando tu propia Autoridad Certificadora (CA Certificate Authority) y generacion de certificados y par de llaves
para el Servidor OpenVPN y un cliente VPN.
El primer paso al construir una VPN con OpenVPN 2.0 es establecer una PKI (Infraestructura de LLave Publica Public
Key Infrastructure), esta PKI consiste de:
Un certificado aparte (tambien conocido como llave publica) y una llave privada para el servidor y cada cliente.
Un Certificado Mastro para la Autoridad Certificadora (CA) y su llave la cual es usada para firmar cada certificado de el
servidor y el cliente. Generar la llave y el certificado Maestro para la Autoridad Certificadora (CA).
En esta seccion se generaran los certificados/llaves para la CA, el server y el cliente. Para la administracion de la PKI
usaremos los scripts que vienen con OpenVPN (easyrsa) pero en este caso usaremos la nueva version que tiene muchas
mejoras, es esta easyrsa 2.0.
Tags:
Posted in: Linux Network Plus, Temas Varios, VPN Linux, VPN Windows |
Comentarios (0)
En el presente trabajo se mostrará con un ejemplo práctico la implementación de una red privada virtual tanto del lado del
cliente como del servidor, incluyendo la generación de certificados de seguridad.
Se tomará como caso de estudio una situación bastante común como es la de un usuario remoto que necesita conectarse a
la red de la oficina mediante Internet pasando a tomar parte de dicha red como si fuese un puesto más de la misma.
Contenido
[ocultar]
Preparando la prueba
Para poder hacer las pruebas sin tener que contar con varias máquinas reales, vamos a valernos de máquinas virtuales,
que en este caso generaremos con vmware-server, aprovechando que recientemente lo liberaron como “free”.
Instalaremos linux en una máquina virtual y luego la cloraremos 3 veces de modo de contar con dos servidores y dos
clientes.
Es decir, para hacerlo más interesante, estaremos suponiendo entonces que el usuario remoto no se conectará
directamente a Internet sino que en su hogar también tiene una red doméstica que sale al mundo a través de un
router/firewall, como suele verse cada vez con más frecuencia, sobre todo cuando tenemos hijos que quieren jugar con la
computadora de la familia mientras nosotros queremos trabajar con el notebook y todos necesitamos salir a Internet.
Eso permitirá mostrar alguna configuración adicional que se necesita implementar a los efectos de que todos los pc’s de la
casa puedan conectarse transparentemente a la oficina, aunque tal vez no sea lo más adecuado si los demás pc’s son los
de los niños.
Arquitectura
Router de Casa: ifconfig eth0 192.168.6.1 netmask 255.255.255.252 ifconfig eth1 192.168.1.1 netmask 255.255.255.0
Router de la Oficina ifconfig eth0 192.168.6.2 netmask 255.255.255.252 ifconfig eth1 10.66.0.1 netmask 255.255.255.0
En este caso no tenemos Internet en medio, por lo que las interfaces eth0 de cada router las pusimos en realidad en la
misma red para que se puedan “ver”.
NOTA: Para que los paquetes puedan pasar de una interfaz a otra en los routers/firewalls se debe habilitar el ruteo entre
ellas.
En el caso de Linux bastará con decirle al kernel que queremos que dicho ruteo se lleve a cabo, lo cual lograremos con el
siguiente comando: echo 1 > /proc/sys/net/ipv4/ip_forward
Eso solo tendrá efecto hasta que apaguemos la computadora, con lo cual si se desea rutear permanentemente debemos
indicarlo en algún script de inicio del sistema.
Ej.
net/ipv4/ip_forward=1
En nuestro caso generaremos uno propio y por lo tanto seremos nuestra propia CA (Autoridad Certificadora).
Hoja de ruta
1.Crear un certificado-CA con el cual firmaremos y revocaremos certificados de clientes
2.Crear un certificado y una clave pública para los clientes
3.Firmar ese certificado usan el certificado-CA
4.Distribuir la clave y certificados a los clientes
5.Configurar los scripts del servidor y de los clientes
Para los primeros 3 pasos vamos a utilizar una serie de scripts que nos facilitarán la vida dado que invocan los comandos
adecuados con unos cuantos parámetros por default.
Generales
export KEY_COUNTRY=URUGUAY
export KEY_PROVINCE=MO
export KEY_CITY=Montevideo
export KEY_ORG=”OpenVPN-TEST”
export KEY_EMAIL=”yo@mihost.midominio”
5. usr@ubusrv:~$ . vars
6. usr@ubusrv:~$ ./clean-all
Clave Diffie-Hellman y CA
Ahora creamos la clave Diffie-Hellman con el script build-dh lo cual tardará varios minutos
usr@ubusrv:~$ ./build-dh
….+……..+.+……+…………………..+………………(…)
usr@ubusrv:~$ ./build-ca
………………………………..++++++
—–
A esta altura deben haber quedado creados los siguientes archivos en el subdirectorio keys:
dh1024.pem
ca.crt
ca.key
Par Certificado/Clave del servidor
De los diferentes datos que se irán preguntando el que realmente importa es el “Common Name” dado que el mismo será
utilizado “textualmente” en la configuración de los clientes.
openvpn-server.crt
openvpn-server.key
openvpn-server.csr
Hasta ahora hemos logrado tener el certificado de la CA y el certificado y clave para el primer PC de la red virtual.
Par Certificado/Clave de los clientes
openvpn-client1.crt
openvpn-client1.key
openvpn-client1.csr
Distribución de claves y certificados
El paso siguiente será determinar cuales archivos de los generados deberán quedar en el servidor y cuales deben ser
enviados a los clientes.
ATENCIÓN: Necesitará enviar algunos de los archivos por algún canal seguro a sus clientes, para lo cual debe asegurarse
que el mecanismo de seguridad de dicho envío sea adecuado, dado que de otro modo de nada servirá todo el trabajo que
nos estamos tomando.
A continuación se presenta una tabla en la que se muestra en donde va cada archivo y si debe ser celosamente guardado
en secreto o no.
1. usr@ubusrv:~$ cd /etc/openvpn
2. usr@ubusrv:~$ mkdir ccd
3. usr@ubusrv:~$ gzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
Con eso tendremos un archivo llamado server.conf al que le haremos varias modificaciones para adaptarlo a nuestras
necesidades:
Además será necesario para cada cliente potencial que se conecte, crear un archivo en /etc/openvpn/ccd con el mismo
nombre del “Common Name” de los mismos.
Esto solo es necesario para los casos en que el cliente no es un puesto conectado directo a Internet sino que se tratad de
una red doméstica, tal cual es el ejemplo que venimos siguiendo.
Ejemplo:
1. usr@ubusrv:~$ cd /etc/openvpn
2. usr@ubusrv:~$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .
Con eso tendremos un archivo llamado client.conf al que le haremos varias modificaciones para adaptarlo a nuestras
necesidades:
Eso es muy fácil de hacer, ya que cuando se establece el túnel, se crean interfaces virtuales “tunX”, que podremos usar
en reglas de iptables para filtrar por ellas. También es seguro, ya que el túnel solo permite tráfico desde puntos
autorizados, con lo cual tranquilamente podemos permitir todo el tráfico en dichas interfaces. Ej.
Arranque automático
El servidor puede arrancarse de forma manual como se explicará en el siguiente párrafo o también puede ejecutar como
demonio. P ara ello existen dos caminos tradicionales.
1.Configurar el servicio xinetd para que escuche en el puerto configurado e invoque al openvpn cuando ingresa
alguna conexión.
2.Crear un script de inicio en /etc/init.d y configurarlo en los runlevels adecuados.
Personalmente me gusta más la segunda opción y en sitio de OpenVPN hay varios ejemplos para diversas distribuciones.
En SuSE:
En Debian / Ubuntu:
1. usr@ubusrv:~$ cd /etc/openvpn
2. usr@ubusrv:~$ openvpn –config server.conf
1. usr@ubusrv:~$ cd /etc/openvpn
2. usr@ubusrv:~$ openvpn –config client.conf
ping 10.66.0.1
ping 10.66.0.202
ssh 10.66.0.202
[
Tags:
Posted in: Linux Network Plus, VPN Linux, VPN Windows |
Comentarios (0)
OpenVPN es una implementacion de VPN SSL la cual usa las extenciones OSI layer 2 o 3 para asegurar redes la cual usa
los protocolos SSL/TLS, soporta diferentes medios de autenticacion como certificados, smart cards, y/o
usuarios/contraseñas, y permite politicas de control de acceso para usuarios o grupos usando reglas de firewall aplicadas a
las interfaces virtuales de la VPN. OpenVPN 2.0 permite multiples clientes conectar a un solo servidor (proceso)
OpenVPN sobre un simple puerto TCP o UDP, aquí,
Arquitecturas básicas
Usuarios que se conectan de manera remota (domicilios, hoteles..) utilizando Internet como vía de acceso.
Punto a Punto:
Interna VLAN:
Utiliza la LAN de la organización como vía de acceso. Sirve para aislar zonas y servicios de la red interna.
Buscando en la web he encontrado abundante información, algunos de ellos muy interesantes, los cuales les dejo al final
del artículo.
En esta ocasión les dejo los pasos para instalar OpenVPN en Debian, utilizando PKI y en modalidad Roadwarrior.
Instalamos OpenVPN
# apt-get install openvpn
. ./vars
./clean-all
./build-ca
* 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).
* build-ca: procedemos a generar el certificado CA.
Deberemos ingresar los datos de la Organización reales (para ser prolijos) y teniendo especial atención en el parámetro
Common Name el cual deberá ser distinto para el caso de la CA, Servidor y los Clientes.
Nuevamamente debemos repetir los datos ingresados anteriormente, recordando utilizar una denominación diferente de la
que usamos para la CA (en el paso anterior).
servidor.crt y servidor.key depende del Common Name que elejimos cuando creamos las credenciales para el servidor.
Estos archivos son cliente1.crt, cliente1.key y ca.crt, se los podemos pasar vía sftp o scp, pero siempre tratando de que
sea seguro.
los archivos cliente1.crt y cliente1.key dependen del Common Name que ingresamos cuando creamos las credenciales de
los clientes.
port 1194
proto udp
dev tun
persist-tun
ca ca.crt
cert servidor.crt
key servidor.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
#Ruta para que los clientes alcancen la red local del server (1.0/24)
push “route 192.168.1.0 255.255.255.0″
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 4
Nota: La red local de la VPN es 192.168.1.0/24 y la red de la VPN es 10.1.1.0/24. El usuario remoto, si está detrás de un
NAT debe tener una dirección local no perteneciente a la red de la VPN.
Configuramos el cliente
tls-client
client
dev tun
proto udp
remote host.dominio.com
float #debido a que la IP de arriba es dinamica
resolv-retry infinite
nobind
persist-key
persist-tun
ca “C:\\Archivos de programa\\OpenVPN\\ca.crt” #Tener cuidado con el doble backslash (\\)
cert “C:\\Archivos de programa\\OpenVPN\\cliente1.crt”
key “C:\\Archivos de programa\\OpenVPN\\cliente1.key”
comp-lzo
verb 4
Nota: Copiar dentro de esta misma carpeta los archivos cliente.crt, cliente.key y ca.crt.
Tags:
Posted in: VPN Linux |
Comentarios (0)
bajo Linux pero el cliente sea una máquina Windows, habrá que instalarle el cliente
adecuado para poder establecer la red virtual.
Comencemos con la instalación de los paquetes. Si bien con openvpn sería
suficiente, en el caso de que se quiera utilizar con certificados, habrá que instalar openssh
(si no está ya instalado).
aptitude install openvpn openssh
SEGURIDAD EN LA CONEXIÓN VPN
GENERACIÓN DE LA CLAVE SECRETA
Mediante la siguiente directiva se genera la clave privada. Esa clave tienen que
poseerla tanto el servidor como el cliente, con lo cual, tras generarla en el servidor, hay
que colocarla en el directorio correcto del mismo y a su vez copiarla al cliente mediante un
medio que no comprometa la seguridad de la clave. En este caso se ha optado por
copiarlo al cliente mediante ssh.
openvpn –genkey –secret giltza.key
cp giltza.key /etc/openvpn
scp giltza.key ip_del_servidor:/etc/openvpn/
GENERACIÓN DE CERTIFICADOS (MODO GENERAL)
En el caso de que se quiera aumentar la seguridad en la VPN, podría optarse por
protegerlo mediante clave secreta y certificados. Las claves privadas tendrán que
mantenerse siempre en privado, los ficheros con los certificados en cambio pueden
publicarse o compartirse con total libertad.
Se seleccionará en este ejemplo el servidor como máquina generadora y gestora
de las claves y los certificados.
En primer lugar hay que edita el fichero openssl.cnf (/usr/share/ssl/openssl.cnf), con
las siguientes modificaciones:
· hacer que la opción dir apunte al directorio que se haya creado (habrá que crearlo)
como espacio de trabajo para las claves.
· Incrementar default_days (si es que interesa) para que la VPN tenga el tiempo de
validez que se estime oportuno (por defecto es de un año).
1/6
· Establecer certificate y private_key para que apunten al certificado y a la clave
maestra que se generará a continuación.
Se pueden hacer más modificaciones para adaptar openssl.cnf a nuestras
necesidades, pero no es necesario hacer más modificaciones para poder crear los
certificados.
Lo primero, se generará la Autoridad de Certificación (CA), un par de
certificado/clave privada para los próximos 10 años (o los que se estimen oportunos):
openssl req -nodes -new -x509 -keyout my-ca.key -out my-ca.crt -days 3650
Ahora llega el turno de crear un par certificado/clave tanto para el servidor como
para el cliente.
openssl req -nodes new -keyout servidor.key -out servidor.csr
openssl ca -out servidor.crt -in servidor.csr
openssl req -nodes new -keyout cliente.key -out cliente.csr
openssl ca -out cliente.crt -in cliente.csr
Una vez generados los pares de claves tanto para el servidor como para el cliente,
hay que copiar de forma segura cliente.crt, cliente.key y my-ca.crt al cliente.
Finalmente basta con establecer los parámetro Diffie-Hellman en el servidor con el
siguiente comando:
openssl dhparam -out dh1024.pem 1024
Existen más métodos para generar claves y certificados, incluso pueden comprarse
a una entidad certificadora, pero se ha utilizado esta forma a modo de explicación, con
gasto cero.
GENERAR CERTIFICADOS MEDIANTE UTILIDAD EASY-RSA OPENVPN
Otro modo de generar las claves y los certificados generados en el apartado
anterior es valerse de los scripts que la propia aplicación de OpenVPN incluye en su
directorio /usr/share/doc/openvpn/easy-rsa, los cuales facilitan bastante la tarea.
Lo primero será copiar el directorio easy-rsa a /etc/openvpn y situarse en dicho
directorio.
cp -a /usr/share/doc/openvpn/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa
Para generar la entidad certificadora:
./clean-all
./build-ca
2/6
Al ejecutar build-ca se solicitan los datos necesarios a fin de generar la entidad
certificadora:
En éste último paso se nos pedirá una serie de información sobre nuestra
red/empresa que debemos llenar lo más fielmente posible:
Generating a 1024 bit RSA private key
……………………………………………………………………………….
……………………………++++++…………………++++++
writing new private key to ‘ca.key’
—–
port 1194
# dispositivo tunel
dev tun
# ifconfig ip_del_cliente ip_del_servidor
tun-mtu 1500
ifconfig 192.168.2.2 192.168.2.1
# clave privada, giltza.key (en este caso)
# Una posible ruta para la key en windows está comentada.
#secret “c:\program files\company branded vpn\config\key.txt”
secret /etc/openvpn/giltza.key
# enable LZO compression
comp-lzo
# ping cada 10 segs
ping 10
# compresión lzo
comp-lzo
# verbose moderado, callar mas de 10 mensajes iguales
verb 4
mute 10
CONFIGURACIÓN DE CONEXIÓN ROAD WARRIOR
CONFIGURACIÓN DEL SERVIDOR
#/etc/openvpn/server.conf
# dispositivo tunel
dev tun
# Claves y certificados
ca ca.cert
cert server.crt
key server.key
dh dh1024.pem
# Direcciones que se asignarán a los clientes. Diferentes de las de la subred del servidor. # La IP del
servidor en la vpn será 192.168.2.1
server 192.168.2.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# Ruta para que los clientes alcancen la red local del servidor.
5/6
# Hace que un road warrior pueda “ver” la red interna del servidor
push “route 192.168.1.0 255.255.255.0”
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4
CONFIGURACIÓN DEL CLIENTE
#/etc/openvpn/client.conf
# Indicamos que algunas configuraciones las tomará del servidor
client
# Dispositivo tunel
dev tun
proto udp
# Dirección real del servidor
remote pfc-server.dyndns.org
port 1194
resolv-retry infinite
# nobind –> para asegurarse de que solo actue como cliente y nunca como servidor
nobind
persist-key
persist-tun
# Claves y certificados
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 4
Tags:
Posted in: Temas Varios, VPN Linux, VPN Windows |
Comentarios (0)
Una configuración RoadWarrior es aquella en la cual se tiene una red privada con uno o varios clientes que accesarán a la
red como si fueran parte de ella (arquitectura host-to-net). El presente tutorial explica como configurar correctamente el
openvpn 2.0.9-4 en un Debian Etch que ya tiene configurado Shorewall. Tomé como base el tutorial de la configuración
para CentOS y lo modifiqué de acuerdo a lo que yo quería.
El openvpn viene con un directorio llamado easy-rsa, que tiene scripts bastante útiles para la configuración. Este
directorio lo copiamos a /etc/openvpn
cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
Ahora nos vamos a ese directorio recién creado y ejecutamos los siguientes comandos
. vars
./clean-all
./build-ca
Nos pedirá datos sobre la organización. No poner cualquier cosa ya que las preguntas se van a repetir más adelante y
debemos estar seguros de lo que habíamos escrito. En Common Name debemos poner cualquier cosa pero ponerla
Una vez creado el Certificate Authority (CA), creamos la llave del Servidor
./build-key-server servidor
En Common Name ponemos Servidor u otro nombre pero que sea diferente al anterior
Con este paso se crearon dos archivos (servidor.crt y servidor.key). Estos archivos debemos copiarlos al directorio
/etc/openvpn
Ahora generamos las claves de los clientes. Debemos ejecutar los mismos para cada cliente:
./build-key cliente1
./build-dh
Ahora todos los archivos creados menos los de los clientes deben ser copiados a /etc/openvpn/, es decir ca.crt, ca.key,
server.crt, server.key y dh1024.pem
Ahora pasamos los archivos necesarios a los clientes. Estos archivos son clientex.crt, clientex.key y ca.crt, se los
podemos pasar vía sftp o scp, pero siempre tratando de que sea seguro.
port 1194
proto udp
dev tun
persist-tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
#Ruta para que los clientes alcancen la red local del server (1.0/24)
push “route 192.168.1.0 255.255.255.0″
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 4
La red local de la VPN es 192.168.1.0/24 y la red de la VPN es 10.1.1.0/24. El usuario remoto, si está detrás de un NAT
debe tener una dirección local no perteneciente a la red de la VPN.
client
dev tun
proto udp
remote host.dominio.com
float #debido a que la IP de arriba es dinamica
resolv-retry infinite
nobind
persist-key
persist-tun
ca “D:\\Archivos de programa\\OpenVPN\\ca.crt” #Tener cuidado con el doble backslash (\\)
cert “D:\\Archivos de programa\\OpenVPN\\clientx.crt”
key “D:\\Archivos de programa\\OpenVPN\\clientx.key”
comp-lzo
verb 4
Ahora solo falta inicializar en los clientes, para ello es necesario el siguiente código:
En este caso no son necesarios los \\, con uno solo basta.
Con las líneas de arriba se arma la VPN, ahora solo falta modificar el firewall para que esa nueva interfaz sea procesada y
sus paquetes sean aceptados. Uso shorewall como frontend de iptables, y las modificaciones necesarias son las siguientes:
/etc/shorewall/zones (agregamos la nueva zona llamada road)
/etc/shorewall/interfaces
El Broadcast y las opciones se ponen siempre y cuando se pueda accesar desde la red a los usuarios de la VPN
/etc/shorewall/tunnels
openvpnserver puede ser reemplazado por openvpn, aunque no se recomienda debido a que este último no soporta a
clientes detrás de un NAT.
/etc/shorewall/policy
Tags:
Posted in: Linux Network Plus, Temas Varios, VPN Linux |
Comentarios (0)