domingo, 27 de marzo de 2011

OpenVPN en Squeeze



Configurando un OpenVPN Roadwarrior

Primero lo primero:

# aptitude install openvpn

Vamos al directorio donde estan los certificados easy-rsa
#cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

Creamos los certificados para el CA

#. ./vars



#./clean-all

#./build-ca

Creando el certificado para el server

#./build-key-server server

Creamos el certificado para el cliente

#./build-key cliente

Construimos el diffie hellman

#./build-dh

Las llaves creadas estan en la carpeta keys

#cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/

#ls -al

ca.key ca.crt server.key server.csr server.crt cliente.key client.crt cliente.csr

Tenemos lo siguiente

ca.key-> debe estar en el Server CA
client.crt-> debe estar en el cliente
client.key-> debe estar en el cliente
server.crt-> debe estar el server OPENVPN
server.key-> debe estar el server OPENVPN
ca.crt-> Debe estar en el server y en todos los clientes.

Vamos a modificar el archivo server.conf que esta en:

#cd /usr/share/doc/openvpn/examples/sample-config-files/

# nano server.conf
port 1194
proto udp
dev tun
ca /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ca.crt
cert /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.crt
key /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.key
dh /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
;push "redirect-gateway def1"
push "dhcp-option DNS 192.168.1.1"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3

Despues de modificarlo copiarlo a /etc/openvpn" directory

#cp server.conf /etc/openvpn/

Iniciamos el servicio

# /etc/init.d/openvpn start

configurar el iptables con las reglas basicas

Si ya se tiene un firewall se debe adicionar estas reglas

iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT

Con eso se tiene la parte del server, pero falta el cliente
Si es un winbug que es el comun de los casos se hace lo siguiente:

Se instala el cliente openvpn:

http://openvpn.se/download.html

Despues de instalar openvpn cliente, poner los archivos en la carpeta config

Creamos el archivo cliente.ovpn con el contenido

*****
client
dev tun
proto udp
remote ipdelserver 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca “C:\\Archivos de programa\\OpenVPN\\config\\ca.crt”
cert “C:\\Archivos de programa\\OpenVPN\\config\\cliente.crt”
key “C:\\Archivos de programa\\OpenVPN\\config\\cliente.key”
comp-lzo
verb 4
*****

Creamos la interface del openvpn en el winbugs

Inicio --> todos los programas --> OpenVPN --> Add a new TAP-win32 virtual ethernet adapter

En la capeta:

C:\Archivos de programa\OpenVPN\config

Debemos tener los archivos

cliente.ovpn, cliente.crt, cliente.key y ca.crt

Luego recien vamos al icono en la parte inferior, le damos click derecho y conect, te debe salir verde como en la figura sino cuestion de mirar los logs



PD: Siempre es bueno mirar los logs en el cliente y en el server para detectar posibles inconvenientes.

Fuente:

http://openvpn.net/index.php/open-source/documentation/howto.html
http://cihan.me/how-to-setup-openvpn-server-on-debian-lenny/

4 comentarios:

Javier Camilo dijo...

Hola

Me parece muy bueno ese tuto, sin embargo tengo una duda, antes me iba a la pagina de open vpn, descargaba un .deb los intalaba con dpkg -i y este mismo me decia que debia ejecutar un script, lo ejecutaba me preguntaba todos los parametros y listo, podia acceder a una interface GUI donde gestionaba todos los parametros, que paso con esto? ya no es posible??

Saludos

Javier Forero
Colombia

Muchikon dijo...

Seguro que si, pero aun no lo he intentado, voy a ver que tal va

buji dijo...

Hola, felicitaciones por el tuto!

Te consulto, del lado cliente, cuando decías:

"remote ipdelserver 1194"

Se puede usar una url de dyndns o no-ip?

(el server openvpn correrá detrás de un ADSL con IP Pública pero dinámica).

Muchas Gracias!

buji dijo...

Hola, felicitaciones por el tuto!

Te consulto del lado del cliente, cuando decías:

"remote ipdelserver 1194"

Puede ir una url de dyndns o no-ip?

(en mi caso el server openvpn corre en un adsl con ip pública pero fija).

Muchas Gracias!