Re: OpenVPN HOWTO (no me funciona).
El Viernes, 23 de Diciembre de 2005 17:48, Alfonso Pinto Sampedro escribió:
|| On Wednesday 21 December 2005 19:13, Iñaki wrote:
|| > El Miércoles, 21 de Diciembre de 2005 18:42, Iñaki escribió:
|| > || El Miércoles, 21 de Diciembre de 2005 17:52, Alfonso Pinto Sampedro
|| >
|| > escribió:
|| > || || > || > || Esto no es correcto, tienes que aceptar lo que venga del
|| > || || > || > || puerto 1194 en la interface real (por ejemplo eth0).
|| > || || > || > || Todo lo que venga de ese puerto se pasa a la interface
|| > || || > || > || virtual tunX, asi que dependiendo de tu firewall puede
|| > || || > || > || ser que tengas que añadir reglas para esa interface.
|| > || || > || >
|| > || || > || > No, esto no es cierto, aunque el tráfico de TUN vaya
|| > || || > || > evidentemente sobre la única interfaz real de red que
|| > || || > || > existe (eth0) para Iptables son dos interfaces totalmente
|| > || || > || > independientes. No necesitas aceptar el tráfico al puerto
|| > || || > || > 1194 en eth0, de hecho yo no lo admito y me funciona. Tan
|| > || || > || > sólo debes permitir el INPUT, OUTPUT y FORWARD (tal vez -i
|| > || || > || > y -o) por tun0.
|| > || || > ||
|| > || || > || Tal y como yo comentaba, son dos interfaces independientes,
|| > || || > || de ahí que dijese que las reglas que tenía no funcionaban. Si
|| > || || > || usas un escenario de vpn de servidor-cliente y tienes el
|| > || || > || servidor detras de un firewall con politicas por defecto DROP
|| > || || > || (o el servidor está en el propio firewall) como no abras el
|| > || || > || puerto en el que escucha el demonio de openvpn te aseguro que
|| > || || > || no funciona, bastante me he pegado con esto.
|| > || || >
|| > || || > Son dos cosas distintas, si tienes el servidor OpenVPN detrás de
|| > || || > un firewall evidentemente necesitas permitir el tráfico por el
|| > || || > puerto UDP 1194 en el firewall, y además redirigirlo a la
|| > || || > máquina donde tengas el servidor OpenVPN.
|| > || || >
|| > || || > Pero si tienes el servidor OpenVPN y el firewall (Iptables) en
|| > || || > la misma máquina NO es necesario permitir el tráfico por el
|| > || || > puerto UDP 1194 en eth0 o ppp0 (o por donde se salga por defecto
|| > || || > a Internet). Tan sólo debes permitir la entrada por el interfaz
|| > || || > tun0.
|| > || || >
|| > || || > Te garantizo que he instalado OpenVPN en una máquina que a su
|| > || || > vez hace de firewall y NAT a la red local, y en esos Iptables
|| > || || > tengo por defecto DROP en INPUT y FORWARD, pero añado la reglas
|| > || || > para que sí se acepte el tráfico por tun0.
|| > || ||
|| > || || Pues o tienes mal configurado el firewall o estas aceptando el
|| > || || tráfico en el puerto correspiente a openvpn en la interface real
|| > || || sin que te hayas dado cuenta:
|| > || ||
|| > || || Sacado de http://openvpn.net/faq.html, seccion My OpenVPN client
|| > || || and server say "Connection Initiated with x.x.x.x" but I cannot
|| > || || ping the server through the VPN. Why?, último parrafo
|| > || ||
|| > || || Also note that firewalling the TUN/TAP interface is a completely
|| > || || separate operation from firewalling the internet-facing interface.
|| > || || For example, suppose an OpenVPN client is sending email via SMTP
|| > || || over the OpenVPN tunnel. The OpenVPN server firewall will need to
|| > || || allow both incoming encrypted data on TCP/UDP port 1194 via the
|| > || || internet-facing interface as well as incoming SMTP connections via
|| > || || the TUN/TAP interface.
|| > || ||
|| > || || Además tengo un equipo de pruebas que es firewall y servidor de
|| > || || openvpn. Si quito la regla que permite la entrada de paquetes por
|| > || || el puerto 1194, obtengo una bonita lista de paquetes descartados
|| > || || en mis logs y la vpn no levanta. La interfaz tunX es una interfaz
|| > || || virtual. El cliente se conecta al servidor Openvpn en el puerto
|| > || || 1194. Este proceso se encarga de pasar todos los paquetes
|| > || || correspondientes a la interfaz tunX. Si tu no aceptas los paquetes
|| > || || por el puerto 1194 ¿como establecen conexión el cliente y el
|| > || || servidor Openvpn? Es imposible.
|| > ||
|| > || Esto se pone muy interesante. Creo que intuyo lo que pasa:
|| > ||
|| > || En realidad mi experiencia se limita a OpenVPN pero NO en modo
|| > || client-servidor, sino en modo ¿simétrico? (no sé como decirlo).
|| > ||
|| > || En este modo al arrancar OpenVPN cada extremo inicia una comunicación
|| > || y hace un ping cada 15 segundos (en mi caso), por lo que por eso no
|| > || hace falta abrir el puerto 1194 UDP para la entrada, ya que al lanzar
|| > || un ping cada 15 segundos lo que viene se considera "ESTABLISHED" o
|| > || "RELATED" (me supongo).
|| > ||
|| > || En modo servidor entiendo que SI que hay que abrir el puerto 1194
|| > || pues dicho servidor no ha iniciado por su cuenta la comunicación con
|| > || el otro extremo, sino que es el cliente quien la inicia.
|| >
|| > Extraído del manual de OpenVPN:
|| >
|| >
|| > FIREWALLS
|| > ***********
|| > OpenVPN's usage of a single UDP port makes it fairly firewall-friendly.
|| > You should add an entry to your firewall rules to allow incoming OpenVPN
|| > packets. On Linux 2.4+:
|| >
|| > iptables -A INPUT -p udp --dport 1194 -j ACCEPT
|| >
|| > would be adequate and would not render the host inflexible with respect
|| > to its peer having a dynamic IP address.
|| >
|| >
|| > OpenVPN also works well on stateful firewalls. In some cases, you may
|| > not need to add any static rules to the firewall list if you are using a
|| > stateful firewall that knows how to track UDP connections. If you
|| > specify --ping n, OpenVPN will be guaranteed to send a packet to its
|| > peer at least once every n seconds. If n is less than the stateful
|| > firewall connection timeout, you can maintain an OpenVPN connection
|| > indefinitely without explicit firewall rules. You should also add
|| > firewall rules to allow incoming IP traffic on TUN or TAP devices such
|| > as:
|| >
|| > iptables -A INPUT -i tun+ -j ACCEPT
||
|| Bingo, tu sospecha era correcta, al lanzar un ping cada X tiempo considera
|| que la conexión está establecida. No se como afectará esto en el modo
|| servidor, aunque tengo la sensación de que no funcionará, ya que en la
|| configuración del servidor no se indica nada sobre las ips de los clientes
|| (o nombres de host de tipo dyndns por ejemplo, muy útil si tienes ips
|| dinámicas), con lo que no puede enviar un ping a ningún cliente y la
|| conexión no se considera establecida. En el modelo cliente-servidor, hasta
|| donde yo se, quien establece la comunicación es el cliente, así que me
|| temo que toca poner una regla en el servidor para permitir el tráfico en
|| el puerto de Openvpn.
|| Y por cierto, gracias a ti por la información de ip_conntrack para UDP. Es
|| un tema que me trajo de cabeza mucho tiempo y que tuve que solucionar
|| duplicando reglas, unas para las de entrada y otras para las de salida.
||
|| Un saludo y felices fiestas a toda la lista.
Pues me alegro de haber mantenido este hilo contigo, ya que parece que ambos
hemos sacado provecho ;)
Felices fiestas.
--
y hasta aquí puedo leer...
Reply to: