Вы находитесь на странице: 1из 39

24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq

http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 1/39
Crear y configurar servidor
openvpn
58
25 ene 2014 | Redes
Tags: Configuracin Debian Internet Openvpn Vpn
En pasados post vimos como podamos crear muy fcilmente nuestro propio servidor VPN mediante el
protocolo pptp.
http://geekland.hol.es/crear-un-servidor-vpn-pptp/
Pudimos constatar y experimentar que la instalacin y configuracin del servidor era sumamente sencilla y era
altamente compatible con la totalidad de sistemas operativos existentes, pero como punto negativo tambin
vimos que a da de hoy pptp presenta serios problemas en lo que a la seguridad se refiere.
Por lo tanto a toda la gente que necesite un VPN para la transmisin de informacin sensible no le
recomiendo el uso del protocolo pptp. Le recomiendo el uso del protocolo OpenVPN. Para ver como
instalar y configurar este tipo de servidor VPN tan solo tienen que seguir los pasos que vamos a definir a
continuacin.
TIPO DE CONFIGURACIN VPN QUE
VAMOS A USAR
Hay distintas formas de configurar un servidor mediante OpenVPN. Los distintos tipos de configuracin
existentes son Host to Host, Road to Warrior (Host to LAN) y Net to net. Nosotros nos
focalizaremos en el Road to Warrior o Host to LAN, por ser el ms popular de todos y el que
seguramente se adaptar a prcticamente las necesidades de de cualquier usuario.
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 2/39
La configuracin Road to Warrior (Host to LAN mediante tnel) permitir que mltiples dispositivos
u ordenadores se puedan conectar simultneamente a nuestra red VPN y compartir recursos e
informaciones con la red a que se conectan. Por lo tanto en este caso tenemos varios clientes que se pueden
conectar de forma independiente al servidor VPN. Para quien precise de ms informacin acerca de este
tipo de configuracin puede consultar el siguiente enlace.
La configuracin Host to Host, a diferencia del modo de configuracin anterior, nicamente nos
permitir la conexin entre 2 mquinas o dispositivos conectados a Internet o dentro de una red local.
Por lo tanto en este caso solamente existe un cliente y un servidor. Adems ests 2 mquinas o dispositivos
no podrn compartir recursos e informaciones con otros equipos que estn conectados en la misma red
LAN.
Para finalizar tenemos la configuracin Net to Net, Red-red, o LAN to LAN. Esta configuracin
mayoritariamente es usada en el mundo empresarial. Esta configuracin lo que hace es unir redes locales
(LAN) ubicadas en distintas ubicaciones geogrficas para de esta forma poder compartir informacin
entre todos los clientes de todas las redes. De este modo cada una de las redes locales LAN tiene un punto
de acceso o puerta de enlace que proporciona un canal de transmisin seguro entre 2 o ms redes.
ASEGURAR QUE EL SERVIDOR
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 3/39
OPENVPN TENGA IP FIJA EN LA RED
LOCAL
Es muy importante asegurar que nuestro servidor disponga de una IP interna fija en la red local. Es
importante porqu cuando recibamos una peticin de los clientes VPN, el router tendr que saber a que IP
interna tiene que redireccionar la peticin del cliente VPN.
Para conseguir disponer de un servidor con ip interna fija tan solo tienen que seguir los pasos que
se detallan en el siguiente enlance:
http://geekland.hol.es/configurar-ip-fija_o_estatica_ipv4/
Nota: El mtodo descrito en el enlace es vlido en el caso que estis
usando un servidor sin entorno grfico. En el caso que el servidor que
usis disponga de entorno grfico tendris que configurar este aspecto a
travs de las interfaces visuales de vuestro gestor de red que
probablemente ser network manager owicd.
Una vez terminados la totalidad de pasos mi servidor tendr una IP fija que en mi caso ser
la 192.168.1.188. Esta IP es la que deberemos usar para que el router redireccione las peticiones de los
clientes al servidor OpenVPN.
REDIRECCIONAMIENTO DINMICO
NO-IP
Cuando tengamos nuestro servidor VPN funcionando, lo ms probable es que tengamos conectarnos desde
el exterior de nuestra local red local mediante el servidor VPN.
Para conectarnos a nuestra red local tendremos que saber nuestra IP Pblica pero desafortunadamente en la
gran mayora de casos la IP que tenemos es dinmica. Por lo tanto se puede dar perfectamente el caso que
en el momento de conectarnos no sepamos la IP Pblica de nuestro servidor.
Para solucionar este problema tenemos que asociar la IP Pblica de nuestro servidor a un dominio.
Para poder realizar este paso tan solotienen que seguir las indicaciones del siguiente enlace:
http://geekland.hol.es/encontrar-servidor-con-dns-dinamico/
Una vez realizados estos pasos tendris vuestra IP Pblica asociada a un dominio. En mi caso mi IP Pblica
est asociada al dominiogeekland.sytes.net
INSTALACIN DEL SERVIDOR
La instalacin del servidor la vamos a realizar en un sistema operativo Debian Wheezy. La totalidad del
procedimiento descrito tiene que funcionar en cualquier distribucin que derive de Debian como
pueden ser Ubuntu, Crunchbang, Linux Mint, Kubuntu, etc.
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 4/39
Para instalar el servidor OpenVPN lo primero que tenemos que hacer esabrir una terminal. Dentro de la
terminal teclean el siguiente comando:
sudo apt-get install openvpn openssl
Ahora ya tenemos instalado el servidor.
CREAR UNA AUTORIDAD DE
CERTIFICACIN
OpenVPN es un protocolo de VPN basado SSL/TLS mediante certificados y claves RSA creadas mediante
openssl. Por lo tanto el nivel de seguridad proporcionado por OpenVPN es muy elevado.
Al ser un protocolo que funciona bajo certificados y claves necesitaremos crear una autoridad de
certificacin para a posteriori generar los certificados.
Nota: La principal funcin de una autoridad de certificacin es la de emitir y
revocar certificados digitales para terceros. Para quien necesite ms
informacin puede consultar el siguiente enlace.
Crear el certificado raz ca para firmar y revocar los
certificados de los clientes
Para poder emitir y revocar la claves necesitamos crear nuestra propia autoridad certificadora y
disponer de nuestro certificado raz ca.ctr y de nuestra clave ca.key para poder crear y firmar las claves de
los clientes y del servidor.
Para realizar este paso, y el resto de pasos, ejecutoriaremos los scripts que OpenVPN trae incorporados de
serie. Para ello tenemos que crear una carpeta con nombre easy-rsa dentro de la
ubicacin /etc/openvpn.Para ello abrimos una terminal y tecleamos el siguiente comando:
cd /etc/openvpn
mkdir easy-rsa
Seguidamente tenemos que copiar los scripts de configuracin de OpenVPN, que se hallan en la
ubicacin/usr/share/doc/openvpn/examples/easy-rsa/2.0/, dentro de la carpeta easy-rsa que
acabamos de crear. Para ello en la terminal tecleamos el siguiente comando:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* easy-rsa
Una captura de pantalla los pasos realizados hasta el momento se puede ver a continuacin:
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 5/39
En el caso que que vuestra distro trabaje con la versin 3 de easy-rsa, en el momento de introducir el ltimo
comando, obtendris un error parecido al siguiente error:
cp: no se puede efectuar `stat sobre /usr/share/doc/openvpn/examples/easy-rsa/2.0/*: No existe
el archivo o el directorio
Los pasos a realizar para solucionar este error son los siguientes. En la terminal escriben el siguiente comando
para instalar el paquete easy-rsa.
apt-get install easy-rsa
Seguidamente borran la carpeta easy-rsa que habamos creado inicialmente introduciendo el siguiente
comando en la terminal:
rm -R /etc/openvpn/easy-rsa
Finalmente para obtener los scripts para la creacin de claves en la terminal introducimos el siguiente
comando:
make-cadir /etc/openvpn/easy-rsa
Nota: Algunas de las distros que funcionan con easy-rsa 3.0 son Ubuntu
14.04, Linux Mint 16, etc.
Para ejecutar los scripts que acabamos de copiar o de obtener, tenemos que ir a la ubicacin donde
los guardamos. Para ello ingresamos el siguiente comando en la terminal:
cd /etc/openvpn/easy-rsa
Antes de ejecutar los scripts editaremos el fichero vars para modificar una serie de parmetros.
Para modificar el fichero vars se tiene que introducir el siguiente comando en la terminal:
nano vars
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 6/39
Tamao de las claves
Una vez abierto el editor de texto tenemos que localizar y modificar la siguiente lnea:
export_KEY_SIZE=1024
Una vez encontrada la sustituyen por la siguiente linea:
export_KEY_SIZE=2048
Nota: Con esta modificacin estamos incrementando el tamao de la
claves privadas (.key) que vamos a generar y tambin del parmetro de
Diffie Hellman. Con esta modificacin incrementarios del tamao de las
claves de 1024 bits a 2048 bits. Tambin seria posible usar 4096 bits.
Este parmetro no tiene porqu penalizar en exceso el rendimiento del
servidor. nicamente penalizar el proceso autentificacin Handshake de
SSL/TLS.
Datos de la entidad emisora de los certificados
Seguidamente tenemos que introducir los datos de la entidad emisora de los certificados que
seremos nosotros mismos Para ello tenemos que localizar las siguientes lineas:
export KEY_COUNTRY=US
export KEY_PROVINCE=CA
export KEY_CITY=SanFrancisco
export KEY_ORG=Fort-Funston
export KEY_EMAIL=me@myhost.mydomain
export KEY_EMAIL=mail@host.domain
export KEY_CN=Changeme
export KEY_CN=Changeme
export KEY_OU=Changeme
Una vez localizadas las lineas tan solo se tienen reemplezar el contenido por defecto por nuestros datos
reales. En mi caso los datos a rellenar podran ser:
export KEY_COUNTRY=ES Poner las 2 iniciales de tu pas
export KEY_PROVINCE=CA Poner las 2 iniciales de tu provincia
export KEY_CITY=s*******a Poner el nombre de tu ciudad
export KEY_ORG=geekland Poner el nombre de la organizacin
export KEY_EMAIL=xxxxxxx@gmail.com Usar vuestra direccin de email
export KEY_EMAIL=xxxxxxx@gmail.com Usar vuestra direccin de email
export KEY_CN= wheezy Usar el nombre del host del servidor
export KEY_NAME=vpnkey Designa el nombre de la entidad certificadora que se crear
export KEY_OI=IT Departamento de la empresa
Nota: Dentro de este fichero tambin podemos configurar el tiempo de
validez que tendr nuestra entidad certificadora y el tiempo de validez que
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 7/39
tendrn los certificados y claves que crearemos. El valor estndar de
validez son 3650 das que no voy a tocar.
Una vez modificado el archivo vars guardamos los cambios y lo cerramos. Ahora tendremos que
exportar sus variables. Para exportar sus variables tenemos que teclear el siguiente comando en la terminal:
source ./vars
Seguidamente ejecutaremos el script clean-all. El script clean-all borrar la totalidad de claves que podran
existir en la ubicacin/etc/openvpn/easy-rsa/keys. Para ejecutar el script tenemos que teclear el siguiente
comando en la terminal:
./clean-all
El siguiente paso es generar los parmetros de Diffie Hellman. Los parmetros de Diffie Hellman se
utilizarn para poder intercambiar las claves ente cliente y servidor de forma segura. Para poder realizar este
paso tenemos que teclear el siguiente comando en la terminal:
./build-dh
Al terminar el proceso dentro de la ubicacin /etc/openvpn/easy-rsa/keys se habr creado el
archivo dh2048.pem que contiene los parmetros Diffie Hellman.
Nota: Para quien requiera informacin adicional de los parmetros de
Diffie Hellman puede consultar el siguiente enlace. Este parmetro se
usar poder un intercambio de claves entre 2 participantes de forma
segura.
En la siguiente captura de pantalla podrn ver una muestra de los pasos realizados hasta el momento:
Finalmente vamos a a crear el certificado y la clave privada de nuestra propia autoridad
certificadora. Para ello tenemos que teclear el siguiente comando en la terminal:
./build-ca
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 8/39
Durante el proceso de creacin se les har una serie de preguntas para incorporar informacin dentro del
certificado que se crear. Como anteriormente hemos editado el fichero vars ahora solo nos tenemos que
limitar a aceptar el valor por defecto de las preguntas que nos hacen.
Al terminar el proceso dentro de la ubicacin /etc/openvpn/easy-rsa/keys se ha creado ca.crt y ca.key:
ca.crt: Es el certificado raz pblico de la autoridad de certificacin (CA)
ca.key: Este fichero contiene la clave privada de la autoridad de certificacin (CA). Este archivo debe
mantenerse protegido y no debe estar al alcance de terceros.
Una vez creado el certificado y la clave de vuestra autoridad certificador la pantalla de vuestro ordenador
tiene que presentar el siguiente estado:
CREAR EL CERTIFICADOS Y LA
CLAVE DEL SERVIDOR OPENVPN
A estas alturas ya lo tenemos todo listo para poder crear el certificado y clave de nuestro servidor.
Para ello introducimos el siguiente comando en la terminal:
./build-key-server whezzyVPN
Nota: whezzy VPN es el nombre del servidor. Vosotros tenis que
introducir el nombre que vosotros queris.
Una vez introducido este comando se nos har una serie de preguntas. Simplemente tienen que contestar el
valor por defecto ya que anteriormente hemos modificado el archivo vars.
Al terminar el proceso dentro de la ubicacin /etc/openvpn/easy-rsa/keys se habrn creado los siguientes
archivos:
whezzyVPN.key: Este fichero contiene la clave privada del servidor. Este archivo no debe estar al
alcance de nadie.
whezzyVPN.crt: Este fichero corresponde al certificado pblico del servidor.
whezzyVPN.csr: Este archivo es la peticin de certificado que se enva a la autoridad de
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 9/39
certificacin. Mediante la informacin que contiene el archivo .csr, la autoridad de certificacin podr
realizar el certificado del servidor una vez hayan realizado las comprobaciones de seguridad pertinentes.
Una vez creado el certificado y la clave del servidor la pantalla de vuestro ordenador tiene que presentar el
siguiente estado:
CREAR EL CERTIFICADO Y LAS
CLAVES DE LOS CLIENTES
El siguiente paso es crear los certificados y las claves de los clientesque se podrn conectar al
servidor VPN. Para ello tenemos que teclear el siguiente comando en la terminal:
./build-key usuariovpn
Nota: usuariovpn es el nombre de usuario que vamos a crear. En vuestro
caso tendris que reemplazar usuariovpn por el nombre que queris.
Una vez introducido este comando se nos har una serie de preguntas. Simplemente tienen que contestar el
valor por defecto ya que anteriormente hemos editado el fichero vars.
Al terminar el proceso dentro de la ubicacin /etc/openvpn/easy-rsa/keys se habrn creado los siguientes
archivos
usuariovpn.key: Este fichero contiene la clave privada del cliente. Este archivo no debe estar al alcance
de nadie.
usuariovpn.crt: Este fichero corresponde corresponde al certificado pblico del servidor.
usuariovpn.csr: Este archivo es la peticin de certificado que es enva a la autoridad de certificacin.
Mediante la informacin contenida en el archivo .csr, la autoridad de certificacin podr realizar el certificado
del cliente una vez hayan realizado las comprobaciones de seguridad pertinentes.
Nota: El procedimiento de generacin de clientes se deber repetir tantas
veces como clientes queris que tenga el servidor OpenVPN.
Una vez creado el certificado y la clave del cliente, la pantalla de vuestro ordenador tiene que presentar el
siguiente estado:
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 10/39
FORTIFICAR LA SEGURIDAD DEL
SERVIDOR OPENVPN CON TLS-AUTH
Nota: Esto paso en principio no es necesario pero lo realizaremos para
incrementar la seguridad de nuestro servidor VPN.
Ahora generamos otra clave. Esta clave nos servir para agregar soporte para usar la
autentificacin TLS y de este modo fortificar la seguridad del servidor VPN. Para generar la clave para
poder fortificar el servidor se tiene que introducir el siguiente comando en la terminal:
cd /etc/openvpn/easy-rsa/keys
Una vez hemos accedido a la ubicacin /etc/opnevpn/easy-rsa/keystecleamos el siguiente comando:
openvpn --genkey --secret ta.key
Justo al ejecutar el comando, Como se puede ver en la captura de pantalla, se generar una clave con el
nombre ta.key en la misma ubicacin dnde hemos aplicado el comando.
La clave creada servir para introducir una firma digital HMAC en todas las transacciones del
protocolo handshake de SSL/TLS entre el cliente y el servidor. De esta forma podremos verificar
la integridad de los paquetes intercambiados entre el cliente y el servidor VPN, y en el caso que un
cliente intente conectarse al servidor VPN sin poseer la clave para firmar los paquetes la conexin
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 11/39
se rechazar automticamente. Adems con el uso de autentificacin TLS tambin conseguiremos
prevenir los siguientes ataques:
1. Ataques de denegacin de servicio DoS.
2. Ataques de denegacin de servicio por inundacin UDP al puerto del VPN.
3. Escaneo de puertos en nuestro servidor para intentar averiguar vulnerabilidades.
UBICACIN DE LAS CLAVES
GENERADAS
A estas alturas hemos generado multitud de claves y certificados. Si se han seguido los pasos detalladamente,
la totalidad de claves se hallan en la ubicacin /etc/openvpn/easy-rsa/keys.
Anteriormente ya he detallado el uso de cada una de la claves. Seguidamente pasar a detallar la ubicacin
de cada una de las claves:
Archivo Descripcin Ubicacin Secreto
dh2048.pem Parmetros Diffie Hellman Servidor (/etc/openvpn) S
ca.crt Certificado raz de la entidad
certificadora
Servidor (/etc/openvpn) y cliente No
ca.key Clave de la entidad certificadora Servidor (/etc/openvpn) S
whezzyVPN.key Clave del servidor VPN Servidor (/etc/openvpn) S
whezzyVPN.crt Certificado del servidor VPN Servidor (/etc/openvpn) y cliente No
whezzyVPN.csr Archivo de peticin de
certificado
Servidor (/etc/openvpn) No
usuariovpn.key Clave privada del cliente VPN Cliente S
usuariovpn.crt Certificado del cliente VPN Cliente No
usuariovpn.csr Archivo de peticin de
certificado
Servidor (/etc/openvpn) No
ta.key Clave para la Autentificacin
TLS
Servidor (/etc/openvpn) y cliente S
Nota: Tienen que trasladar cada una de las llaves mencionadas en las
ubicaciones que se detallan en el cuadro. Recuerden transmitir y trasladar
las claves y certificados del servidor al cliente por un canal seguro.
ASEGURAR QUE LAS PETICIONES
DNS SE REALIZAN POR EL VPN
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 12/39
Otro punto a contemplar para asegurar que nuestro servidor VPN sea seguro es que nadie pueda capturar
nuestras peticiones DNS para saber donde nos estamos conectando.
Nota: Quien no sepa que son las peticiones DNS puede consultar el
siguienteenlace.
Para que nadie capture nuestras peticiones DNS lo que realizaremos es canalizar la totalidad de
nuestras peticiones a travs del tnel del servidor OpenVPN. As las peticiones DNS se enviarn al
servidor VPN de forma cifrada y ser el servidor OpenVPN el encargado de resolverlas. Para poder
realizar lo que acabo de describir lo primero que tienen que realizar es instalar dnsmasq. Para poder
instalar dnsmasq teclean el siguiente comando en la terminal:
apt-get install dnsmasq
Una vez instalado dnsmasq lo tenemos que configurar para que escuche las peticiones DNS dirigidas al
servidor VPN. Para ello accedemos al archivo de configuracin introduciendo el siguiente comando
en la terminal:
nano /etc/dnsmasq.conf
Una vez abierto el editor de texto introducen las siguientes lneas:
listen-address=127.0.0.1,10.8.0.1
bind interfaces
Nota: Introduciendo la primera lnea lo que estamos haciendo es que
Dnsmasq solamente tenga en cuenta las peticiones DNS que se dirijan a
las interfaces[lo]: 127.0.0.1 y [tun0]: 10.8.0.1 que es la de nuestro servidor
VPN.
Nota: Con la segunda lnea estamos habilitando que dnsmasq tenga la
capacidad de escuchar solo determinadas interfaces como por ejemplo las
dos que hemos definido antes. La [lo] 127.0.0.1 y la [tun0] 10.8.0.1
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 13/39
Ahora tan solo tienen que guardar los cambios y salir del archivo de configuracin. La configuracin ha
terminado y solamente hace falta reiniciar los servicios openvpn y dnsmasq. Para ello teclean los siguientes
comandos en la terminal:
/etc/init.d/openvpn restart
/etc/init.d/dnsmasq restart
Es posible que cuando reinicien los servicios o arranquen el sistema vean un error parecido al de la captura
de la pantalla:
Starting DNS forwarder and DHCP server: dnsmasq
dnsmasq: failed to creat listening to socket for 10.8.0.1: No se puede asignar la direccin
solicitada.
Esto error es debido a que Dnsmaq arranca antes de que se cree la interfaz [tun0]. Por lo tanto cuando
intenta escuchar la interfaz [tun0]nos dar el error porqu [tun0] no existe. Para solucionar este problema y
que dnsmasq puede realizar su funcin tan solo tiene que modificar el archivo /etc/rc.local. Para ello en la
terminal escriben:
nano /etc/rc.local
Se abrir el editor de textos y ahora, debajo de las reglas de iptables tan solo tienen que escribir:
/etc/init.d/dnsmasq restart
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 14/39
Una vez realizado este paso guardan el fichero y salen. Introduciendo esta linea lo que estamos haciendo es
reiniciar el servicio dnsmasq una vez se han ejecutado la totalidad de scripts de inicio (init). De este modo
cuando se reinicialice dnsmasq la interfaz [tun0] ya estar levantada.
Nota: Para que dnsmasq funcione tienen que tener configurado el servidor
VPN tal y como se detalla en el apartado Configurar el servidor.
CONFIGURAR EL SERVIDOR
OPENVPN
Existen ficheros de configuracin standard que deberan funcionar out of the box y que podemos aprovechar
para realizar nuestra configuracin.Los ficheros de ejemplo que podemos usar para ver la totalidad de
opciones que tenemos disponibles se hallan comprimidos en la siguiente ubicacin ubicacin:
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
Para consultarlos teclear el siguiente comando para acceder a la ubicacin de este archivo:
cd /usr/share/doc/openvpn/examples/sample-config-files
Seguidamente copiamos el archivo comprimido que dispone de los archivos de muestra de configuracin en
la ubicacin /etc/openvpn. Para ello tecleamos el siguiente comando:
cp -a /usr/share/doc/openvpn/examples/sample-config-files/server.conf.g
z /etc/openvpn/
Seguidamente accedemos a la ubicacin donde hemos copiado el archivo comprimido que contiene los
archivos de configuracin:
cd /etc/openvpn
Para descomprimir el archivo que contiene los archivos de configuracin tecleamos:
gunzip server.conf.gz
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 15/39
Una vez descomprimido el archivo ya podemos consultar los ejemplos de configuracin tanto del
cliente como del servidor. Para ver y modificar la configuracin estndar para adaptarla a nuestras
necesidades tienen que teclear el siguiente comando en la terminal:
nano server.conf
Se abrir el editor de texto en el que podrn ver de forma detallada las opciones de configuracin de ejemplo
del servidor. Ahora tendris que comprobar que la totalidad de parmetros que se muestran en la
tabla de este apartado estn dentro del fichero de configuracin de ejemplo que es el que vamos a
usar. En el caso de que los parmetros estn comentados habr que descomentarlos, en el caso que no
existen se debern aadir y/o modificar.
Parmetro Descripcin
dev tun Dispositivo virtual en el cual se creara el tnel.
proto udp Protocolo de la conexin VPN. Tambin podramos usar el tcp.
port 1194 Puerto de escucha del servicio. El puerto de escucha se puede modificar.
ca ca.crt Certificado de la autoridad certificadora que creamos.
cert whezzyVPN.crt Certificado del servidor que hemos creado.
key whezzyVPN.key Clave privada del servidor que hemos creado.
dh dh2048.pem Carga de los parmetro de Diffie Hellman.
Server 10.8.0.0
255.255.255.0
Indicamos que a los clientes del VPN se les asignar IP del
tipo10.8.0.0/24
ifconfig-pool-persist
ipp.txt
Se crea un fichero ipp.txt en el que se registran las IP de los clientes que
se conectan al servidor VPN.
push route 192.168.1.0
255.255.255.0
Con esta lnea hacemos que los paquetes que tengan como destino la
red 192.168.1.0 viajen por la interfaz del tnel (tun0). De esta forma el
cliente VPN se podr comunicar con cualquier mquina de la
red 192.168.1.0.
keepalive 10 120
El servidor VPN enviar un ping cada 10 segundos y como mximo
esperar 120 segundos para que el cliente de una contestacin.
tls-aut ta.key 0 Activacin de la autentificacin TLS en el servidor.
comp-lzo Activar compresin LZO para la transmisin de datos.
max-clients 10
Nmero mximo de clientes que se pueden conectar de forma simultanea.
El valor se puede modificar segn las necesidades.
user nobody
Para limitar los privilegios del demonio de VPN hacemos que funcione
con el usuario nobody.
group nogroup
Para limitar los privilegios del demonio de VPN hacemos que funcione
con el grupo nogroup.
push redirect-gateway
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 16/39
def1 Para que la totalidad de trfico vaya a travs de nuestro VPN
push dhcp-option DNS
10.8.0.1
Estamos definiendo que las peticiones DNS de los clientes se hagan a
travs del servidor VPN ubicado en 10.8.0.1
cipher AES-256-CBC
Por defecto el algoritmo de cifrado de OpenVPN es Blowfish con un
tamao de clave de 128 bits. Quien crea que no es suficiente puede
aadir esta lnea para cambiar el algoritmo de cifrado a AES con un clave
de cifrado de 256 bits. Para ver todos los algoritmos de cifrado
disponibles teclear openvpn show-ciphers en la terminal.
persist-key
En caso que el servidor OpenVPN se caiga las claves no tendrn que ser
analizadas de nuevo.
persist-tun
El dispositivo tun0 no tendr que ser reabierto ni cerrado en el caso que
tengamos que reiniciar el servidor.
status openvpn-status-log Log donde se guardar informacin respecto al tnel creado.
plugin
/usr/lib/openvpn/openvpn-
auth-
pam.so/etc/pam.d/login
Activacin del script encargado de realizar la autenticacin del usuario y
del cliente. (Ver el apartado Autentificacin del cliente mediante usuario
y password)
verb 3 Grado de detalle del estado del tnel en los logs.
Una vez tenemos listo el fichero de configuracin tan solo tenemos que guardar los cambios y cerrarlo.
Nota: Si queremos que los clientes que estan conectados al servidor VPN
puedan comunicarse entre ellos tenemos que aadir la frase client-to-
client en el fichero de configuracin del servidor.
Nota: Si leis con detalle el fichero de configuracin podris aplicar
configuraciones distintas a las que se detallan en el post.
Nota: La configuracin propuesta en este apartado se tendr que adaptar
a las caractersticas de vuestra red y a vuestras necesidades.
CONFIGURAR EL CLIENTE OPENVPN
Una vez configurado el servidor ahora pasaremos a configurar el cliente. Para ello dentro de la
ubicacin /etc/openvpn tecleamos el siguiente comando:
nano client.conf
Se abrir el fichero de configuracin en el que podrn ver un ejemplo de configuracin para un cliente
estndar. Aseguramos que el fichero de configuracin estndar tenga los parmetros que se
muestran en la tabla de este apartado. En caso de no tenerlos habr que aadirlos manualmente, en el
caso de que los parmetros estn comentados habr que descomentarlos y en el caso que no existan se
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 17/39
debern aadir y/o modificar.
Parmetro Descripcin
dev tun Dispositivo virtual en el cual se creara el tnel.
proto udp
Protocolo de transmisin de paquetes del servidor VPN. Se puede usar
TCP.
remote
geekland.sytes.net
1194
Direccin IP pblica/Host DNS dinmico y puerto de escucha del servidor
VPN. El puerto 1194 se puede cambiar. Si lo cambiamos deberemos
adaptar el resto de configuraciones al nuevo puerto
resolv-retry infinite
El cliente intentar de forma indefinida resolver la direccin o nombre de host
indicado por la directiva remote (geeekland.sytes.net).
nobind
A los clientes se les asignar puertos dinmicos (no privilegiados) cuando
haya retorno de paquetes del servidor al cliente.
user nobody
Para limitar los privilegios de los clientes que se conectan al VPN les
asignamos el usuario nobody. (no necesario para windows)
group nogroup
Para limitar los privilegios de los clientes que se conectan al VPN les
asignamos el grupo nogroup. (no necesario para windows)
persist-key
En caso que el servidor OpenVPN sea reiniciado no se tendrn que volver a
leer las claves.
persist-tun
El dispositivo tun0 no tendr que ser reabierto ni cerrado en el caso que
tengamos que reiniciar el cliente Vpn.
ca ca.crt Certificado de la autoridad certificadora que creamos
cert usuariovpn.crt Certificado del cliente
key usuariovpn.key Clave privada del cliente
ns-cert-type server
Para prevenir ataques man in the middle. Con esta frase hacemos que los
clientes solo puedan aceptar un certificado de servidor del tipo servidor
nsCertType=server. En este campo podramos aplicar otras alternativas
similares como por ejemplo remote-cert-tls server.
tls-auth ta.key 1 Activacin de la autentificacin TLS en el cliente.
cipher AES-256-CBC
Por defecto el algoritmo de cifrado de OpenVPN es Blowfish con un tamao
de clave de 128 bits. Quien crea que no es suficiente puede aadir esta lnea
para cambiar el algoritmo de cifrado a AES con un clave de cifrado de 256
bits. Para ver todos los algoritmos de cifrado disponibles teclear openvpn
show-ciphers en la terminal.
auth-user-pass
Para indicar que el cliente tiene que introducir un nombre de usuario y un
password.
auth-nocache
Para evitar que los password queden almacenados en la memoria cache de
los clientes.
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 18/39
comp-lzo Activar compresin LZO para la transmisin de datos.
verb 3 Grado de detalle del estado del tnel
AUTENTIFICACIN DEL CLIENTE
MEDIANTE LOGIN Y PASSWORD
A pesar de toda la seguridad que hemos implementado hasta el momento podra darse el caso que alguien
robar nuestro ordenador. Si alguien robar nuestro ordenador, telfono o tablet podra encontrarse
con la totalidad de nuestras claves criptogrficas y de esta forma podra acceder fcilmente a
nuestra red.
Para solucionar este problema vamos a introducir un usuario y un password para los clientes de
nuestro servidor vpn. Para ello tan solo tenemos que aadir uno o los usuarios que queramos.
Para aadir un usuario, como por ejemplo el usuariovpn2, tienen que teclear el siguiente comando en la
terminal:
useradd usuariovpn2 -M -s /bin/false
Una vez creado el usuario tenemos que definir un password delusuariovpn2. Para ello tecleamos el siguiente
comando en la terminal:
passwd usuariovpn2
Una vez introducido el comando nos pedir que introduzcamos la clave de usuario y despus nos pedir
confirmacin.
En el caso que a posteriori se precise eliminar el usuariovpn2 tan solo tienen que introducir el siguiente
comando en la terminal:
deluser usuariovpn2
Seguidamente en la siguiente captura de pantalla pueden ver un resumen de los pasos realizados:
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 19/39
Nota: Para que la autentificacin mediante usuario y password funcione
tienen que tener configurado el servidor y el cliente tal y como se detalla
en los apartados Configurar el servidor y configurar el cliente.
CONFIGURAR IPTABLES PARA EL
ENRUTAMIENTO DE PETICIONES
Cuando el servidor OpenVPN reciba las peticiones de los clientes se debern enrutar
adecuadamente, y adems tendremos que tener configurar el firewall de nuestro equipo para que
permita el trfico a travs del tnel que se ha creado ente el cliente y el servidor.
Para ello lo primero que tenemos que hacer es habilitar el IP forwarding. Para habilitar el IP
Forwading de forma permanentetecleamos el siguiente comando en la terminal:
nano /etc/sysctl.conf
Se abrir el editor de textos y seguidamente tendremos que localizar la siguiente linea:
#net.ipv4.ip_forward=1
Una vez localizada tan solo hay que descomentarla de forma que quede de la siguiente forma:
net.ipv4.ip_forward=1
Guardamos los cambios y cerramos el archivo.
Una vez habilitado el Ipforwarding tenemos que permitir el trfico por nuestro tnel VPN, y adems
tenemos que hacer que los clientes VPN puedan acceder a redes externas pblicas y otras subredes dentro
de la red VPN. Para poder conseguir esto en la terminal escriben el siguiente comando:
nano /etc/rc.local
Una vez se abra el editor de textos tienen que escribir las siguientes reglas en nuestro firewall
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATE
D -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Nota: En funcin de las caractersticas de vuestra red y configuracin de
vuestro firewall es posible que tenga que implementar reglas adicionales a
las que se muestran en este ejemplo.
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 20/39
Con la primera de las reglas estamos permitiendo el trfico por el dispositivo virtual en que que se crea el
tnel.
Con la segunda de las reglas estamos permitiendo que los paquetes provenientes de 10.8.0.0/24 pueden
enviarse o salir por la interfaz de salida eth0.
Con la tercera de las reglas estamos diciendo al servidor OpenVPN que cuando reciba una peticin de
cualquiera de los clientes, proceda el mismo a resolverla y enviarla en representacin del cliente.
Una vez finalizando el proceso guardan el archivo y cierran el editor de textos. Antes de cerrar el archivo el
fichero /etc/rc.local tendr un aspecto parecido al siguiente:
CONFIGURAR EL ROUTER Y ABRIR
EL PUERTO DEL SERVIDOR
OPENVPN
Ya para finalizar solo nos falta configurar nuestro router, para que redirija las peticiones de los
clientes al servidor Opevpn, y abrir el puerto del servidor OpenVPN. Para realizar esto tenemos
que abrir nuestro navegador y teclear nuestra puerta de entrada. Una vez realizado esto, tal y como se
puede ver en la captura de pantalla, se abrir una ventana en que nos pedir nuestro nombre de usuario y
contrasea:
Una vez introducida la informacin accederemos a la configuracin de nuestro router. Seguidamente, tal y
como se puede ver en la captura de pantalla, tenemos que acceder a los mens Advanced / NAT / Virtual
Servers:
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 21/39
Seguidamente presionamos el botn Add y nos aparecer la siguiente pantalla:
Tal y como se puede ver en la captura de pantalla, en en el campocustom server hay que escribir un
nombre cualquiera. En mi caso como se puede ver en la captura de pantalla he escrito OpenVPN.
Seguidamente en el campo Server IP Address tenemos que escribir la IP del servidor OpenVPN. En
mi caso tal y como se puede ver en la captura de pantalla es la 192.168.1.188. Finalmente tal y como se
puede ver en la captura de imagen seleccionamos el protocolo UDP y escribimos el puerto de nuestro
servidor OpenVPN (1194) en los puertos internos y externos.
Presionamos el botn Apply/Save y de esta forma todas las peticiones exteriores que lleguen a nuestro
router por el puerto 1194 sern redirigidas a nuestro servidor OpenVPN.
COMO CONECTARNOS AL SERVIDOR
OPENVPN
Seguidamente dejo una serie de enlaces en los que explico de forma detallada los pasos a seguir para
conectarnos a nuestro servidor Openvpn en el caso de estar usando los siguientes sistemas operativos:
1. Linux
2. Android
3. Windows
4. iOS
Siguiendo las instrucciones de los enlaces que acabo de dejar podremos comprobar fcilmente el
funcionamiento de nuestro servidor Openvpn.
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 22/39
SEGURIDAD QUE NOS APORTAR EL
SERVIDOR OPENVPN
Si se configura el servidor Openvpn, tal y como se detalla en el post, se obtendr un nivel de seguridad muy
elevado y resultar prcticamente invulnerable frente a ataques.
La seguridad que aportar el servidor OpenVPN que acabamos de configurar estar compuesta por 3
capas:
Capa 1 Autentificacin TLS: Con la autentificacin TLS estamos introduciendo una firma digital HMAC
a los paquetes antes de empezar la autentificacin reciproca entre cliente y servidor. Si no se pasa el test de
la firma HMAC, no se llegar ni a iniciar el proceso de autenticacin entre cliente y servidor.
Capa 2 SSL/TLS: Mediante las herramientas de seguridad proporcionadas SSL/TLS se realiza el
proceso de autentificacion bidireccional entre el cliente y el servidor OpenVPN mediante claves
criptogrficas.
Capa 3 Cifrado: Dispone de varios tipos de cifrado disponibles en la transmisin de datos entre el cliente
y el servidor. Adems podemos aplicar medidas para los privilegios del demonio de OpenVPN sean los
mnimos para poder realizar la funcin que tiene que realizar.
Todas estas caractersticas, ms las que se detallan en el post, hacen que OpenVPN sea una opcin muy
vlida para la transmisin segura de datos sensibles. Por esto motivo OpenVPN es el protocolo que utilizan
muchas organizaciones en el mundo empresarial. Adems OpenVPN es una solucin multiplataforma y
dentro de lo que cabe no es difcil de configurar si lo comparamos con por ejemplo Ipsec.
En lo que a seguridad se refiere tambin tenemos que destacar que aparte de las 3 capas de seguridad,
tambin hemos implementado un mtodo para que los clientes del VPN tengan que introducir un usuario y un
Password. Adems la totalidad del trfico, incluyendo la resolucin de las peticiones DNS, ser a travs del
servidor OpenVPN que acabamos instalar y de configurar.
Cabe decir que actualmente no se conocen vulnerabilidades importantes en este tipo de servidor VPN. Es
posible que se descubran vulnerabilidades pero si vamos aplicando las actualizaciones de seguridad no
deberamos tener problema alguno en lo que a seguridad se refiere.
Post Relacionados
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
23 marzo, 2014 (2)
En pasados post vimos de forma muy detallada como crear y configurar nuestro propio servidor OpenVPN con
cualquier distribucin derivada de Debian. Una vez instalado y configurado nuestro []
Conectarse a un servidor OpenVPN en iOS
7 diciembre, 2013 (15)
En pasados post vimos como conectarnos a un servidor VPN y adems tambin vimos las numerosas ventajas
y usos que nos puede aportar un servidor VPN en determinadas circunstancias. Para []
Crear un servidor VPN pptp
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 23/39
58 Comentarios en Crear y configurar servidor
openvpn
Zemant a
7 agosto, 2014 (2)
En pasados post vimos de forma muy detallada como crear y configurar nuestro propio servidor OpenVPN con
cualquier distribucin derivada de Debian. Una vez instalado y configurado nuestro []
Conectarse a un servidor OpenVPN en Android
Pedro Peres
En mi caso estoy empezando a vivir censura en mi pas. Puedo hacer que el
servidor vpn se conecte a Internet a tor y yo conectarme a l? Como lo hara?
Responder
feb 14,2014 19:56
RAcl
Estimado,
Con algunos amigos (para que sea ms econmico) lo que pueden hacer
es contratar un VPS en algn otro pas y crear su VPN entre sus equipos y
el VPS
Responder
abr 4,2014 14:59
Joan Carles
Sin duda lo que propone es una buena opcin. Saludos
Responder
abr 4,2014 21:54
Claudio
Muy bueno el Post, la verdad es muy claro, y me ha sido muy fcil seguirlo.
Solamente me falta aprender a conectarme desde otros sistemas operativos
para poder comprobar el correcto funcionamiento del servidor VPN Publicars
pronto los posts que explican como conectarse desde diversos sistemas
operativos?
Responder
feb 27,2014 23:23
Joan Carles
Responder
feb 28,2014 11:01
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 24/39
Hola Claudio, Muchas gracias por el feedback. Si no pasa nada en
aproximadamente un mes deberan estar publicadas las instrucciones
para conectarse en el servidor VPN en la totalidad de sistemas operativos
ms comunes. Android, iOS, Windows y Linux.
Si alguin me regala un Mac tambin publicar las instrucciones para
Mac.
Saludos y buen fin de semana.
Claudio
Espero puedas tenerlas antes de un mes. Al menos las instrucciones
de como conectarse desde Windows o Android. Si pudieras
enviarme alguna indicacin al correo de como realizar la conexin
desde dichos sistemas operativos Si lo haces te regalo un Mac.
Responder
mar 2,2014 5:52
4v0ch
Excelente Tutorial muy completo y bien redactado, Me ha servido bastante para
una necesidad que tenia pendiente. Gracias.
Responder
mar 7,2014 16:55
Diego Donoso
Es un tutorial de lujo hermano. Me gust tu manera de redactarlo y las pantallas
son muy didcticas. Si te parece te puedo complementar con la configuracin
del cliente openVPN para Windows y Android para que la puedas acoplar, ya
que yo trabajo 100% con OpenVPN.
Responder
mar 16,2014 5:33
Joan Carles
Diego gracias por tu ayuda
Actualmente estoy trabajando en redactar unas instrucciones para poder
configurar los clientes en los diferentes sistemas operativos. La semana
que viene tendr listo iOS y despus ir trabajando en el resto.
Saludos
Responder
mar 16,2014 11:18
Alberto
mar 19,2014 5:16
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 25/39
Genial tu explicacin. Me quedo muy claro y est muy bien redactado. Espero el
de Windows para poder implementarlo en un lugar que me encargaron.
Gracias
Responder
Joan Carles
Hola Alberto
Gracias por el feedback.
Si esperas que publique como conectarse al servidor mediante un cliente
de Windows en breve dispondrs de esta informacin.
Si esperas que publique el mismo tutorial pero usando Windows en vez
de Linux te informo que en principio no tengo planificado hacerlo.
Saludos
Responder
mar 19,2014 11:01
Alberto
El como conectarse al servidor mediante Windows.
Muchas gracias por tu respuesta.
Responder
mar 21,2014 2:33
Joan Carles
Este fin de semana saldr para iOS.
Despus ir con Windows.
Un saludo y buen fin de semana.
Responder
mar 21,2014 9:04
thewhite
Hola buenas, como puedo conectarme al servidor openVPN en linux ? Lo tienes
subido ya? Muchas gracias. Un saludo
Responder
abr 28,2014 17:58
Joan Carles
Hola Buenas. De momento solo est disponible para Windows y para iOS.
En breve lo subir para Linux y finalmente para Android.
Responder
abr 28,2014 23:46
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 26/39
Saludos
Juan Jose
Hola que tal en la parte donde coloco el siguiente comando cp -r
/usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa
Me arroja este error y no puedo continuar.
cp: no se puede efectuar `stat sobre /usr/share/doc/openvpn/examples/easy-
rsa/2.0/*: No existe el archivo o el directorio
Espero y me ayudes a resolver esto por favor
Responder
may 21,2014 20:54
Joan Carles
Hola Juan
No se si te podr ayudar mucho. Mejor explicado de lo que est en el
artculo no lo se explicar.
Qu sistema operativo usas?
Has instalado openvpn y openssl?
Has mirado si las carpetas a las que acceden existen?
Si no entiendes lo que ests haciendo te costar llegar hasta el final del
tutorial y que todo funcione bien. Tendrs que tener paciencia y poner
horas de dedicacin por tu parte ya que el copiar, pegar no funciona
porqu muchas veces aparecen puntos en que los tienes que adaptar a tu
caso.
Saludos
Responder
may 21,2014 22:36
Juan Carlos
Felicidades por el blog y Gracias por este artculo tan bien explicado. Me ests
salvando la vida.
Ha cado en mis manos un Debian Wheezy con OpenVPN virtualizado con
WMware junto con tres windows 2008 server. Vamos un caramelo.
Todo funciona OK. Los usuarios de windows se conectan a la vpn con su
contrasea pero ahora tengo que aadir otro usuario y de linux ni papa.
Responder
may 31,2014 8:41
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 27/39
Dos dudas a ver si me puedes ayudar:
1- Entiendo que directamente voy al paso crear el certificado y las claves de los
clientes. Creo un usuario nuevo con ./build-key usuariovpn pero la serie de
preguntas que hace como averiguo el contenido del fichero vars si no lo cree
yo?
2- Cuando termine de crear al usuario, como saco los archivos del Debian? no
tiene entorno grfico, y este comando cp /etc/openvpn/keys/* /media/usb no
funciona..
se agradece cualquier ayuda.
Joan Carles
Hola Juan Carlos. Respecto a tu pregunta no se como ser el debian que
te cayo en tus manos. Lo de caer en tus manos tiene una ventaja y un
problema ya que ahora tienes un servidor openvpn, pero como no lo
instalaste tu mismo, ahora tienes estas dudas. En el post detallo la
ubicacin del archivo vars. En el caso que no exista la ubicacin del
archivo vars por tener la versin de easy-rsa 3.0, tambin explico como
generar los archivos para crear las claves y entre ellos est el vars. Las
claves no las podrs crear si tu servidor no tiene los scripts de easy-rsa.
Para sacar las claves con una memoria USB y la explicacin que hago
para conectarse a los clientes de iOS o de Windows te debera ser
suficiente. Est explicado paso por paso y si lo haces bien y como est
explicado te tiene que funcionar. Si no te funciona mira que tengas
VMware configurado para que te detecte los USB.
Un saludo
Responder
may 31,2014 10:23
juan carlos
Gracias por los consejos Joan Carles.
Pero me crecen los enanos, se ve que ayer caduco el dyndns que tenamos y se
ha tostado el openvpn, me pide contrasea, la acepta pero el cliente se queda
con los dos iconos en amarillo con el letrero conecting y de ah no pasa.
He editado con nano el client.conf y he cambiado el la lnea donde estaba el
host de dyndns por la IP fija que he contratado. pero no se soluciono el
problema.
Me puedes echar un cable???
Responder
jun 9,2014 13:28
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 28/39
Joan Carles
Hola Buenas
Quizs sea un problema de firewall. Tienes bien configurado el firewall y
tu router para redireccionar tus peticiones al servidor OpenVPN?
La verdad si no es esto no se que puede ser. Los cambios a realizar son
mnimos y lo que has hecho me parece correcto.
Prueba distintos clientes para ver si el problema se reproduce con todos
los clientes.
Responder
jun 9,2014 15:24
Juan Carlos
Mi duda es si despus de modificar el client.conf tengo que volver generar los
archivos para los usuarios. Es decir lo que es guarda en la carpeta config. Si ha
cambiado la ip del rooter como sabe el openvpn de los usuarios en que
direccin esta el servidor?
Responder
jun 9,2014 16:16
Joan Carles
No tienes que crear claves nuevas para los clientes. Las que tienes sirven.
No se si tu servidor Openvpn tiene fines comerciales o no. Si tienes fines
comerciales debers informar a todos tus clientes del cambio de IP y
pasarles el nuevo archivo de configuracin con la nueva IP que espero
que sea fija. Con esto cada cliente sabr al servidor donde tiene que
apuntar.
Saludos
Responder
jun 9,2014 17:51
Jose Luis
Para actualizar el repositorio si el siguiente comando no funciona:
sudo apt-get install openvpn openssl
Con el siguiente comando lo arreglan:
sudo apt-get update && sudo apt-get install ethtool
Responder
jun 12,2014 17:27
Jacob
jun 22,2014 4:19
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 29/39
Una consulta, cundo redactars para configurarlo en android?
Responder
Joan Carles
No lo se. Intento escribir cuando me apetece ms que cuando planeo. La
explicacin para conectarse en Android pienso que es la ms complicada
de las 4 que me plantee realizar.
Pienso que en unos o 2 meses debera estar la explicacin redacta.
Responder
jun 22,2014 10:24
Christian
Una consulta, he realizado los pasos segn la configuracin indica. Me conectan
los usuarios, pero solo el primero que se conecta llega a tener comunicaciones
con el server.
Pero los otros se conectan, les da ips, pero no llegan a tener comunicacin con
el server, qu puedo haber hecho mal ?
Responder
jun 22,2014 23:43
Joan Carles
No entiendo lo que que te pasa. Si se conectan quiere decir que tienen
conexin con el servidor y tu me dices que se conectan y no tienen
conexin con el servidor.
No entiendo lo que te pasa y no se que puedes estar haciendo bien o
mal. Si un cliente te va bien y otros no quizs sea tema de que el cliente
est mal configurado.
Saludos
Responder
jun 23,2014 10:57
Christian
que el servidor OpenVpn le asigna direcciones ip a los clientes, pero solo el
primero puede hacer ping al servidor y los dems no pueden.
Responder
jun 24,2014 22:11
Joan Carles
La informacin que proporcionas es incompleta. Dudo que yo mismo ni
nadie ms te pueda ayudar con la informacin que proporcionas.
Responder
jun 25,2014 7:50
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 30/39
Luis
Escribo slo para agradecer tu trabajo y animarte a completarlo (que parece
que no te apetece mucho ;) ) con la conexin en Android que personalmente
espero para probar.
Un saludo y nimo.
Responder
jun 25,2014 3:22
Rick
Hola no se si haya un vdeo de referencia. Es la primera vez que uso Openvpn.
No me sale lo de hacer los certificados.
Si tengo una Ip esttica como podra usar VPN en una red local(en mi propia
casa)?
Y como comparto archivos comparto archivos con winscp?
gracias
Responder
jun 25,2014 10:47
Joan Carles
De vdeos en youtube encontrars. Pero que te pueda recomendar no se
ninguno.
Lo de los certificados est explicado paso por paso. Solo tienes que
seguir las instrucciones. Mejor no lo se detallar.
Si quieres testear el funcionamiento en tu red local tan solo tienes que
introducir la ip interna del servidor en el fichero de configuracin del
cliente. En vez de la ip pblica pones la Ip Interna.
No se lo que es winscp pero he buscado y veo que es un cliente ftp. Ftp
no tiene nada que ver con openvpn. Si te quieres conectar al servidor
openvpn lee en el post que lo explica. Te aconsejara sustituir winscp por
Filezilla.
Por tus preguntas creo que no solo eres nuevo en Openvpn. Creo que
deberas ampliar tus conocimientos sobre redes. Sin unos conceptos
mnimos dudo que puedas armar el servidor. Aunque siempre puedes
copiar y pegar y debera funcionar
Saludos
Responder
jun 25,2014 22:02
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 31/39
Rafael
Hola Joan Carles.
En primer lugar, felicitarte por la gran calidad de tu Blog. Es un placer encontrar
personas como t en la red, dispuestas a ayudar sin dejar de lado
el rigor y el buen hacer.
Por otra parte me gustara saber si me puedes aclarar una duda. Tengo que
montar una red VPN en mi empresa ya que tenemos varias oficinas en distintos
lugares geogrficos.
He ledo tus post sobre el tema, pero me surge una duda. En los post hablas de
montar un servidor VPN y yo crea que lo nico que haca falta era un router con
conexin VPN para montar la red. Son necesarios los dos elementos, router y
servidor, o uno excluye al otro?. Adems, Es necesario que los routers en
ambos extremos de la red (oficinas) tengan conexin VPN?
Gracias por tu respuesta.
Responder
jul 1,2014 9:45
Joan Carles
Hola Buenas,
Hay Routers que traen incorporado el servidor VPN. Tendrs que mirar los
protocolos VPN que soporta el router, la conexiones simultaneas de
clientes que soportan, etc. Los Routers tambin requerirn de
configuracin. Si el nombre de clientes es bajo con 2 o ms Router
deberas tener suficiente para lo que quieres hacer.
Tambin es posible usar un router normal y corriente y tener un servidor
virtual o real que acte como servidor VPN.
Yo mucho ms no te puedo decir. El informtico y quien tiene que montar
esto eres tu. Yo por suerte o por desgracia no soy informtico ni me
dedico a ello.
Saludos
Responder
jul 1,2014 21:03
Antonio
Para configurar el cliente openvpn tambin tenemos que coger la configuracin
de ejemplo el el directorio /usr/share/doc/openvpn/examples/sample-config-
files/client.conf
y editarla en este otro directorio /etc/openvpn/
Responder
jul 2,2014 12:52
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 32/39
Has dicho que copiemos el server.conf pero no el client.conf, me imagino que
el archivo que editaremos cuando nos pides que modifiquemos el cliente es el
archivo client.conf que tenemos que copiar tambin en el directorio
/etc/openvpn/
Es por matizar :)
Gracias por tu trabajo me ayuda muchsimo, gracias!!!
Joan Carles
Depende Antonio. Hay versiones de Openvpn en que el fichero de
configuracin del cliente se halla en
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz. Por
lo tanto al mismo tiempo que copiamos el fichero de ejemplo del
servidor tambin copiamos el del cliente. Este es el caso de Debian.
En el caso de Mint 17 o Ubuntu 14.04 si que tienes razn. Hay que
trasladar el fichero de muestra del cliente porqu est separado del
servidor. El Fichero de muestra del cliente se halla en la siguiente
direccin:
/usr/share/doc/openvpn/examples/sample-config-files/client.conf
Saludos
Responder
jul 5,2014 9:48
Jacob
Buena te cuento, logro seguir y hacer todos los pasos que detallas en la gua, al
conectar desde mi android al servidor no logro tener acceso a internet.
Qu pude haber echo mal?, Adems en la aplicacin de android solo me sale
que solo envo paquetes, pero no recibo desde el servidor. Saludos y buen da.
Responder
jul 6,2014 5:37
Joan Carles
Pues si sigues los pasos de la gua y te paso esto es que algn paso no
est bien realizado.
Si puedes enviar paquetes pero no los puedes recibir tu problema es
probable que el firewall de tu servidor no est redirigiendo las peticiones
de forma adecuada.
Quizs tambin pueda ser algn parmetro de la configuracin del
servidor. Tendrs que volver a repasar paso por paso lo realizado
Responder
jul 6,2014 9:26
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 33/39
entendiendo lo que haces en cada momento. Con la informacin
proporcionada poco ms puedo decir.
David
hola , tengo una gran pregunta. Yo tengo sistema windows.
Cul es el programa que tengo que descargar para poder editar los server ?
Responder
jul 13,2014 10:00
Joan Carles
No acabo de entender tu pregunta. Qu es esto de editar el server?
Si quieres hacer lo mismo que el tutorial pero en Windows te aconsejo
que mires en la web oficial de Openvpn. Para serte sincero en Windows
no se como se hace y en estos momentos tampoco me interesa saber
como se hace. Para el 100% de servidores que montes GNU Linux es
infinitamente superior a Windows en todos los aspectos.
Responder
jul 13,2014 11:52
Ed Soprano
Hola, esta genial tu tutorial, me servio mucho con lo del TLS/auth, sabes como
son los pasos despus de las configuraciones de servidor y clientes, para
windows server, pues lo he montado ahi y me gustara hacer lo del dns y lo
dems que comentas, claro si es posible hacerlo, sin mas me despido. Gracias
Responder
jul 23,2014 2:25
Andrew
Estimado Amigo;
primero que todo, felicitarte por el excelente post, debo decirte que en gran
medida me he valido de lo que has presentado aqu para configurar mi servidor
vpn en windows, soy recin un principiante en esto y quizs lo que te pregunte
sea tonto, pero ya he recorrido por varias horas la web sin encontrar respuesta a
mi inquietud, la cual quiero hacerte presente:
Para la autentificacin de clientes mediante login y password, tu presentas este
comando: useradd usuariovpn2 -M -s /bin/false ; mi pregunta es, este es el
mismo comando que debo usar en mi consola de comando en win para
generar la misma regla que tu propones?
hay alguna variante a considerar exepto usuariovpn2?
Responder
ago 16,2014 2:46
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 34/39
por favor, me gustara que me orientaras y me eches una mano.
Desde ya te agradezco por este excelente post.
Joan Carles
Hola,
No sabia que la mayora de cosas funcionaran en Windows. Nunca he
usado windows para configurar un servidor.
El comando useradd dira que en Windows no funciona porqu este
comando dira que solo funciona en sistemas Unix o derivados de Unix.
Pero lo puedes probar por si acaso no? Si quieres un equivalente en
windows simplemente no lo se. Si alguien lo sabe que lo ponga.
Referente a lo de las variantes no se muy bien a lo que te refieres. Pero te
puedo decir que puedes crear tantos usuarios como quieras. As que si
tienes el usuariovpn2 y quieres crear otro usuario no tendrs problema
alguno.
Saludos
Responder
ago 16,2014 9:10
jordi
Buenas,
tienes un error en la ruta:
Pones:
plugin /usr/lib/openvpn/openvn-auth-pam.so /etc/pam.d/login
Pero debera ser:
plugin /usr/lib/openvpn/openvpn-auth-pam.so /etc/pam.d/login
Y el ta.key se debe copiar a /etc/openvpn
Responder
ago 20,2014 21:21
Joan Carles
Jordi, Gracias por tus aportaciones. Durante este fin de semana
solucionar los puntos que mencionas.
Responder
ago 21,2014 21:47
Pablo
ago 26,2014 8:26
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 35/39
Gracias excelente tutorial. tengo un problema con
sudo apt-get install openvpn openssl
sudo: apt-get: command not found
lo estoy haciendo en centos 6.5 no quiero instalar de otra forma porque quiero
seguir este tutorial cual seria la solucin gracias
Responder
Joan Carles
Hola. CentOS no utiliza el gestor de paquetes apt-get. Si no voy mal usa
yum. Por lo tanto usa los comandos equivalentes con el gestor de
paquetes yum. sudo yum install openvpn openssl . Para el resto de
comandos puedes mirarlos en google. Lo dificil es la configuracin del
servidor y el servidor se configura igual en CentOS que en Debian, que en
windows.
CentOS no es precisamente una distro fcil. Viendo la pregunta que has
realizado dudo que CentOS sea la mejor opcin para ti en estos
momentos. Si utilizas Debian o Ubuntu encontrars mucha ms
documentacin y soporte de la comunidad.
Saludos
Responder
ago 26,2014 14:41
Luis
Buenas,
Cuando ejecuto source vars, me sale el mensaje:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-
rsa/keys
Y no me deja continuar. Que hago mal??
Gracias por todo!!
Responder
ago 28,2014 12:18
Joan Carles
Hola Luis,
Por la pregunta que haces o no has ledo el post o no entiendes lo que
ests haciendo. Si es el segundo caso es difcil que llegues al final con el
servidor funcionando.
Responder
ago 28,2014 22:02
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 36/39
No ests haciendo nada mal. Si te fijas vers que a mi tambin me sale
este mensaje.
Saludos
Juan
Hola de nuevo mi buen amigo y gracias por tu respuesta en el apartado
anterior. Tengo algunas dudas y quisiera por favor me pudieras orientar.
Para poder montar un servidor de las caractersticas de las que mencionas en tu
post, el SO Debian solo lo debo instalar con las herramientas estndar (es decir,
solo el entorno unix)sin entorno grfico, sin laptop, server print y las dems
opciones que aparecen cuando se instala por primera vez Debian?
Cuando configuro rc.local, el fichero me aparece vacio sin ninguna regla para
iptables, y ahi es donde agrego las 3 lineas que mencionas, pero lo que me
confunde es que en la imagen del post tu tienes 2 lineas adicionales para este
fichero, dando un total de 5 lineas; quisiera me explicaras, apelando a tu
amabilidad, que significan las dos primeras lineas, si esas dos primeras lineas la
debo colocar o no y si donde aparece la ip 192.168.2.0/24 ah debo ingresar
alguna direccin diferente a la que se ve (he buscado informacin sobre esto
pero me confunde mas ya que unos dicen una cosa y otros cosas muy
diferentes)
Si estoy detrs de un router, debo elegir manualmente la IP interna de mi server
en configuracin manual de la red cuando se esta instalando Debian o lo
puedo cambiar despus?
Por cierto, para quien no sepa, y si puedes agregar esto para quien no sea muy
entendido como yo para Iniciar el servidor de VPN;
teclear
cd /etc/openvpn/
openvpn server.conf
Por favor orientame, ya que he consultado sobre lo de iptables pero en vez de
avanzar me pierdo mas con las distintas versiones que encentro en la net.
Desde ya, muchas gracias
Responder
sep 3,2014 1:40
Joan Carles
Hola Juan
Para seguir las indicaciones del post lo puedes realizar con Debian y no
hace falta instalar el entorno grfico, ni un servidor de impresin ni nada.
Responder
sep 5,2014 19:12
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 37/39
Con la instalacin base del sistema es suficiente. Pero si quieres instalar
entornos grficos, etc lo puedes hacer tranquilamente. Si quieres usar
Linux Mint, Ubuntu o cualquier otra distro diferente a Debian tambin lo
puedes hacer.
Las dos primeras lineas que no sabes lo que son no hacen referencia al
servidor OpenVPN. Hacen referencia a un servidor VPN con el protocolo
pptp. El significado de estas lineas se explica en el siguiente link.
http://geekland.hol.es/crear-un-servidor-vpn-pptp/
Un consejo. Si con OpenVPN no te sale puedes probar con pptp (el link
que te acabo de dar). El proceso de configuracin para pptp es mucho
ms sencillo que con OpenVPN. Vers que el nico problema para hacerlo
con pptp es que la seguridad de tu servidor es menor pero para el uso
que le quieres dar imagino que la seguridad no es algo crtico.
Para hacer que tu ip se fija lo puedes hacer tranquilamente despus de
instalar Debian.
Referente a iniciar el servidor dira que no hace falta poner los comandos
que mencionas. Una vez instalados los paquetes se autoinicia
automticamente. Y si no lo hace y no te quieres complicar la vida la
prxima vez que reinicies ya se ejecutar automticamente.
Saludos y espero que te haya sido de ayuda.
Andrew
Estimado Joan;
gracias por este tremendo tutorial, lo que quiero consultarte es lo siguiente:
Resulta que cuando inicio el servidor me dice que no esta cargado el modulo
tun. El mdulo aparece como parte del kernel, pero al hacer modprobe tun no
me devuelve nada, al hacer modprobe tun.ko me dice FATAL:modulo tun.ko no
encontrado error:hd0, msdos1 read errorAl verificar con modinfo tun me
devuelve /lib/modules/3.2.0-4-686-pae/kernel/drivers/net/tun.ko, indicando
que se encuentra dicho modulo en el kernel de debian hay varias partes donde
dice si esta el archivo del modulo tun en /dev/net/tun y efectivamente esta ,
pero es un archivo que tiene 0 bytes; por otra parte hay quienes dicen que debo
crearlo con mknod tun c 10 200, es esto correcto?
Quisiera que me orientaras, estoy trabajando con debian 7.6, versin de kernel
3.2.0-4-686-pae
He intentado cargarlo pero no me resulta, apelo a tus conocimientos y por
favor me digas los pasos a seguir de:
Como lo cargo?
Responder
sep 11,2014 2:13
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 38/39
Si hay que compilarlo, Como lo compilo?
Si lo creo, que debe llevar en el contenido?
Una vez cargado, como verifico que esta activo y funcionando?
como lo incluyo en el arranque de sistema?
Por favor necesito tu ayudadesde ya muchas gracias Joan
Joan Carles
Hola
Solo con hacer lo que se detalla en el tutorial levantaras la interfaz tun.
No hace falta compilar nada. Cuando arranques el servidor openvpn
podrs ver si tun se levanta con un ifconfig.
Saludos
Responder
sep 11,2014 10:09
Nelson
Buenas Caballero, esta muy bien esta documentacin.
Ya prcticamente lo tengo funcionando, pero quera intentar habilitar Access
Server web UIs, para ingresar va Web y realizar el resto de configuraciones del
Openvpn Server.
No he podido habilitarlo, ser que tengo que descargarlo aparte?
Tienes un link para esta descarga?
Gracias por tus comentarios.
Responder
sep 19,2014 1:42
Joan Carles
Si que se puede hacer lo que quieres hacer. Para realizar esto encontrars
los paquetes necesarios en este enlace:
https://openvpn.net/index.php/access-server/overview.html
Tienes que descargar el paquete, instalarlo ejecutarlo y configurar.
Despus de esto podrs acceder a la configuracin de tu servidor
Openvpn va navegador. Si ya tienes realizados todos los pasos del
tutorial dudo que quieras empezar de nuevo todo el proceso. Todo lo
que hagas va web se puede hacer por terminal consumiendo menos
recursos. Adems si lo haces desde la raz siempre comprendes mejor lo
que ests haciendo. De hecho en el post que escribo se realizan todas las
Responder
sep 19,2014 20:27
24/9/2014 Crear y configurar un servidor openvpn con tls-auth y dnsmasq
http://geekland.hol.es/crear-y-configurar-servidor-openvpn/ 39/39
configuraciones que seguramente necesites.
Saludos
Nelson
Gracias!! En efecto prefiero la lnea de comandos, pero el mantenimiento de los
usuarios se lo debo dar a personal con poco conocimiento tcnico, de all que
deseo habilitar la opcin WEB.
Ultima consulta, al instalar estos paquetes y entrar va web, la configuracin que
ya realice se mantendr intacta cierto?
Responder
sep 19,2014 20:35
Joan Carles
Hola. Lo tendrs que probar tu mismo y sabrs la respuesta. Yo no lo se
porqu nunca lo he probado.
Una vez lo hayas hecho me gustara que lo comentars en el blog para
otras personas que tengan la misma duda que tu.
Saludos
Responder
sep 19,2014 20:40

Вам также может понравиться