Discussion:
Openvpn a traves de router
(demasiado antiguo para responder)
Tximo
2005-04-08 09:57:25 UTC
Permalink
Saludos compañeros,

Estoy utilizando openvpn y funciona a las mil maravillas, pero tengo
que abrir los puertos de la vpn en los dos routers para que funcione.

¿Es normal esta situación? No me explico por que en el lado del
cliente tiene que estar abierto el puerto en el router.

Gracias
Jose Maria Lopez Hernandez
2005-04-08 10:06:40 UTC
Permalink
Post by Tximo
¿Es normal esta situación? No me explico por que en el lado del
cliente tiene que estar abierto el puerto en el router.
¿Como podría funcionar si lo tienes cerrado?
Post by Tximo
Gracias
Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
MhBeyle
2005-04-08 21:05:43 UTC
Permalink
Post by Tximo
Saludos compañeros,
Estoy utilizando openvpn y funciona a las mil maravillas, pero tengo
que abrir los puertos de la vpn en los dos routers para que funcione.
¿Es normal esta situación? No me explico por que en el lado del
cliente tiene que estar abierto el puerto en el router.
Pues claro que es normal. Si el puerto por el que se recibe la
comunicación está cerrado ¿Por dónde entran los datos? :)

MhBeyle ___
Gonzalo Pérez de Olaguer Córdoba
2005-04-08 21:37:35 UTC
Permalink
Post by Tximo
Saludos compañeros,
Estoy utilizando openvpn y funciona a las mil maravillas, pero tengo
que abrir los puertos de la vpn en los dos routers para que funcione.
¿Es normal esta situación? No me explico por que en el lado del
cliente tiene que estar abierto el puerto en el router.
Supongo que por *cliente* te refieres al ordenador que inicia la
conexión, y el otro extremo será el *servidor*. Y supongo que los
routers están haciendo NAT. Si no es así no entiendo la pregunta.

Si es así, busca documentación sobre NAT traversal con openvpn.

Yo tengo una VPN funcionando en esas condiciones con tinc, que es otro
programa de VPN. No tiene problemas para comunicarse con clientes
NATeados tras un cortafuegos. Mantiene toda la comunicación por el canal
TCP abierto originalmente por el cliente, y el servidor no necesita
abrir ninguna conexión con el cliente para responder.

Ignoro si OpenVPN puede hacer eso o no, pero espero haberte dado alguna
pista que te sirva.
--
Gonzalo Pérez de Olaguer Córdoba <***@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C 1302 214F 1934 2861 C704
Jose Maria Lopez Hernandez
2005-04-09 08:08:07 UTC
Permalink
Post by Gonzalo Pérez de Olaguer Córdoba
Si es así, busca documentación sobre NAT traversal con openvpn.
Una de las ventajas de usar OpenVPN y no Freeswan es que no
necesitas NAT Traversal ni nada parecido. No funciona sobre
IPSEC, sino sobre paquetes UDP, así que simplemente abriendo
el puerto debería funcionar.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-11 08:03:42 UTC
Permalink
Gracias por las respuestas,

Entiendo que hay que abrir el puerto del servidor, pero no la del
cliente.
Si que el origina el trafico es el cliente VPN, se conecta al puerto
del router y este lo reenvia al ordenador servidor, ya existe un canal
de comunicacion y el cliente no tiene que direccionar ningun puerto
del router a su maquina.

Tengo entendido que para ofrecer servicios a nivel de servidor (FTP,
E-mail, Http) hay que abrir los puertos del router y direccionarlos al
ordenador en question. Pero es la primera vez que me encuentro que
tenga que abrir el puerto del propio router del cliente, si este es el
que origina la transmision.

Por ejemplo: Para poder conectarme al mi servidor de e-mail yo no
tengo que tener el puerto 110 abierto en el router. Pero en el lado
del servidor si.

Gracias
Jose Maria Lopez Hernandez
2005-04-11 08:08:59 UTC
Permalink
Post by Tximo
Tengo entendido que para ofrecer servicios a nivel de servidor (FTP,
E-mail, Http) hay que abrir los puertos del router y direccionarlos al
ordenador en question. Pero es la primera vez que me encuentro que
tenga que abrir el puerto del propio router del cliente, si este es el
que origina la transmision.
Eso es porque el router cierra todo el tráfico entrante, pero deja
salir todo el tráfico saliente. Si es así no tienes que abrirlo, pero
porque ya lo tienes abierto. En general es una mala práctica tener
todo el tráfico de salida abierto, aunque muy común.
Post by Tximo
Gracias
Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-11 15:11:38 UTC
Permalink
Gracias por tu rapida respuesta,

Lo tengo que abrir porque si lo tengo cerrado en ambos extremos no
funciona. De aqui venia mi pregunta inicial. Tengo ciertos
conocimientos de informatica y es la primera vez que me sucede esto.
He leido las faqs del programa openvpn pero no indica esta
peculariedad.

¿Alguien tiene experiencia en este programa?
Gonzalo Pérez de Olaguer Córdoba
2005-04-11 15:38:04 UTC
Permalink
Post by Tximo
Gracias por tu rapida respuesta,
Lo tengo que abrir porque si lo tengo cerrado en ambos extremos no
funciona. De aqui venia mi pregunta inicial. Tengo ciertos
conocimientos de informatica y es la primera vez que me sucede esto.
He leido las faqs del programa openvpn pero no indica esta
peculariedad.
¿Alguien tiene experiencia en este programa?
Yo no. Con tinc ya te he comentado que lo que quieres hacer sí que es
posible. Con openvpn lo ignoro. El cliente que está detrás de un
cortafuegos que hace NAT y deja salir el tráfico pero no puede recibir
conexiones de fuera se llama "road warrior". El caso típico es un
portatil que se conecta desde lugares dispares a una "estación base".

