Como configurar OpenVPN/es

Aus i2pwiki.mk16.de
Zur Navigation springen Zur Suche springen

Introducción[Bearbeiten]

OpenVPN es una solución de conectividad basada en software libre: SSL (Secure Sockets Layer) VPN Virtual 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 IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre.

A continuación se configurara tanto un servidor OpenVPN como un cliente<ref>https://help.ubuntu.com/lts/serverguide/openvpn.html</ref>.


Servidor OpenVPN[Bearbeiten]

Para estos efectos se usara como ejemplo un sistema Ubuntu.

$ sudo apt-get install openvpn easy-rsa


Configuracion de un Public Key Infrastructure (PKI)[Bearbeiten]

Configuracion de una Certificate Authority (CA)[Bearbeiten]

$ sudo mkdir /etc/openvpn/easy-rsa/
$ sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
$ sudo nano /etc/openvpn/easy-rsa/vars 
[...]
export KEY_COUNTRY="US"
export KEY_PROVINCE="NC"
export KEY_CITY="Winston-Salem"
export KEY_ORG="Example Company"
export KEY_EMAIL="steve@example.com"
export KEY_CN=MyVPN
export KEY_NAME=MyVPN
export KEY_OU=MyVPN
[...]
$ cd /etc/openvpn/easy-rsa/
$ sudo source vars
$ sudo ./clean-all
$ sudo ./build-ca


Crear los Certificados del Servidor[Bearbeiten]

$ sudo ./build-key-server myservername
[...]
Sign the certificate? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]
$ sudo ./build-dh
$ cd keys/
$ sudo cp myservername.crt myservername.key ca.crt dh2048.pem /etc/openvpn/


Crear los Certificados del Servidor[Bearbeiten]

Para crear los certificados para el/los clientes

$ cd /etc/openvpn/easy-rsa/
$ sudo source vars
$ sudo ./build-key client1

Estos certificados deben compartirse con el/los clientes y son

/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key


Configuración básica del Servidor[Bearbeiten]

$ sudo ls -l /usr/share/doc/openvpn/examples/sample-config-files/
total 68
-rw-r--r-- 1 root root 3427 2011-07-04 15:09 client.conf
-rw-r--r-- 1 root root 4141 2011-07-04 15:09 server.conf.gz
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
$ sudo gzip -d /etc/openvpn/server.conf.gz
$ sudo nano /etc/openvpn/server.conf
[...]
ca ca.crt
cert myservername.crt
key myservername.key 
dh dh2048.pem
[...]
$ sudo nano /etc/sysctl.conf 
[...]
#net.ipv4.ip_forward=1
[...]
$ sudo sysctl -p /etc/sysctl.conf
$ cd /etc/openvpn
$ sudo service openvpn start
* Starting virtual private network daemon(s)...
* Autostarting VPN 'server'                     [ OK ]
$ sudo ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
[...]


Cliente OpenVPN[Bearbeiten]

Al igual que en el apartado Servidor OpenVPN, se usara un sistema Ubuntu.

$ sudo apt-get install openvpn
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Copiamos los certificados CA que recibimos del servidor OpenVPN y editamos la configuración para aceptarlos.

$ sudo cp ca.crt client1.crt client1.key /etc/openvpn/
$ sudo nano /etc/openvpn/client.conf
[...]
ca ca.crt
cert client1.crt
key client1.key

Así como lo referente a la ubicación del servidor

[...]
client
remote vpnserver.example.com 1194
[...]

Ahora se inicia el cliente OpenVPN.

$ sudo service openvpn start
* Starting virtual private network daemon(s)...   
*   Autostarting VPN 'client'                          [ OK ] 

Chequeamos si se creo la interfaz tun0 del túnel.

$ sudo ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

Chequeamos si podemos hacer ping al servidor OpenVPN.

$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms

También podemos chequear la tabla de los ruteadores.

$ sudo netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.8.0.5        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH       0 0          0 tun0
192.168.42.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         192.168.42.1    0.0.0.0         UG        0 0          0 eth0


Véase También[Bearbeiten]


Referencias[Bearbeiten]

<references />