Al precio que están los servidores virtuales (VPS) es más práctico contar con tu propio servidor de VPN que contratar los servicios de una VPN. Hay dos motivos principales, uno es que las IPs de los servicios de VPN podrían ser traceadas por los servicios de streaming, el otro es que cuando utilizamos un servicio, estamos compartiendo el ancho de banda con mucahos otros usuarios, lo cual repercute en la calidad del servicio.
Una vez tenemos contratado el VPS con la distribución de Linux que prefiráis (yo he elegido CentOS 6), procedemos a instalar el servidor OpenVPN:
- Desde el panel de control de tu VPS, comprueba que tienes activado TUN/TAP.
- Descarga OpenVPN para tu distribución aquí e instálalo. (Puedes obtener el enlace con el botón derecho y descargarlo en tu VPS con wget, para CentOS 6 sería):
[server] # wget http://swupdate.openvpn.org/as/openvpn-as-2.1.4-CentOS6.x86_64.rpm [server] # rpm -i openvpn-as-2.1.4-CentOS6.x86_64.rpm
- Pon una contraseña al usuario openvpn
[server] # passwd openvpn
- Añadimos el usuario que usaremos para conectarnos a la VPN:
[server] # useradd vpnuser [server] # passwd vpnuser
- Comprobamos que el servicio de VPN está escuchando:
[server] # netstat -nlp | grep openvpn tcp 0 0 5.4.12.14:443 0.0.0.0:* LISTEN 835/openvpn-openssl udp 0 0 5.4.12.14:1194 0.0.0.0:* 862/openvpn-openssl
- Tenemos dos puertos escuchando, el 1194 en UDP y el 443 en TCP. Nos aseguramos de que no hay ningún firewall bloqueando el acceso a esos puertos y que el nombre asignado se resuelve correctamente (si no tenemos que usar la IP), para eso, desde nuestro cliente:
-
[client] $ host vpn.ejemplo.com vpn.ejemplo.com has address 5.4.12.14 [client] $ nc -vzu vpn.ejemplo.com 1194 Connection to vpn.ejemplo.com 1194 port [udp/openvpn] succeeded! [client] $ nc -vz vpn.ejemplo.com 443 Connection to vpn.ejemplo.com 443 port [tcp/https] succeeded! [client] $ nc -vz vpn.ejemplo.com 943 Connection to vpn.ejemplo.com 943 port [tcp/*] succeeded!
- Ahora ya podemos conectarnos al panel de control desde un navegador de nuestro cliente: https://vpn.ejemplo.com:943/admin
- Añade tu usuario ‘vpnuser’
- Pulsa el botón «Update Running Server» para aplicar los cambios.
- Accede para descargar el fichero de configuración que necesitas para conectarte desde el cliente: https://vpn.ejemplo.com:943/ Valídate con el usuario ‘vpnuser’.
- Pulsa en Yourself (autologin profile), eso te descargará un fichero client.ovpn con la configuración y los certificados que necesitas.
- Con esto ya podrías conectarte desde la línea de comandos, en mi caso, el cliente es un debian/ubuntu, así que:
[client] $ sudo apt-get install openvpn [client] $ sudo openvpn --config ~/Downloads/client.ovpn
Conexión desde el Network Manager (GUI)
La parte complicada viene si queremos conectarnos desde el Network Manager, ya que la importación del fichero client.ovpn no funciona correctamente. Para esto yo he tenido que hacer los siguientes pasos:
- Verifico que tengo todos los paquetes instalados:
[client] $ sudo apt-get install network-manager-openvpn-gnome [client] $ sudo apt-get install network-manager-openvpn [client] $ sudo apt-get install network-manager-vpnc [client] $ sudo apt-get install easy-rsa [client] $ sudo /etc/init.d/networking restart
- Debemos extraer los certificados del fichero client.ovpn, para ello editamos el fichero y copiamos pegamos en otros ficheros.
Todo lo que está entre <ca> y </ca> lo guardamos en un fichero ca.crt
Todo lo que está entre <cert> y </cert> en client.crt
Entre <key> y </key> en client.key
Y entre <tls-auth> y </tls-auth> en ta.key - Ahora ya podemos crear una nueva VPN desde el Network Manager del tipo OpenVPN
- Estas son las opciones de configuración necesarias:
Connection name: OpenVPN VPN/Authentication type: Password with Certificates (TLS) VPN/User: vpnuser VPN/Password: *********** VPN/User Certificate: client.crt VPN/CA Certificate: ca.crt VPN/Private Key: client.key Advanced/General/Use custom gateway port: 443 Advanced/General/Use LZO data compression: ON Advanced/General/Use a TCP connection: ON Advanced/TLS Authentication/Use Additional Authentication: ON Advanced/TLS Authentication/Key File: ta.key Advanced/TLS Authentication/Key direction: 1
- Ya podemos conectarnos a la VPN desde el Network Manager. Esta conexión también puede ser invocada desde la línea de comandos y no requiere sudo, ya que el Network Manager ya tiene los privilegios necesarios:
[client] $ nmcli con up id OpenVPN
0 Respuestas to “Configurar una VPN con OpenVPN (servidor y cliente)”