googlea "openvpn road warrior" a ver si tienes suerte, o busca en la
documentación de openvpn. Seguro que se habla de ello.
--
Gonzalo Pérez de Olaguer Córdoba <***@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C 1302 214F 1934 2861 C704
Jose Maria Lopez Hernandez
2005-04-11 15:43:24 UTC
Permalink
Post by Tximo
He leido las faqs del programa openvpn pero no indica esta
peculariedad.
¿Alguien tiene experiencia en este programa?
Sí, yo he montado OpenVPN sobre Linux y Windows. Su principal ventaja
es que puede funcionar con un interface virtual al que puedes aplicar
todo tipo de reglas iptables y que para comunicarse no usa IPSEC, sino
que se puede comunicar por un puerto TCP o UDP como cualquier programa,
así que es fácil de enrutar y dejar pasar por los firewalls.

La única pega de OpenVPN es que no es capaz de interactuar con otras
soluciones VPN. Ahí FreeVPN tiene mucha ventaja, pues es posible hacerla
funcionar con la mayoría de las implementaciones IPSEC, como la de los
Cisco Pix.

Si tienes alguna pregunta no dudes en postearla. No es que sea un gran
experto en VPNs, pero me he tenido que pelear con unas cuantas y algo
sí que controlo.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-14 16:46:20 UTC
Permalink
Gracias,

Finalmente lo he logrado. El problema radicaba en el fichero de
configuracion del cliente. Ahora mismo esta funcionando perfectamente.

Tengo entendido que telefonica desconecta a veces las conexiones VPN
que encuentra (ellos venden una VPN propia).

¿Te has encontrado alguna vez con esta situacion?

¿Me podrias explicar mas sobre el termino road-warrior? no lo tengo
muy claro.

Y una ultima pregunta, para que un cliente windows vea las maquinas
que hat detras del servidor VPN (como si fuera una red) ¿necesito
instalar WINS ?

Gracias por tu paciencia y perdona por las preguntas
Jesús M. NAVARRO
2005-04-14 18:16:16 UTC
Permalink
Post by Tximo
Gracias,
Finalmente lo he logrado. El problema radicaba en el fichero de
configuracion del cliente. Ahora mismo esta funcionando perfectamente.
Tengo entendido que telefonica desconecta a veces las conexiones VPN
que encuentra (ellos venden una VPN propia).
Tengo alguna VPN montada sobre OpenVPN y no he visto que haya pasado eso.
Lo que sí es cierto, sin embargo, es que algunas modalidades de contrato de
"tarifa plana" tienen un límite máximo de conexión (en algún caso, 22
horas): si estás conectado 22 horas seguidas, te "tiran" la conexión y
tienes que volver a reconectar, pero eso es independiente de los protocolos
que utilices.
Post by Tximo
¿Me podrias explicar mas sobre el termino road-warrior? no lo tengo
muy claro.
Road Warrior, literalmente, "Guerrero de la Carretera" y es cualquier
trabajador que, eso, se gana la habichuelas estando en "la carretera" y, en
este caso concreto, va por ahí con su ordenador (un agente comercial, por
ejemplo) y necesita acceso a los recursos informáticos internos de la
empresa.
Post by Tximo
Y una ultima pregunta, para que un cliente windows vea las maquinas
que hat detras del servidor VPN (como si fuera una red) ¿necesito
instalar WINS ?
No. Para que los vea, lo que va a necesitar son ojos; sin ojos, no ve. Por
otra parte ¿qué quieres decir con "ver" (ya que no creo que te refieras el
hecho físico)? Según lo que quieras conseguir, eso necesitarás habilitar.

En cualquier caso, no: no *necesitas* Wins para nada (aunque en algunas
situaciones puede resultar útil, que no necesario).
--
SALUD,
Jesús
Tximo
2005-04-15 14:07:29 UTC
Permalink
Saludos,

Referente al tema del WINS, mi intención es que un cliente se conecte
a traves de internet a la red de la empresa, pudiendo utilizar
'entorno de red' para visualizar los nombres NetBIOS de los pcs de la
red. Claro esta, los clientes no son todos Windows 2000 o XP, existen
windows 98, para ello necesito la resolucion de nombres.

Creo entender que NetBios se propaga por difusion, no pudiendo
enrutarse.
Si todas las maquinas fueran Windows 2000 o XP:

¿Podría utilizar DNS indicando al cliente VPN la dirección IP de mi
Controlador de Dominio, para la resolucion de nombres?

Gracias nuevamente por tu paciencia.
Jesús M. NAVARRO
2005-04-15 16:57:36 UTC
Permalink
Hola, Tximo:

Tximo escribió en es.comp.os.linux.redes:

[...]
Post by Tximo
¿Podría utilizar DNS indicando al cliente VPN la dirección IP de mi
Controlador de Dominio, para la resolucion de nombres?
Supuesto que los clientes sean 2000/XP, y estés hablando de un dominio de
tipo AD, puedes hacer algo mejor: utilizar *exclusivamente* resolución DNS
(obviamente, la dirección importante aquí es la IP del servidor DNS, que
puede coincidir o no con la de algún Controlador de Dominio); échale un
vistazo a los parámetros de la configuración de red de los clientes
2000/2003/XP.
--
SALUD,
Jesús
Jose Maria Lopez Hernandez
2005-04-14 19:35:25 UTC
Permalink
Post by Jose Maria Lopez Hernandez
soluciones VPN. Ahí FreeVPN tiene mucha ventaja, pues es posible hacerla
Quería decir OpenSwan, obviamente, que me han bailado los Free, los Open
y los VPN.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-15 14:18:43 UTC
Permalink
Perdona, soy el pesado :-))

