Para instalar OpenVPN server con Interfaz web para administrar usuarios basta con ejecutar los siguientes comandos:
wget https://raw.githubusercontent.com/theonemule/simple-openvpn-server/master/openvpn.sh chmod +x openvpn.sh ./openvpn.sh --adminpassword=TestVPN25
Una vez instalado simplemente tenemos que entrar mediante ip mediante https
Estos comandos lo he sacado de la página https://clouding.io/kb/instalar-openvpn-en-ubuntu/ . Te aconsejo visitarla ya que solo he puesto lo básico para instalar el VPN.
Una vez instalado el servidor OpenVPN he querido poder entrar al panel de control a través del subdominio vpn.informaticosmurcia.es para poder acceder de una forma sencilla y fácil de recordar.
Bueno antes de nada saber que el script de arriba instala el servidor web lighttpd para poder realizar la administración del servidor VPN. Yo de forma particular utilizo en mi servidor de pruebas el servidor web nginx.
Primero voy a mover los ficheros que el script de OpenVPN me ha generado en /var/www/ a una carpeta diferente para poder luego redirigir el trafico de la url vpn.informaticosmurcia.es a esa carpeta:
- Creo un directorio dentro de /var/www/ llamado vpn.informaticosmurcia.es
- Muevo los ficheros creados por el script de instalacion del OpenVPN
- mv /var/www/download.sh /var/www/vpn.informaticosmurcia.es/download.sh
- mv /var/www/index.sh /var/www/vpn.informaticosmurcia.es/index.sh
- Editamos el fichero /lighttpd.conf y cambiamos el puerto por defecto y el directorio raiz por defecto
server.document-root = "/var/www/vpn.informaticosmurcia.es" server.port = 6969
Una vez cambiado reiniciamos el servicio lighttpd.
service lighttpd restart
- Creamos el fichero de configuracion del subdominio en nginx.
nano /etc/nginx/sites-available/vpn.informaticosmurcia.es
Realizamos la configuración del fichero:
server { listen 80; server_name vpn.informaticosmurcia.es; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://127.0.0.1:6969/; } }
Lo que hace Nginx es que todo lo que provenga de la url vpn.informaticosmurcia.es lo vamos a rediriguir de forma tasparente a nuestro servidor lighttpd que esta en el puerto 6969 en nuestro servidor.
- Habilitamos en el servidor nginx el dominio.
sudo ln -s /etc/nginx/sites-available/vpn.informaticosmurcia.es /etc/nginx/sites-enabled/vpn.informaticosmurcia.es
Y reiniciamos el servidor nginx
sudo service nginx restart
Una vez hecho ya podemos acceder de forma comoda a nuestro servidor OpenVPN a través de vpn.informaticosmurcia.es
- —- Dejo el fichero de configuración por si os da algun error:
-
:/etc/openvpn$ cat server.conf port 1194 proto udp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 cipher AES-256-CBC user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem
Edito: Me ha ocurrido que instalando el servidor VPN en una maquina virtual para hacer pruebas el cliente no podia navegar. La solución es la siguiente.
iptables -I FORWARD -i tun0 -o eth0 -s 10.7.0.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s 10.7.0.0/24 -j MASQUERADE
tun0 es la interfaz que lan del servidor vpn
eth0 es la interfaz donde se va a redirigir el trafico hacia internet.