2- Configuración de RoadWarrior

Imagen de Epe

[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

eso de "el fichero existe"

Imagen de Epe

eso de "el fichero existe" es que ya esa ruta existe... revisa con
route -n

quizá estés confundido de red, no intentes quitar la ruta a la brava, analiza si es verdad que la ruta existe y si es verdad que estás confundido de red que el openvpn debe setear.

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 334 2795
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Estoy conectado pero no puedo ver grupo de trabajo openvpn

Estimados.

Por favor necesito ayuda, segui este manual para poder conectarme(VPN varios clientes a un servidor) todo me salio muy bien.
mi cliente es un pc windows xp servipack 2 y mi servidor es centos 4.6
los paquetes que instale en linux fueron:
openvpn-2.0.9-1.el4.rf.i386.rpm
lzo2-2.02-2.el4.rf.i386.rpm
en mi cliente windows instale este paquete : openvpn-2.0.9-install

Mi configuracion en el server linux en el directorio /etc/openvpn/server.conf es:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.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"
push "route 192.168.5.0 255.255.255.0" ##red lan de mi linux

keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4

mi archivo de configuracion en Windows en C:\Archivos de programa\OpenVPN\config\client.ovpn es:

client
dev tun
proto udp
remote ip-publica-del-server-linux 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 4

Desde la pc windows hago ping a 10.8.0.1 y a todas las pcs de tipo 192.168.5.X y todas me responden..supuestamente con etsas pruebas debe estar todo bien,
pero el problema que tengo es que no me aparece el grupo de trabajo de la red 192.168.5.X desde la pc windows. que podra sser??cual sera el problema??
es decir no tengo acceso a ninguna maquina de la red a donde quiero conectarme que es la red 192.168.5.X.

les paso el log del openvpn

[root@miempresa ~]# tail -f /var/log/messages
Mar 5 18:14:36 miempresa openvpn[4557]: x.x.x.x:1154 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mar 5 18:14:36 miempresa openvpn[4557]: x.x.x.x:1154 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mar 5 18:14:36 miempresa openvpn[4557]: x.x.x.x:1154 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mar 5 18:14:36 miempresa openvpn[4557]: x.x.x.x:1154 [client1] Peer Connection Initiated with x.x.x.x:1154
Mar 5 18:14:36 miempresa openvpn[4557]: client1/ x.x.x.x:1154 MULTI: Learn: 10.8.0.6 -> client1/ x.x.x.x:1154
Mar 5 18:14:36 miempresa openvpn[4557]: client1/ x.x.x.x:1154 MULTI: primary virtual IP for client1/ x.x.x.x:1154: 10.8.0.6
Mar 5 18:14:37 miempresa openvpn[4557]: client1/ x.x.x.x:1154 PUSH: Received control message: 'PUSH_REQUEST'
Mar 5 18:14:37 miempresa openvpn[4557]: client1/ x.x.x.x:1154 SENT CONTROL [client1]: 'PUSH_REPLY,route 192.168.5.0 255.255.255.0,route 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' (status=1)
Mar 5 18:14:51 miempresa sshd(pam_unix)[5168]: session opened for user root by (uid=0)

Por favro ayuda ..gracias de antemano

se usa tun, el tun trabaja a

Imagen de Epe

se usa tun, el tun trabaja a nivel de IP

para permitir bridging, quizá debas hacer el howto pero con TAP (bridging) no lo he hecho porque consume mucho canal.

pon: \\IP\recurso e igual podrás acceder sin tener que realizar tap

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 334 2795
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

problema con Openvpn para acceder a la LAN

Hola a todos, Saludos desde México. Antes que nada, quiero contarles que soy nuevo en el foro y en ésto de Linux y Openvpn llevo como 4 meses aprendiendo,Estoy configurando una VPN tengo la siguiente configuración:

LAN-------eth1...192.168.20.x (En la LAN hay un Server Win 2000)
NET/DSL---eth0...192.168.1.x
TUNEL-----tun0...10.8.0.x

El esquema es el siguiente:

Pc's
|
(Switch LAN)<----Eth1(Server Linux)Eth0---->Cliente RoadWarrior
|
Server

En el Server tengo Debian Etch con Openvpn, los clientes Windows XP con OpenVPN GUI

El problema que tengo es el siguiente,ya tengo todo configurado como lo explica Epe en el manual, pero al hacer ping, solo logro llegar hacia eth1 que es la interfaz de mi LAN,he probado también instalar el OpenVPN GUI en el equipo de la LAN hacia el que quiero acceder, de esa manera si me da respuesta con ping, pero nadamás, NO logro acceder a sus recursos compartidos, ni verlo en Mis sitios de red y el problema también es que me lo aisla totalmente de la LAN,el equipo conectado con OpenVPN GUI ya no tiene acceso al Server de la LAN.Gracias de antemano a quien pueda ayudarme

Necesito ayuda con Openvpn

Hola a todos, Saludos desde México. Antes que nada, quiero contarles que soy nuevo en el foro y en ésto de Linux y Openvpn llevo como 4 meses aprendiendo,Estoy configurando una VPN tengo la siguiente configuración:
LAN-------eth1...192.168.20.x (En la LAN hay un Server Win 2000)
NET/DSL---eth0...192.168.1.x
TUNEL-----tun0...10.8.0.x
El esquema es el siguiente:
Pc's
|
(Switch LAN)<----Eth1(Server Linux)Eth0---->Cliente RoadWarrior
|
Server
En el Server tengo Debian Etch con Openvpn, los clientes Windows XP con OpenVPN GUI
El problema que tengo es el siguiente,ya tengo todo configurado como lo explica Epe en el manual, pero al hacer ping, solo logro llegar hacia eth1 que es la interfaz de mi LAN,he probado también instalar el OpenVPN GUI en el equipo de la LAN hacia el que quiero acceder, de esa manera si me da respuesta con ping, pero nadamás, NO logro acceder a sus recursos compartidos, ni verlo en Mis sitios de red y el problema también es que me lo aisla totalmente de la LAN,el equipo conectado con OpenVPN GUI ya no tiene acceso al Server de la LAN.Gracias de antemano a quien pueda ayudarme

Así tengo mi archivo de configuracion...

Gracias jcyepez, por la pronta respuesta, no creo que sea el push route, o ustedes que son los expertos en ésto, podrían decirme en qué estoy mal?..
------------------------
Este es mi server.conf

port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.20.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
----------
y mi cliente.ovpn es el siguiente:

client

dev tun

proto udp

remote midominio.org 1194

resolv-retry infinite

nobind

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

ns-cert-type server

comp-lzo

verb 3
---------------
Y en el cliente Windows con OpenVPN GUI me agrega lo siguiente:(claro, despues de la verificación de certificados,el cifrado y otros datos adicionales)

Thu Mar 13 23:59:31 2008 [server] Peer Connection Initiated with 192.168.1.80:1194
Thu Mar 13 23:59:32 2008 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Thu Mar 13 23:59:32 2008 PUSH: Received control message: 'PUSH_REPLY,route 192.168.20.0 255.255.255.0,route 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
Thu Mar 13 23:59:32 2008 OPTIONS IMPORT: timers and/or timeouts modified
Thu Mar 13 23:59:32 2008 OPTIONS IMPORT: --ifconfig/up options modified
Thu Mar 13 23:59:32 2008 OPTIONS IMPORT: route options modified
Thu Mar 13 23:59:33 2008 TAP-WIN32 device [TAP Openvpn] opened: \\.\Global\{856015C2-A6DD-4AB9-969E-B4270EFD1C1A}.tap
Thu Mar 13 23:59:33 2008 TAP-Win32 Driver Version 8.4
Thu Mar 13 23:59:33 2008 TAP-Win32 MTU=1500
Thu Mar 13 23:59:33 2008 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface {856015C2-A6DD-4AB9-969E-B4270EFD1C1A} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
Thu Mar 13 23:59:33 2008 Successful ARP Flush on interface [2] {856015C2-A6DD-4AB9-969E-B4270EFD1C1A}
Thu Mar 13 23:59:33 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down
Thu Mar 13 23:59:33 2008 Route: Waiting for TUN/TAP interface to come up...
Thu Mar 13 23:59:34 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down
Thu Mar 13 23:59:34 2008 Route: Waiting for TUN/TAP interface to come up...
Thu Mar 13 23:59:35 2008 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down
Thu Mar 13 23:59:35 2008 Route: Waiting for TUN/TAP interface to come up...
Thu Mar 13 23:59:36 2008 TEST ROUTES: 2/2 succeeded len=2 ret=1 a=0 u/d=up
Thu Mar 13 23:59:36 2008 route ADD 192.168.20.0 MASK 255.255.255.0 10.8.0.5
Thu Mar 13 23:59:36 2008 Route addition via IPAPI succeeded
Thu Mar 13 23:59:36 2008 route ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5
Thu Mar 13 23:59:36 2008 Route addition via IPAPI succeeded
Thu Mar 13 23:59:36 2008 Initialization Sequence Completed
-----------------------------------------
Por favor, necesito de su ayuda!!..Muchas gracias!!

Alguien me puede asesorar con el Firewall??

Gracias epe por la sugerencia, se ve que son un buen equipo de trabajo,es el primer foro en el que recibo ayuda, Muchas gracias!!!!
Creo que si podría ser el firewall, pero la verdad yo soy nuevo en ésto. Estoy usando Shorewall 3.2.6-2, y hay tantas configuraciones que he probado y sin tener éxito, al fin de cuentas a veces me cofundo y ya no se cual usar.
Haciendo un resumen tengo 4 zonas: net(eth0), loc(eth1),fw(Firewall) y road(tun+)
acepto de todas a todas las zonas, y en el archivo masq (para enmascarar) tengo lo siguiente:

#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
#eth0 eth1
eth0 192.168.20.0/24
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
-
La línea comentada no la uso porque me da la siguiente advertencia:
WARNING: default route ignored on int erface eth1: command not found
-
Me gustaría que alguien diera alguna sugerencia de configuración de éste Firewall que funcione bien con el Openvpn,he seguido la configuración de otros links de Openvpn+Shorewall+Clientes Win...pero nada...no he logrado acceder a recursos compartidos en la LAN.
--
Perdón por la ignorancia, pero en los equipos de la LAN, es necesario instalar el OpenVPN GUI??, hasta donde he leido,creo que no, pero es la única forma en que puedo detectar un equipo de la LAN desde internet, pero eso si, NO puedo acceder a los Recursos compartidos

servicio vpn en misma maquina firewall

Hola Epe, gracias y felicitaciones por el howto, muy bueno y claro.
mi consulta es la siguiente, actualmente tengo montado un servidor, en el tengo instalado shorewall como firewall y squid como proxy, toda mi red lan sale por alli, ¿es recomendable que este equipo lo use tambien para montar mi servicio de vpn?

agradesco desde ya las sugerencias que me puedas brindar

Duber

Páginas