Una vez establecida la conexion entre servidor-cliente, en el log del
OPENVPN me aparece cada hora:

TLS: tls_process: killed expiring key

Creo que es que la key ha expirado y genera una nueva, no?
Jose Maria Lopez Hernandez
2005-04-15 14:33:18 UTC
Permalink
Post by Tximo
Perdona, soy el pesado :-))
No te asignes tareas que no puedes llevar a cabo. El pesado oficial
del grupo soy yo, por votación popular :-)
Post by Tximo
Una vez establecida la conexion entre servidor-cliente, en el log del
TLS: tls_process: killed expiring key
Creo que es que la key ha expirado y genera una nueva, no?
Sí, aparece siempre en los logs de OpenVPN. Creo que la explicación
es que en la negociación del protocolo TLS se genera una key primaria
para negociar y luego otra para tunelizar los datos, haciendo entonces
expirar la primera, o algo así...

Bueno, el caso es que es totalmente normal y sólo aparece en los logs
a título informativo. En la documentación de OpenVPN no viene nada
sobre este mensaje, y en el código fuente pone más o menos lo que te
cuento arriba. Al menos eso es lo que yo recuerdo de cuando lo estuve
mirando.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-16 18:08:07 UTC
Permalink
Saludos y buen fin de semana,

Tengo la VPN funcionando prefectamente. Ahora quiero tener mas dolores
de cabeza. La intencion es que el road-warrior pueda realizar pings a
las maquinas que hay en la LAN del servidor VPN y por lo tanto acceder
a ellas. He leido la web: http://openvpn.net/howto.html y he realizado
algunos cambios en la configuaracion, pero no logro que funcione. Hay
ciertos apartados que no entiendo.

A ver si lo tengo claro:

En el servidor creamos un directorio llamado CCD. En él editamos un
fichero con el nombre comun del cliente para que lo procese. El
archivo contiene la linea:
iroute 192.168.0.0 255.255.255.0 # Direccion de red del cliente.

En el fichero de configuración del servidor añadimos
route 192.168.0.0 255.255.255.0

El proximo paso para permitir trafico entre la red del Road-Warrior y
la red del servidor añado en el fichero de configuaríón del servidor
client-to-client
push "route 192.168.0.0 255.255.255.0"

Y finalmente el ultimo paso que no lo acabo de entender:

Textualmente:

"The last step, and one that is often forgotten, is to add a route to
the server's LAN gateway which directs 192.168.0.0/24 to the OpenVPN
server box (you won't need this if the OpenVPN server box is the
gateway for the server LAN). Suppose you were missing this step and
you tried to ping a machine (not the OpenVPN server itself) on the
server LAN from 192.168.0.8? The outgoing ping would probably reach
the machine, but then it wouldn't know how to route the ping reply,
because it would have no idea how to reach 192.168.0.0/24. The rule of
thumb to use is that when routing entire LANs through the VPN (when
the VPN server is not the same machine as the LAN gateway), make sure
that the gateway for the LAN routes all VPN subnets to the VPN server
machine.

Similarly, if the client machine running OpenVPN is not also the
gateway for the client LAN, then the gateway for the client LAN must
have a route which directs all subnets which should be reachable
through the VPN to the OpenVPN client machine."

¿Me podeis ayudar?

Una pregunta más:

Que significan estos parámetros en el fichero de configuración:

local 192.168.100.2
remote 200.150.160.170
dev tun0
comp-lzo
user nobody
ping 15
ifconfig 10.30.65.131 10.30.75.69
up /etc/vpnservidor1.up
secret /etc/static_openvpn.key
verb 3

Muchas gracias.
Jose Maria Lopez Hernandez
2005-04-17 08:52:48 UTC
Permalink
Post by Tximo
Similarly, if the client machine running OpenVPN is not also the
gateway for the client LAN, then the gateway for the client LAN must
have a route which directs all subnets which should be reachable
through the VPN to the OpenVPN client machine."
¿Me podeis ayudar?
Básicamente lo que te dice es que si el servidor VPN y el gateway
de acceso de la LAN a la VPN no son la misma máquina debes enrutar
el tráfico de la red del gateway a través de la máquina con la
VPN. Si es la misma máquina no tienes que hacer nada. Si acaso puedes
necesitar tener el ip_forward activado y depende del caso usar NAT
en el dispositivo TUN.
Post by Tximo
local 192.168.100.2
IP local de la VPN
Post by Tximo
remote 200.150.160.170
IP remota de la VPN
Post by Tximo
dev tun0
Dispositivo virtual TUN que usa el OpenVPN
Post by Tximo
comp-lzo
Tipo de compresión: LZO
Post by Tximo
user nobody
Esta no me la sé.
Post by Tximo
ping 15
Ni esta.
Post by Tximo
ifconfig 10.30.65.131 10.30.75.69
Configuración de las IP de los dispositivos TUN a uno
y otro lado del tunel, creo recordar...
Post by Tximo
up /etc/vpnservidor1.up
Script para cuando se levanta el tunel
Post by Tximo
secret /etc/static_openvpn.key
Clave secreta para la encriptación de la VPN
Post by Tximo
verb 3
Nivel de logging.
Post by Tximo
Muchas gracias.
Ten en cuenta que te lo digo de memoría, no meta la gamba
en algún sitio...

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Jesús M. NAVARRO
2005-04-18 15:22:48 UTC
Permalink
Post by Tximo
Saludos y buen fin de semana,
Tengo la VPN funcionando prefectamente. Ahora quiero tener mas dolores
de cabeza. La intencion es que el road-warrior pueda realizar pings a
las maquinas que hay en la LAN del servidor VPN y por lo tanto acceder
a ellas. He leido la web: http://openvpn.net/howto.html y he realizado
algunos cambios en la configuaracion, pero no logro que funcione. Hay
ciertos apartados que no entiendo.
No acabo de entender; por lo que respecta al servidor, su configuración para
permitir el acceso a un "road warrior" es exactamente la misma que para
cualquier otra conexión punto a punto.
Post by Tximo
En el servidor creamos un directorio llamado CCD. En él editamos un
fichero con el nombre comun del cliente para que lo procese. El
iroute 192.168.0.0 255.255.255.0 # Direccion de red del cliente.
En el fichero de configuración del servidor añadimos
route 192.168.0.0 255.255.255.0
Humm... Vale: y esa ruta, ¿a través de qué interfaz se va a establecer?

