1.
Abrir Puerto en el Firewall
Antes de nada indicar que hay que redireccionar un puerto en
el firewall a la máquina que pongamos con Ubuntu. Normalmente suele ser el
puerto 1194 en UDP.
el firewall a la máquina que pongamos con Ubuntu. Normalmente suele ser el
puerto 1194 en UDP.
2.
Instalar el Ubuntu Server
3.
Configurar IP Fijas (si no las hemos configurado
durante la instalación de Ubuntu)
Editar el archivo con:
sudo nano
/etc/network/interfaces
/etc/network/interfaces
y escribir esto en el archivo:
# The primary network interface
auto eth0
iface eth0 inet static
address 10.10.1.xxx (ip del servidor de OpenVPN en
la red principal)
la red principal)
netmask 255.255.255.0 (mascara de la red ppal)
network 10.10.1.0 (red ppal acabada en 0)
broadcast 10.10.1.255 (red ppal acabada en 255)
gateway 10.10.1.xxx (puerta enlace red ppal)
dns-nameservers 10.10.1.xxx
10.10.1.xxx (DNS de red
ppal)
10.10.1.xxx (DNS de red
ppal)
dns-search xxxxxxxxxxxx.xxx (nombre del dominio de red ppal)
4.
Instalar OPENVPN y WEBMIN
Añadir el repositorio de webmin:
Sudo nano /etc/apt/sources.list
deb http://download.webmin.com/download/repository
sarge contrib
sarge contrib
Añadir Clave y Actualizar el Respositorio
sudo wget
http://www.webmin.com/jcameron-key.asc
http://www.webmin.com/jcameron-key.asc
sudo apt-key add
jcameron-key.asc
jcameron-key.asc
sudo apt-get update
Instalar open vpn y
webmin
webmin
sudo apt-get install openvpn
sudo apt-get install webmin
Instalar el Modulo de WEBMIN para OPENVPN
Entrar en webmin con: https://your_vpnserver_ip:10000
Ir a webmin – webmin configuration – webmin modules
E instalar el
componente desde la url: http://www.openit.it/downloads/OpenVPNadmin/openvpn-2.6.wbm.gz
componente desde la url: http://www.openit.it/downloads/OpenVPNadmin/openvpn-2.6.wbm.gz
5.
Generar el
Cartificado CA
Desde
Servers -> OpenVPN + CA -> Certification Authority List
Servers -> OpenVPN + CA -> Certification Authority List
Se suele llamar Nombre-CA, y hay que rellenar los parámetros
de estado, provincia…
de estado, provincia…
Y darle a Save
6.
Generar el Certificado de Servidor
Desde Servers -> OpenVPN + CA -> Certification
Authority List veremos el certificado
que acabamos de crear. Debemos entrar en Keys List. Para Crear los certificados
de clientes y también de servidor.
Authority List veremos el certificado
que acabamos de crear. Debemos entrar en Keys List. Para Crear los certificados
de clientes y también de servidor.
Cubrimos el nombre pe “certificadoservidor” e importante no
olvidarse seleccionar SERVER. El resto de opciones no hay que cambiarlas.
olvidarse seleccionar SERVER. El resto de opciones no hay que cambiarlas.
7.
Generar el Servidor de OpenVPN en base al CA
Una vez generado el Certificado CA y el Certificado de
Servidor ya podemos levantar nuestro servidor VPN. Vamos a Servers ->
OpenVPN + CA -> VPN List
Servidor ya podemos levantar nuestro servidor VPN. Vamos a Servers ->
OpenVPN + CA -> VPN List
Veremos que ya aparece seleccionado nuestro certificado CA,
le damos a nuevo servidor.
le damos a nuevo servidor.
Y debemos configurar los parámetros siguientes:
Nombre: NombreVPN
Podemos elegir el puerto y el protocolo. Debe coincidir con
los que hemos abierto en el firewall al principio del manual. Por defecto es el
1194 en UDP
los que hemos abierto en el firewall al principio del manual. Por defecto es el
1194 en UDP
Net IP assigns (option server): En network habrá que poner la red que
van a asignar IPs de los clientes que se conecten. Por ejemplo 10.10.yyy.xxx
(ojo que no debe coincidir con la de la red principal)
van a asignar IPs de los clientes que se conecten. Por ejemplo 10.10.yyy.xxx
(ojo que no debe coincidir con la de la red principal)
En la
sección:
sección:
Additional
Configurations
example:
push «route 192.168.100.0 255.255.255.0»
This parameter adds a route to the client when it’s connected
Configurations
example:
push «route 192.168.100.0 255.255.255.0»
This parameter adds a route to the client when it’s connected
Pondremos:
push «route xxx.yyy.zzz.0
255.255.255.0″ (red
ppal a la que queremos acceder)
255.255.255.0″ (red
ppal a la que queremos acceder)
push «dhcp-option
DOMAIN xxxxxxxxxx.xxx» (dominio
de red ppal)
DOMAIN xxxxxxxxxx.xxx» (dominio
de red ppal)
push «dhcp-option DNS xxx.yyy.zzz.mmm»
(dns de red ppal)
(dns de red ppal)
push «dhcp-option DNS
xxx.yyy.zzz.mmm » (dns
de red ppal)
xxx.yyy.zzz.mmm » (dns
de red ppal)
8.
Generar los Certificados de los clientes
Una vez realizados los pasos anteriores hay que crear los
certificados para cada cliente. Vamos a Servers -> OpenVPN + CA -> Certification
Authority List
certificados para cada cliente. Vamos a Servers -> OpenVPN + CA -> Certification
Authority List
Y crearemos un certificado para cada cliente. Únicamente
debemos ir cambiando el nombre de cada certificado. Y darle a SAVE.
debemos ir cambiando el nombre de cada certificado. Y darle a SAVE.
Podemos crear tantos como clientes vayamos a tener o incluso
más para aumentar clientes en el futuro.
más para aumentar clientes en el futuro.
9.
Añadir los clientes al Servidor de OpenVPN
Vamos a
Servers -> OpenVPN + CA -> VPN List -> ClientList
Servers -> OpenVPN + CA -> VPN List -> ClientList
Aquí la única configuración que hay que hacer es cambiar la remote
(Remote IP): xxx.yyy.zzz.mmm por la IP externa que vayamos a utilizar de
conexión por ejemplo pepito.dyndns.org
(Remote IP): xxx.yyy.zzz.mmm por la IP externa que vayamos a utilizar de
conexión por ejemplo pepito.dyndns.org
10.
Iniciar ServidorVPN
Ahora ya podemos encender el servidor VPN y los clientes ya
podrán conectarse con sus certificados. Solo hay que ir a: Servers ->
OpenVPN + CA -> Start OpenVPN
podrán conectarse con sus certificados. Solo hay que ir a: Servers ->
OpenVPN + CA -> Start OpenVPN
11.
Activar el Firewall en WEBMIN
12.
Redireccionar la Peticiones IPv4
Editar
/etc/sysctl.conf descomentando la línea, quitar el # de delante:
/etc/sysctl.conf descomentando la línea, quitar el # de delante:
net.ipv4.ip_forward=1
13.
Añadir IPTABLES
Configurar iptables ejecutando en el terminal:
sudo su
iptables -A FORWARD -m state –state
RELATED,ESTABLISHED -j ACCEPT
RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s IPREDCLIENTES/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s IPREDCLIENTES /24 -o eth0
-j MASQUERADE
-j MASQUERADE
iptables -t nat -A POSTROUTING -j SNAT –to-source IPSERVIDORVPN
IPREDCLIENTES: La
que indicamos en el apartado Net IP assigns (option server) a la hora de
levantar el servidor.
que indicamos en el apartado Net IP assigns (option server) a la hora de
levantar el servidor.
IPSERVIDORVPN: La
IP que tiene el servidor, se la configuramos en los primeros pasos del manual.
IP que tiene el servidor, se la configuramos en los primeros pasos del manual.
Las IPTABLES se borrarian al reiniciar el equipo así que
voy a solucionar esto. Comprobar si en etc/network/interfaces tengo una línea
como estas, si no están añadirlas.
voy a solucionar esto. Comprobar si en etc/network/interfaces tengo una línea
como estas, si no están añadirlas.
post-up iptables-restore < /etc/iptables.up.rules
post-down iptables-save > /etc/iptables.up.rules
Una vez configurado todo el tema de IPtables hay que reiniciar
el servidor de Ubuntu.
el servidor de Ubuntu.
14.
Exportar Configuracion para los
Clientes
Ir a Servers -> OpenVPN + CA -> VPN
List -> Client List
List -> Client List
Veremos los diferentes certificados de
cliente que se aceptan. A la derecha podemos bajarnos la configuración en el botón
export.
cliente que se aceptan. A la derecha podemos bajarnos la configuración en el botón
export.
Nos bajaremos un archivo comprimido donde
viene el paquete completo de configuración del cliente de OpenVPN.
viene el paquete completo de configuración del cliente de OpenVPN.
15.
Conectar desde Un cliente
Vamos a explicar brevemente como conectar
desde un sistema Windows. Instalar el cliente de OpenVPN. Copiar los archivos
descargados al directorio conf del programa. Abrir el programa. Aparecerá un
icono con dos ordenadores en la barra inferior de windows en la parte derecha. Hacer
clic con el botón derecho y elegir conectar.
desde un sistema Windows. Instalar el cliente de OpenVPN. Copiar los archivos
descargados al directorio conf del programa. Abrir el programa. Aparecerá un
icono con dos ordenadores en la barra inferior de windows en la parte derecha. Hacer
clic con el botón derecho y elegir conectar.
Una pregunta, ¿es posible configurar que los clientes en vez de conectar a la red local, conecten a la red interna de la maquina? me refiero a 127.0.0.1 o localhost.
¿si es posible bastaría con poner algún parámetro especifico en los diferentes xxx.yyy.zzz.mmm?
pues no lo he probado pero en principio aun asignando a los equipos que conectan la un rango en la IP 127.0.0.1, recuerda que tu propio host tb resuelve la 127.0.0.1 y no va a tratar de ir al servidor ubuntu resolviendo la 127.0.0.1 contra tu propio equipo. Tal vez sea más sencillo darle un rango de red como hago en mi ejemplo y no pasarle puerta de enlace ni ruta ni nada para que no tenga forma de ver el resto de red. Es decir evitar cosas como esta push "route 192.168.100.0 255.255.255.0" donde defino la ruta etc… pero ya te digo, no lo he probao…