[b]Si usted ya configuró y probó algún tipo de conexión openVPN anteriormente, por ejemplo la conexión host a host, no olvide borrar los contenidos del directorio /etc/openvpn especialmente los archivos .key y .conf puesto que nos pueden molestar o confundir para la siguiente configuración.[/b]
[b]Consideraciones preliminares[/b]
En el servidor de openvpn no te olvides de activar el ip_forwarding.
Edita /etc/sysctl.conf y cambia ip_forwarding a 1 (está normalmente en 0).
Entonces ejecuta:
sysctl -p
De olvidar lo anterior la vpn no hará ping hacia la red interna!
Ahora lo lento:
En el servidor openvpn necesitamos crear una serie de claves y certificados iniciales, para poder autenticar y encriptar la información que transitará desde/hacia el servidor/clientes
Contamos con una serie de scripts en el directorio /usr/share/openvpn*/easy-rsa los cuales nos ayudarán mucho a ejecutar ésta tarea inicial.
Como primer paso, sugerimos copiar ese directorio (easy-rsa) hacia /etc/openvpn y cambiarnos a ese directorio, al final copiaremos un archivo que en centos-6 ha cambiado de nombre, quizá en versiones futuras este paso de copiar openssh-1.0.0.cnf con otro nombre no sea necesario:
cp -a /usr/share/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa/2.0
cp openssl-1.0.0.cnf openssl.cnf
[b]Creando el CA[/b]
Una vez dentro de éste directorio procedemos a ejecutar los siguientes pasos:
. vars
sh clean-all
sh build-ca
Con ellos lo que haremos es:
* Inicializar variables de ambiente para poder trabajar con los siguientes scripts de shell para generar las variables
* Inicializamos el directorio de las claves (borrando potenciales archivos viejos)
* build-ca: procedemos a generar el certificado CA
En éste último paso se nos pedirá una serie de información sobre nuestra red/empresa que debemos llenar lo más fielmente posible:
Generating a 1024 bit RSA private key
...........................................................................................
.................................++++++.....................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:EC
State or Province Name (full name) [NA]:Pichincha
Locality Name (eg, city) [BISHKEK]:Quito
Organization Name (eg, company) [OpenVPN-TEST]:EcuaLinux
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:ecualinux
Email Address [me@myhost.mydomain]:info@ecualinux.com
[b]La variable que debemos explícitamente llenar (no dejar en blanco!) es: Common Name.[/b]
[b]Generación del certificado y de la clave de encriptación para el servidor[/b]
Siguiente a la generación del Certificado de autoridad, procedemos a crear el certificado del servidor y de su clave de encriptación:
sh build-key-server server
Generating a 1024 bit RSA private key
......................++++++
.........................++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:EC
State or Province Name (full name) [NA]:Pichincha
Locality Name (eg, city) [BISHKEK]:Quito
Organization Name (eg, company) [OpenVPN-TEST]:EcuaLinux
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:server
Email Address [me@myhost.mydomain]:info@ecualinux.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'EC'
stateOrProvinceName :PRINTABLE:'Pichincha'
localityName :PRINTABLE:'Quito'
organizationName :PRINTABLE:'EcuaLinux'
organizationalUnitName:PRINTABLE:'IT'
commonName :PRINTABLE:'server'
emailAddress :IA5STRING:'info@ecualinux.com'
The stateOrProvinceName field needed to be the same in the CA certificate
(Pichincha) and the request (Pichincha)
En éste paso, también se nos pedirá nuevamente información sobre el certificado propio del servidor. En éste caso por favor, escoger en Common Name un nombre diferente al anteriormente escogido. En mi caso escogí: server
Este paso nos generará dos archivos en el directorio [i]/etc/openvpn/easy-rsa/2.0/keys/[/i] que se copiarán dentro del mismo servidor hacia /etc/openvpn, ellos son:
[i]* server.crt
* server.key[/i]
[b]Generando certificados y claves privadas para los clientes[/b]
Cada cliente debe tener su propio certificado y clave de seguridad, para cara cliente que tengamos deberemos repetir el siguiente paso. [b]Los archivos obtenidos debemos copiarlos hacia el directorio /etc/openvpn/ de los clientes![/b]
En el caso de que nuestros clientes sean en windows, debemos copiarlos hacia c:\program files\openvpn\
Para generar el certificado y claves privadas ejecutamos en nuestro servidor, dentro del directorio [i]/etc/openvpn/easy-rsa/2.0/[/i]
sh build-key client1
Generating a 1024 bit RSA private key
...............................................................................................++++++
......++++++
writing new private key to 'client1.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:EC
State or Province Name (full name) [NA]:Pichincha
Locality Name (eg, city) [BISHKEK]:Quito
Organization Name (eg, company) [OpenVPN-TEST]:EcuaLinux
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:client1
Email Address [me@myhost.mydomain]:info@ecualinux.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'EC'
stateOrProvinceName :PRINTABLE:'Pichincha'
localityName :PRINTABLE:'Quito'
organizationName :PRINTABLE:'EcuaLinux'
organizationalUnitName:PRINTABLE:'IT'
commonName :PRINTABLE:'client1'
emailAddress :IA5STRING:'info@ecualinux.com'
Certificate is to be certified until Nov 24 05:25:40 2016 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
En el ejemplo anterior generamos la clave y el certificado [b]para un cliente llamado client1.[/b]
[b]Debemos hacer notar que al ejecutar el programa sh build-key, le pasamos como parámetro el nombre del cliente (client1 en el ejemplo anterior) el cual debe ser diferente para cada cliente. En el common name ponemos el nombre del cliente (client1 en éste ejemplo) tal y como le pasamos de parámetro.[/b]
Se pueden generar tantas claves como sean necesarias:
sh build-key client2
sh build-key client3
Esto nos generará dos claves y certificados más, para client2 y client3, por favor, en common name debemos poner [b]client2[/b] ó [b]client3[/b] para cada caso.
Generando parámetros de Diffie-Hellman
[b]El parámetro de Diffie-Hellman debemos generarlo así:[/b]
sh build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
......................+...............................+...........
[b]Archivos a copiar al servidor[/b]
Hacia el directorio /etc/openvpn del servidor copiamos los siguientes archivos:
* ca.crt
* ca.key
* server.key
* server.crt
* dh1024.pem
Estos archivos están presentes en: [i]/etc/openvpn/easy-rsa/2.0/keys/[/i]
[b]Archivos a copiar al cliente[/b]
Hacia el directorio /etc/openvpn de cada cliente copiamos los siguientes archivos:
* ca.crt
* client[b]X[/b].crt
* client[b]X[/b].key
Tenga en cuenta que [b]X[/b] es un número que se corresponde con el cliente (para el cliente 2 sería: client2.crt y client2.key por ejemplo).
[b]Estos 3 archivos deben copiarse de forma segura hacia el cliente, quizá mediante scp o algún medio magnético seguro. No deben enviarse por mail puesto que contienen la clave (.key) de encriptación del cliente!
[/b]
Estos archivos están presentes en: [i]/etc/openvpn/easy-rsa/2.0/keys/[/i] [b]del servidor[/b].
Para la configuración en modo roadwarrior las configuraciones del cliente y el servidor varían un poco:
[b]Configuración del servidor:[/b]
El archivo [i]/etc/openvpn/server.conf[/i] quedará así:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
#Direcciones que se asignaran a los
#clientes, el server es .1
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
#Ruta para que los clientes alcancen la red local del server (56.0/24)
push "route 192.168.56.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4
Como podemos ver, hay nuevos parámetros, los más importantes son:
* un [b]push[/b] de la ruta hacia la red local interna del servidor. Esa ruta estádica permitirá que el road warrior vea a las máquinas de la red interna
* [b]server[/b]: Indica el rango de direcciones que se asignará a los clientes que se conecten, deben ser direcciones no similares a las de la red local.
[b]Configuración del cliente:[/b]
En el caso del cliente, así quedaría el archivo de configuración:
client
dev tun
proto udp
remote 201.219.41.38 1194
resolv-retry infinite
nobind
#Las dos siguientes opciones no van en windows
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 4
Las configuraciones más interesantes son:
* [b]Client[/b]: indica que algunas configuraciones las tomará del servidor.
* [b]nobind[/b]: que no actúe como servidor, que solamente vaya como cliente.
* [b]Recordar que cert y key deben ser únicas para cada cliente
[/b]
Si se fijan, el orden en que van los parámetros no importa mucho, he notado que el openvpn es muy noble en el cómo pones los parámetros, le da igual (mayormente).
Comentarios
No sabría decirte, yo he
No sabría decirte, yo he hecho vpns incluso detrás del NAT, sin embargo hay proveedores que bloquean el puerto del openvpn pero lo bonito de openvpn es que puedes escoger otro puerto.
Me falta una parte de openvpn ahora que hablo de eso, y es el uso de proxies... también lo he probado.
Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 404 795 0321
Saludos
epe
EcuaLinux.com
+(593) 9 9924 6504
Servicios en Software Libre
Efectivamente, funciona tras
Efectivamente, funciona tras NAT :) pero con movistar no funca :sick:
Voy a probar con alegro a ver si furula.
------------
Antes de preguntar visita el [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:
[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]
-----
Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:
[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]
(adsbygoogle = window.adsbygoogle || []).push({});
Necesito tu ayuda "EPE" eres el master.....
hola epe tengo un problema muy parecido de mis amigo con openvpn en debian etch configure el server openvpn sin ningun problema los clientes se conectan perfectamente el server les asigna un ip del rango 10.8.0..x y la ip de mi red LAN es la 172.30.11.x
el problema es que mis clientes remotos no pueden alcanzar la red LAN , no puedo hacer pingo hacia ninguna maquina de mi red lan ? me podrias ayudar por favor a solucionar este problema ....
pd : mil gracias de antemano , y te felicito por todo tu tiempo que dedicas ayudarnos gracias
estructura de mi red :
INTERNET---> ROUTER LINKSYS IP 172.30.11.X (AQUI ABRI EL PUERTO 1194 DE LA IP DEL SERVER OPENVPN , PARA DAR ENTRADA A LOS CLIENTES)---->IP SERVER 172.30.11.X -----> Y ASIGNA IPS DEL RANGO 10.8.0.0 A LOS CLIENTES REMOTOS Y SE
CONECTAN MUY BIEN PERO NO PUEDEN ALCANZAR LA IP DE LA RED LAN DEL RANGO 172.30.11.X
Muestranos la salida de un
Muestranos la salida de un traceroute hacia 172.30.11.X desde algun cliente, tambien verifica que en el cliente exista algun firewall.
------------
Antes de preguntar visita el [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:
[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]
-----
Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:
[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]
(adsbygoogle = window.adsbygoogle || []).push({});
yo pensaría que en el
yo pensaría que en el servidor tienes un firewall bloqueando ese puerto o las interfaces tun/tap
verifica el firewall, quizá apagándolo para probar te pueda ayudar a determinar, cuando no funciona tipicamente es por el firewall..
saludos
epe
--

EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 305 675 1512, España: +34 917617884
Saludos
epe
EcuaLinux.com
+(593) 9 9924 6504
Servicios en Software Libre
disculpa la demora en esta
disculpa la demora en esta respuesta, hoy vine a hacer un cambio al joutú y me topé con esta pregunta.
hace unosmeses me pasó lo mismo, movistar bloquea el puerto 1194, simplemente pones a openvpn a escuchar en otro puerto y listo, te funciona.
Saludos
epe
EcuaLinux.com
+(593) 9 9924 6504
Servicios en Software Libre
Muy buen articulo EPE,
Muy buen articulo EPE, Gracias
Saludos
NEO
- - - - - -
www.bodegadelmp3.com
Algunas dudas
Hola señores (as),Tengo el siguiente escenario:
Firewall haciendo NAT hacia un servidor que se encuentra en la red LAN, el servidor LAN solo tiene una tarjeta de red con una direccion IP LAN.
En la configuracion roadwarrior que tengo de prueba puedo establecer una conexion con el servidor OpenVPN, el problema es que no puedo ver los equipos de la red LAN solo puedo ver el servidor VPN.
Como hago para enrutar hacia la red LAN si el servidor OpenVPN solo tiene una tarjeta de red.
Ejemplo del escenario:
Servidor OpenVPN: 10.40.0.20 255.255.0.0
Red LAN: 10.40.0.0 255.255.0.0
Direccion IP LAN del Firewall: 10.40.0.1 255.255.0.0
Direccion IP publica del Firewall: 200.x.y.z
Direccion IP publica NAT hacia Servidor OpenVPN: 200.x.y.z1
Los clientes roadwarrior se conectan al servidor OpenVPN a traves de la direccion IP publica 200.x.y.z1, y lo hace bien, pero cuando quiero conectarme a mis equipos en la red 10.40.0.0 el servidor OpenVPN no enruta.
Puedo hacer ping desde el cliente roadwarrior a la direccion IP del servidor OpenVPN (10.40.0.20), cuando intento hacer ping hacia otra maquina en la red LAN del servidor OpenVPN no enruta y no hace nada.
Puede ser esto por el NAT?
O el servidor OpenVPN necesita dos tarjetas de red, una para la red publica y otra para la red LAN?
Gracias,
Si logro dar con el cuento les envio las notas de instalacion...
Pregunta y duda
EPE felicitaciones por el como, muy bueno y entendible, pero respecto al documento , tengo una duda, para hacer la VPN me baje el openVPN para windows, los certificados del servidor y listo funcionaron muy bien,pero por ejemplo quiero ver las carpetas compartidas y me sale error, pero ping si les puedo hacer a las máquinas de mi LAN en la oficina, también tenia otra inquietud, es posible conectarse a la VPN desde una creada por windows con un usuario y contraseña? y no necesariamente usar el openvpn para windows?

Espero sus ayudas a mi inquietudes.
Gracias
Probaste
Probaste poniendo:
\\ip_maquina\
Para ver las carpetas compartidas ...???
bye
:)
Páginas