[...]
Post by Tximo
"The last step, and one that is often forgotten, is to add a route to
the server's LAN gateway which directs 192.168.0.0/24 to the OpenVPN
server box (you won't need this if the OpenVPN server box is the
gateway for the server LAN). Suppose you were missing this step and
you tried to ping a machine (not the OpenVPN server itself) on the
server LAN from 192.168.0.8? The outgoing ping would probably reach
the machine, but then it wouldn't know how to route the ping reply,
because it would have no idea how to reach 192.168.0.0/24. The rule of
thumb to use is that when routing entire LANs through the VPN (when
the VPN server is not the same machine as the LAN gateway), make sure
that the gateway for the LAN routes all VPN subnets to the VPN server
machine.
Similarly, if the client machine running OpenVPN is not also the
gateway for the client LAN, then the gateway for the client LAN must
have a route which directs all subnets which should be reachable
through the VPN to the OpenVPN client machine."
Pues básicamente lo que viene a decir es lo siguiente: para formar un túnel
cifrado necesitas tener en cuenta dos cosas:
1/ La conexión de protocolo punto a punto entre los extremos del túnel;
Deberán crearse las interfaces para soportar el túnel, y ambos extremos
deberán saber dónde está el otro extremo (dirección y puerto) y cómo
ponerse de acuerdo sobre cómo cifrar los paquetes.
2/ Desde el momento en que "detrás" de los nodos que se encargan de mantener
el túnel existan otros equipos u otras interfaces de red, tienes que
asegurarte de que sepan encontrar al otro extremo (o a los equipos tras el
otro extremo), y para ello, sus tablas de rutas tendrán que ser correctas.

Así, si unes una red 192.168.1.0/24 con otra 192.168.2.0/24, mediante un
túnel con OpenVPN, entonces...

