Check the new version here

Popular channels

RoadWarrior en OpenVpn (Debian Etch)

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.

Primero instalamos el openvpn:

apt-get install openvpn

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


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)
* build-ca: procedemos a generar el certificado 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

Esto genera los archivos cliente1.key (llave) y cliente1.crt (certificado)

Creamos los parámetros Diffie-Hellman:

/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.

La configuración del servidor la ponemos en /etc/openvpn/server.conf


port 1194
proto udp
dev tun
persist-tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

#Direcciones que se asignaran a los
#clientes, el server es .1
server 10.1.1.0 255.255.255.0

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″

#Para que los clientes se visualicen entre ellos
#Debe ir junto con la opción routeback en el shorewall
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.

La configuración de los clientes sería así:


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:

openvpn –config “ruta_cliente.ovpn”

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)


#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
road ipv4


/etc/shorewall/interfaces

#ZONE INTERFACE BROADCAST OPTIONS
road tun+ detect routeback


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


#TYPE ZONE GATEWAY GATEWAY ZONE
openvpnserver:1194 net 0.0.0.0/0


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

#SOURCE DESTINATION POLICY
road loc ACCEPT


Aceptamos todo el tráfico proveniente de la VPN

Reiniciamos el shorewall e iniciamos el openvpn y todo debería funcionar.


Fuenteatto en casa para T!
Colaboradores:El Jesuita(Diego.Q) & phyzion

Tutorial Conf. CentOS:http://routerman.blogsome.com/go.php?http://www.ecualug.org/?q=2007/02/06/comos/centos/c_mo_instalar_y_configurar_openvpn/2_configuraci_n_de_roadwarrior


0
0
0
1
0No comments yet