1/ Las dos máquinas que generan el túnel deberán saber dónde encontrar a la
otra (para ello deberán especificarse sus IPs *PÚBLICAS* correspondientes y
el puerto UDP que se va a utilizar).
2/ Las dos máquinas que generan el túnel deberán poder ponerse de acuerdo
sobre el mecanismo de cifra a utilizar (por lo que parece más abajo,
tendrán que utilizar el mismo fichero con la misma clave estática).
3/ Una vez establecido el vínculo cifrado UDP, las máquinas que generan el
túnel tendrán que configurar los dispositivos virtuales tun/tap
respectivos, dotarlos de una IP y establecer la conexión punto-a-punto, con
la ruta correspondiente (por ejemplo, que se va a utilizar el dispositivo
tun0, al que se le asigna la ruta punto-a-punto 10.0.0.1 a 10.0.0.2)
4/ Finalmente, los equipos que vayan a utilizar el túnel tienen que "saber"
que se puede llegar a la red 192.168.1.0/24 (o 192.168.2.0/24, según el
extremo del que estemos hablando) a través de la IP de su propia red en la
que se genere el túnel (si ese equipo es también la pasarela por defecto de
esa red, este paso no hará falta, ya que los equipos ya "saben" que deberán
enviar los paquetes por esa pasarela para cualquier red que no sea la
propia; pero la propia pasarela sí que tendrá que "saber" qué red o redes
se encuentran al otro lado del túnel, para poder enviar a través del
dispositivo tun los paquetes apropiados).
Post by Tximo
¿Me podeis ayudar?
local 192.168.100.2
IP "pública" de la máquina local (desde la que se "lanza" el túnel, por lo
que respecta a su visibilidad en Internet. ATENCIÓN!!! Primera cosa
sospechosa: esa IP es privada ¿seguro que es la que tienes que poner?)
Post by Tximo
remote 200.150.160.170
La IP pública del extremo remoto del túnel.
Post by Tximo
dev tun0
El dispositivo "tun" virtual al que se asociará el túnel.
Post by Tximo
comp-lzo
El nivel de compresión de los datos que viajan por el túnel.
Post by Tximo
user nobody
El usuario al que "caerán" los privilegios del programa openvpn una vez
creadas las interfaces y vinculado el socket correspondiente.
Post by Tximo
ping 15
"keepalive" cada 15 segundos para mantener "vivo" el túnel.
Post by Tximo
ifconfig 10.30.65.131 10.30.75.69
La configuración "punto a punto" del túnel, esto es, las direcciones IPs
"internas" del túnel para poder establecer la conexión punto a punto
ATENCIÓN!!! Se supone, visto lo visto, que estás usando una clase B ¿seguro
que es eso lo que quieres?
Post by Tximo
up /etc/vpnservidor1.up
El script que se encarga de "levantar" el túnel VPN (para ello se encarga de
crear, o verificar que existe, el dispositivo tun, añadir las IPs
correspondientes y establecer la tabla de rutas.
Post by Tximo
secret /etc/static_openvpn.key
La clave secreta estática que comparten ambos extremos del túnel para cifrar
la conexión ATENCIÓN!!! Es vital que ambos extremos del túnel compartan la
misma clave, o el túnel no se podrá establecer.
Post by Tximo
verb 3
El nivel de "verbosidad" del ejecutable. El nivel "0" sólo muestra errores
críticos; el "8" es el máximo; el nivel normalmente adecuado para operación
está entre el "1" y el "5".

Como resumen, y siguiendo el ejemplo anterior, veamos qué ocurre con un
paquete generado en 192.168.1.177, con destino a 192.168.2.123.
1/ El equipo 192.168.1.177 tiene que "saber" a qué pasarela enviar el
paquete. Si el dispositivo VPN es el mismo que la pasarela por defecto de
la red, simplemente se lo enviará a él; si no lo es, el equipo
192.168.1.177 tendrá que tener una ruta que indique que la red
192.168.2.0/24 es alcanzable a través de la pasarela openvpn. Vamos a
suponer el primer caso y vamos a suponer que la pasarela por defecto es
192.168.1.1.
2/ 192.168.1.1 (la interfaz interna de nuestra pasarela, vamos a suponer que
es eth0) recibe el paquete. El equipo revisa su propia tabla de rutas, que
le "dice" que para alcanzar la red 192.168.2.0/24 deberá "dejar caer" el
paquete en la interfaz virtual tun0, y así lo hace.
3/ La interfaz virtual tun0 tiene configurado un enlace p-t-p, tal que la IP
local del enlace es la 10.0.0.1 y la remota la 10.0.0.2
4/ El software openvpn está configurado de tal modo que todo lo que llega a
la interfaz tun0 (con IP 10.0.0.1) es cifrado mediante la clave contenida
en el archivo /etc/static_openvpn.key, y luego encapsulado sobre protocolo
IP y "dejado caer" a través del puerto UDP (por ejemplo) 5003 en la
interfaz eth1, con IP pública [la que sea], cambiando su destino a la IP
pública del otro extremo y mismo puerto UDP.
5/ En el extremo distal del túnel, todo lo que llegue al puerto UDP 5003 de
su interfaz pública (vamos a suponer que también es eth1) y la IP pública
declarada anteriormente, es "desencapsulado" y reenviado al dispositivo
tun0; allí se descifra utilizando la misma clave que se utilizó para
cifrarlo en el otro extremo, y de nuevo se vuelven a obtener los paquetes
de protocolo p-t-p, con origen 10.0.0.1 y destino 1.0.0.2 (el extremo local
del enlace p-t-p); se aceptan, y se ve que el destino es el equipo
192.168.2.123; revisada la tabla de rutas local, se ve que esa red es
accesible a través de la interfaz eth0, y se vuelcan a ella. Finalmente,
el equipo con IP 192.168.2.123, "ve" estos paquetes y los recibe.

Como se ve, para que la cosa funcione, todo (rutas, cifrados, dispositivos
p-t-p y túnel UDP entre ambos extremos públicos) deberá estar correctamente
configurado y coordinado, o los paquetes se "perderan" en alguno de los
eslabones.
--
SALUD,
Jesús
Tximo
2005-04-16 18:17:14 UTC
Permalink
Para mas información:

Cliente
Ip LAN : 192.168.0.32
Ip asignada por VPN: 10.8.0.6

Servidor
Ip LAN: 192.168.1.32
Ip asignada por VPN: 10.8.0.1

Gracias
Tximo
2005-04-18 10:58:59 UTC
Permalink
Saludos,

Estoy probando varias configuraciones para poder establecer un ping
desde el cliente vpn a una maquina de la red donde se encuentra el
servidor VPN. Únicamente logro hacer un ping a la dirección ip local
del servidor VPN (192.168.1.32), pero no al resto de las maquinas
(Tiempo de espera agotado).

La configuración es la siguiente:

Cliente

IP Local 192.168.0.32
IP Asignada por VPN 10.8.0.6

Servidor

IP Local 192.168.1.32
IP Asignada por VPN 10.8.0.1

He añadido estas líneas al server.ovpn

ifconfig 10.8.0.1 10.8.0.6
client-to-client
route 192.168.1.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"

He añadido estas líneas al client.ovpn

route 192.168.1.0 255.255.255.0

---

Una vez establecida la conexión, en la tabla de routeo del cliente
aparece:

Destino de red : 192.168.1.0
Mascara de subred : 255.255.255.0
Puerta de acceso: 10.8.0.5 ??? -- Servidor DHCP y Gateway del Openvpn
??
Interfaz 10.8.0.6
Métrica 1

Cuando desde el cliente realizo un ping al 192.168.1.32 funciona
correctamente, pero cuando intento con 192.168.1.1 - (Tiempo de espera
agotado).

Por cierto estoy utilizando TUN.

¿Dónde tengo el error?
¿Es TAP compatible con Windows 2000 Profesional/Server?
Jose Maria Lopez Hernandez
2005-04-18 13:12:53 UTC
Permalink
Post by Tximo
¿Dónde tengo el error?
Creo que el error está en que no haces SNAT en el servidor de VPN,
por tanto estás intentando comunicar desde un cliente externo
a IPs privadas dentro de tu LAN, detrás del VPN. Esto sólo es
posible teniendo una sóla IP pública realizando SNAT en el
servidor de VPN.

Piensa que el OpenVPN simplemente te crea un interface de red virtual
para conectar con otro interface de red en el cliente. Todas las
demás reglas que aplicarías para un interface de red real debes
aplicarlas también al creado por OpenVPN.
Post by Tximo
¿Es TAP compatible con Windows 2000 Profesional/Server?
Yo sólo lo he probado con Windows XP, pero supongo que sí.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-18 18:10:32 UTC
Permalink
Gracias compañero,

¿Como puedo hacer SNAT en el servidor VPN?

¿Es posible cumplir mi proposito de conexion cliente-LAN(Servidor)?

No entiendo que pueda hacer un ping del cliente a la ip servidor de la
LAN (en su subred) y funcione, pero no al resto de maquinas de la red
del Servidor.

Mientras tanto buscare información de SNAT.

Por cierto, muchas gracias por tus rapidas contestaciones.
Jose Maria Lopez Hernandez
2005-04-18 18:53:17 UTC
Permalink
Post by Tximo
¿Como puedo hacer SNAT en el servidor VPN?
Primero lee el post de Jesus M. Navarro, creo que haciendo lo que
el comenta no es necesario el SNAT.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Jesús M. NAVARRO
2005-04-18 22:32:49 UTC
Permalink
Post by Jose Maria Lopez Hernandez
Post by Tximo
¿Como puedo hacer SNAT en el servidor VPN?
Primero lee el post de Jesus M. Navarro, creo que haciendo lo que
el comenta no es necesario el SNAT.
Si de lo que se trata es "nada más" de conseguir conexión entre dos redes
locales no, porque existirá un túnel privado que las una (dejando de lado
el asunto criptográfico, de eso de lo que se trata), con rutas adecuadas.

Hay que tener en cuenta que redes como las existentes en 192.168.0.0/16 son
no-rutables *públicamente*, pero nada más; no hay ninguna "magia" que
impida establecer rutas entre ellas en redes privadas, sin salida a
Internet (o encapsuladas para aislarla de ella).
--
SALUD,
Jesús
Jose Maria Lopez Hernandez
2005-04-19 08:04:45 UTC
Permalink
Post by Jesús M. NAVARRO
Hay que tener en cuenta que redes como las existentes en 192.168.0.0/16 son
no-rutables *públicamente*, pero nada más; no hay ninguna "magia" que
impida establecer rutas entre ellas en redes privadas, sin salida a
Internet (o encapsuladas para aislarla de ella).
Como veo que controlas del tema te voy a preguntar algo que me ha venido
a la cabeza a raiz del tema. ¿Es posible tener varios Roadwarriors con
OpenVPN y que algunos de estos conecten a la vez al servidor OpenVPN?
¿Sería necesario algún tipo de NAT o serviría el método que has
explicado? Me refiero a Roadwarriors que tienes diferentes IPs en
diferentes subnetworks. ¿Bastaría con asignar al OpenVPN de cada
Roadwarrior una IP/mascara en la misma subnet que el OpenVPN servidor?

Es que creo que sería interesante para redes Wifi semi-públicas, por
ejemplo.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Jesús M. NAVARRO
2005-04-19 14:27:20 UTC
Permalink
Post by Jose Maria Lopez Hernandez
Post by Jesús M. NAVARRO
Hay que tener en cuenta que redes como las existentes en 192.168.0.0/16
son no-rutables *públicamente*, pero nada más; no hay ninguna "magia" que
impida establecer rutas entre ellas en redes privadas, sin salida a
Internet (o encapsuladas para aislarla de ella).
Como veo que controlas del tema te voy a preguntar algo que me ha venido
a la cabeza a raiz del tema. ¿Es posible tener varios Roadwarriors con
OpenVPN y que algunos de estos conecten a la vez al servidor OpenVPN?
Por supuesto que sí (como ya he dicho, por lo que respecta al servidor, el
procedimiento de conexión es el mismo para "roadwarriors" que para
distintas sedes). Con la versión 1.x será necesario que cada usuario
utilice un puerto UDP distinto, y utilizar ficheros de configuración en el
servidor para cada uno de ellos (engorroso, conforme vas teniendo usuarios.
Aunque por otra parte, como los ficheros de configuración son prácticamente
idénticos es muy fácil automatizar su creación). La versión 2 introduce un
modo "servidor" que permite multiplexar las conexiones (pero no lo he
probado).
Post by Jose Maria Lopez Hernandez
¿Sería necesario algún tipo de NAT o serviría el método que has
explicado? Me refiero a Roadwarriors que tienes diferentes IPs en
diferentes subnetworks. ¿Bastaría con asignar al OpenVPN de cada
Roadwarrior una IP/mascara en la misma subnet que el OpenVPN servidor?
En cualquiera de los casos funcionará sin necesidad de NAT (otra cosa será
saber qué es lo que puede interesar más en un caso concreto).
Post by Jose Maria Lopez Hernandez
Es que creo que sería interesante para redes Wifi semi-públicas, por
ejemplo.
Pues eso: cómo decidas implementarlo es realmente independiente del hecho de
que haya un túnel con encriptación de por medio (por eso se habla de "redes
virtuales"). Tú deberías evaluar qué topología es más adecuada para tu
situación (¿quiero aislar los distintos clientes entre sí? ¿Me da igual que
aparezcan en un segmento único pero me interesa aislarlos de la zona
interna de mi red, creando a efectos prácticos una DMZ para ellos? ¿es lo
correcto crear una red "plana" para todos los equipos, independientemente
de que sean locales o remotos?...). Cuando has dado con una topología
razonable para tu situación, entonces ves cómo se puede implementar
haciendo uso de OpenVPN... y te diría que, sobre todo con la versión 2, la
libertad es máxima desde este punto de vista, ya que soporta tanto
dispositivos TUN como TAP, y estos últimos permiten crear "bridges"
virtuales. Si juntamos esto con el hecho de que ipfilter/iptables soporta
seguimiento y filtrado de conexiones tanto en modo bridge como router para
este tipo de interfaces (aunque he de decir, de nuevo, que no me ha tocado
probarlo), ya ves...

En cualquier caso, la página man de openvpn (especialmente en la versión
2.x) es muy clara y completa.
--
SALUD,
Jesús
Jose Maria Lopez Hernandez
2005-04-20 09:07:50 UTC
Permalink
Post by Jesús M. NAVARRO
Pues eso: cómo decidas implementarlo es realmente independiente del hecho de
que haya un túnel con encriptación de por medio (por eso se habla de "redes
virtuales"). Tú deberías evaluar qué topología es más adecuada para tu
situación (¿quiero aislar los distintos clientes entre sí? ¿Me da igual que
aparezcan en un segmento único pero me interesa aislarlos de la zona
interna de mi red, creando a efectos prácticos una DMZ para ellos? ¿es lo
Gracias por tu post. Me has dado ya información para investigar lo que
quiero. Básicamente la idea es por ejemplo tener dos oficinas con dos
servidores OpenVPN sobre Wifi, y tener un roadwarrior con XP que tenga
por ejemplo el OpenVPN configurado para una de ellas, pero que cuando
vaya a la otra pueda conectar a la otra red sin tener que tocar nada
en su máquina. Creo que con lo que me has contado me puedo poner a
investigarlo.

Saludos.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
***@bgsec.com
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPAÑA

The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
Tximo
2005-04-19 18:02:31 UTC
Permalink
Saludos, soy el pesado insistente, pero poco a poco aprende.

Realmente sabeis mucho del tema.
Probre de mi, continuo con mis dolores de cabeza. Volvere a leer
detenidamente todos vuestros mensajes, pero al dia de hoy todavia no
puedo hacer pings desde un cliente de VPN a la subred del Servidor
VPN. EStoy aprendiendo mucho del tema, pero todavia me falta, me
falta mucho.

La configuracion del servidor es:

port 1194
proto udp
dev tun

ca ca.crt
cert srvlgin.crt
key srvlgin.key
dh dh2048.pem
tls-auth ta.key 0

client-to-client

####################
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# el problema debe estar aqui, no?
# Envia Orden al cliente
push "route 192.168.1.0 255.255.255.0"

route 10.8.0.6 255.255.255.0

# route 192.168.1.32 255.255.255.0
ifconfig 10.8.0.1 10.8.0.6
####################################

keepalive 10 60
ping-timer-rem
comp-lzo
max-clients 100
persist-key
persist-tun
verb 3

Seguramente el problema (como comentais) viene del ruteo. Pienso que
tengo el ruteo del cliente correctamente porque puedo hacer pings a
192.168.1.32 (la direccion ip local del servidor Vpn). Pero cuando
intento, por ejemplo a 192.168.1.1 el ping se pierde.

¿Como es la instrucion route para decir que el paquete pase de la
subred 10.8.0.0 a la 192.168.1.0, para conseguir mi proposito?
Jesús M. NAVARRO
2005-04-20 01:25:39 UTC
Permalink
Hola, Tximo:

Tximo escribió en es.comp.os.linux.redes:

[...]
Post by Tximo
Seguramente el problema (como comentais) viene del ruteo. Pienso que
tengo el ruteo del cliente correctamente porque puedo hacer pings a
192.168.1.32 (la direccion ip local del servidor Vpn). Pero cuando
intento, por ejemplo a 192.168.1.1 el ping se pierde.
¿Como es la instrucion route para decir que el paquete pase de la
subred 10.8.0.0 a la 192.168.1.0, para conseguir mi proposito?
Eso quiere decir que el cliente debe poseer en su tabla de rutas una entrada
que diga que la pasarela para 192.168.1.0/32 es su dispositivo tun local
(por lo que parece, tendrá la IP 10.8.0.6). Compruébalo.
--
SALUD,
Jesús
Tximo
2005-04-21 13:41:33 UTC
Permalink
Estoy utilizando Windows tanto en el servidor como cliente.
La tabla de rutas del cliente, una vez conectado es:

Rutas activas:
Destino de red Máscara de red Puerta de acceso Interfaz
Métrica
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.12
25
10.8.0.0 255.255.255.0 10.8.0.5 10.8.0.6
1
10.8.0.4 255.255.255.252 10.8.0.6 10.8.0.6
30
10.8.0.6 255.255.255.255 127.0.0.1 127.0.0.1
30
10.255.255.255 255.255.255.255 10.8.0.6 10.8.0.6
30
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
1
192.168.0.0 255.255.255.0 192.168.0.12 192.168.0.12
25
192.168.0.12 255.255.255.255 127.0.0.1 127.0.0.1
25
192.168.0.255 255.255.255.255 192.168.0.12 192.168.0.12
25
192.168.1.0 255.255.255.0 10.8.0.5 10.8.0.6
1
224.0.0.0 240.0.0.0 10.8.0.6 10.8.0.6
30
224.0.0.0 240.0.0.0 192.168.0.12 192.168.0.12
25
255.255.255.255 255.255.255.255 10.8.0.6 2
1
255.255.255.255 255.255.255.255 10.8.0.6 10.8.0.6
1
255.255.255.255 255.255.255.255 192.168.0.12 192.168.0.12
1
Puerta de enlace predeterminada: 192.168.0.1
===========================================================================
Rutas persistentes:
ninguno

Se puede ver 192.168.1.0 tiene como puerta de acceso 10.8.0.5 y la
interfaz 10.8.0.6. Parece ser que la direccion ip 10.8.0.5 es la del
servidor DHCP de VPN¿?.

El ping funciona correctamente desde el cliente
(192.168.0.32-10.8.0.6) al servidor (192.168.1.32-10.8.0.1).

Desde el cliente: ping 192.168.1.32 ok


¿Podria ser que el dispositivo tun local del servidor no transmitiera
el paquete a la red local del mismo servidor, (tun-->red local)?

El route print del servidor es:

===========================================================================
Rutas activas:
Destino de red Máscara de red Puerta de acceso Interfaz
Métrica
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.32
1
10.8.0.0 255.255.255.252 10.8.0.1 10.8.0.1
1
10.8.0.0 255.255.255.0 10.8.0.2 10.8.0.1
1
10.8.0.1 255.255.255.255 127.0.0.1 127.0.0.1
1
10.255.255.255 255.255.255.255 10.8.0.1 10.8.0.1
1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
1
172.182.248.209 255.255.255.255 192.168.1.1 192.168.1.32
1
192.168.1.0 255.255.255.0 192.168.1.32 192.168.1.32
1
192.168.1.32 255.255.255.255 127.0.0.1 127.0.0.1
1
192.168.1.255 255.255.255.255 192.168.1.32 192.168.1.32
1
224.0.0.0 224.0.0.0 10.8.0.1 10.8.0.1
1
224.0.0.0 224.0.0.0 192.168.1.32 192.168.1.32
1
255.255.255.255 255.255.255.255 192.168.1.32 2
1
Puerta de enlace predeterminada: 192.168.1.1
===========================================================================
Rutas persistentes:
ninguno
Jesús M. NAVARRO
2005-04-26 00:34:27 UTC
Permalink
Hola, Tximo:

Tximo escribió en es.comp.os.linux.redes:

[...]

La verdad, es que no he visto nada que me llamase la atención.
Post by Tximo
Desde el cliente: ping 192.168.1.32 ok
¿Podria ser que el dispositivo tun local del servidor no transmitiera
el paquete a la red local del mismo servidor, (tun-->red local)?
Podría. ¿Está el enrutamiento activado (/proc/sys/net/ipv4/ip_forward, con
valor 1) activado?
--
SALUD,
Jesús
Tximo
2005-04-26 14:24:17 UTC
Permalink
Gracias
Post by Jesús M. NAVARRO
Podría. ¿Está el enrutamiento activado (/proc/sys/net/ipv4/ip_forward, con
valor 1) activado?
¿Donde puedo encontrar este valor? (Estoy utilizando windows).

Saludos
Jesús M. NAVARRO
2005-04-26 15:26:06 UTC
Permalink
Post by Tximo
Gracias
Post by Jesús M. NAVARRO
Podría. ¿Está el enrutamiento activado (/proc/sys/net/ipv4/ip_forward,
con valor 1) activado?
¿Donde puedo encontrar este valor? (Estoy utilizando windows).
Por lo que he entendido, desde Windows puedes hacer ping a la IP interna del
servidor OpenVPN con Linux, pero no puedes hacer ping a ninguna máquina
"tras" el servidor VPN. Es en esa máquina donde deberás comprobar si el
enrutamiento está activado (la orden `cat /proc/sys/net/ipv4/ip_forward`
deberá devolverte "1");
--
SALUD,
Jesús
Tximo
2005-04-27 15:22:37 UTC
Permalink
Saludos compañeros,

Finalmente esta funcionando correctamente.

Hacia falta activar el forwarding para Windows.

/***********************************************************/
Para poder activar el forwarding en Windows :

1. Usar el Editor de Registros (Regedt32.exe) para vers el registro
siguiente :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

2. Poner los siguientes valores:

Value Name: IPEnableRouter
Value type: REG_DWORD
Value Data: 1

NOTE: A value of 1 enables TCP/IP forwarding for all network
connections installed and used by this computer.
/***********************************************************/

Nota: Posteriormente, hay que tener en cuenta de poner las rutas
correctas para que toda maquina de la red vaya al tunel cuando quiera
parar al otro lado.


Muchas gracias a todos.
Un abrazo a Pablo.
Carlos Andres Fuentealba F.
2005-04-28 14:26:33 UTC
Permalink
Post by Tximo
Gracias
Post by Jesús M. NAVARRO
Podría. ¿Está el enrutamiento activado (/proc/sys/net/ipv4/ip_forward, con
valor 1) activado?
¿Donde puedo encontrar este valor? (Estoy utilizando windows).
Saludos
estamos en es.comp.os.linux.redes
que tiene que ver windows aca?

Loading...