[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fw: Reglas a poner en iptables para dar acceso a una VPN



Uhh si perdon

Saludos.


On Fri, 13 Jan 2006 15:01:02 -0300
Alexis Venturino <aventuri@redmegatone.com> wrote:

> fijate bien Ricardo, vos estas utilizando pptp y el ipsec
> Saludos
> 
> 
> 
> -----Mensaje original-----
> De: Ricardo Marcelo Alvarez [mailto:debianarg@yahoo.com.ar]
> Enviado el: Friday, January 13, 2006 14:57
> Para: debian-user-spanish@lists.debian.org
> Asunto: Re: Fw: Reglas a poner en iptables para dar acceso a una VPN
> 
> 
> Hola te mando el script que estoy usando, esto es una funcion de un script
> mas largo pero de ejemplo creo que te servira.
> Fijate que el tema esta en que ademas de tcp y udp tenes que forwardear el
> protocolo 47 que es ipgre.
> 
> ############################################################################
> 
>     function forward_vpn
> 	{
> 	IP_EXTERNA=$1
> 	PLACA_EXTERNA=$2
> 	IP_INTERNA=$3
> 	PLACA_INTERNA=$4
> 	PUERTO_EXTERNO=1723
> 	PUERTO_INTERNO=1723
> 	PROTOCOLO=tcp
> 	PREFIJO_LOG_0=${PREFIJO_LOG}" forward vpn"
> 	echo "Forwardeando la IP ${IP_EXTERNA} en ${PLACA_EXTERNA} a la "
> 	echo "IP ${IP_INTERNA} en ${PLACA_INTERNA} para la VPN "
> 
> 	${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d
> ${IP_INTERNA} -j
> LOG -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}"
> --log-level ${NIVEL_LOG}
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -s ${IP_INTERNA}
> --sport
> ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} --log-prefix
> "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG}
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA}
> --dport
> ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} --log-prefix
> "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG}
> 
> 	${IPTABLES} -t nat -A PREROUTING -i ${PLACA_EXTERNA} -p ${PROTOCOLO}
> -d
> ${IP_EXTERNA} --dport ${PUERTO_EXTERNO} -j DNAT --to
> ${IP_INTERNA}:${PUERTO_INTERNO}
> 	${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d
> ${IP_INTERNA} -j
> MASQUERADE
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -s ${IP_INTERNA}
> --sport
> ${PUERTO_INTERNO} -j ACCEPT
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA}
> --dport
> ${PUERTO_INTERNO} -j ACCEPT
> 
> 	PROTOCOLO=udp
> 
> 	${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d
> ${IP_INTERNA} -j
> LOG -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}"
> --log-level ${NIVEL_LOG}
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -s ${IP_INTERNA}
> --sport
> ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} --log-prefix
> "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG}
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA}
> --dport
> ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} --log-prefix
> "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG}
> 
> 	${IPTABLES} -t nat -A PREROUTING -i ${PLACA_EXTERNA} -p ${PROTOCOLO}
> -d
> ${IP_EXTERNA} --dport ${PUERTO_EXTERNO} -j DNAT --to
> ${IP_INTERNA}:${PUERTO_INTERNO}
> 	${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d
> ${IP_INTERNA} -j
> MASQUERADE
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -s ${IP_INTERNA}
> --sport
> ${PUERTO_INTERNO} -j ACCEPT
> 	${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA}
> --dport
> ${PUERTO_INTERNO} -j ACCEPT
> 
> 	#PROTOCOLO 47 ipgre
> 
> 	${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d
> ${IP_INTERNA} -j
> LOG -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}"
> --log-level ${NIVEL_LOG}
> 	${IPTABLES} -t filter -A FORWARD -p 47 -s ${IP_INTERNA} -j LOG -m
> limit
> --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level
> ${NIVEL_LOG}
> 	${IPTABLES} -t filter -A FORWARD -p 47 -d ${IP_INTERNA} -j LOG -m
> limit
> --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level
> ${NIVEL_LOG}
> 
> 	${IPTABLES} -t nat -A PREROUTING -i ${PLACA_EXTERNA} -p 47 -d
> ${IP_EXTERNA} -j DNAT --to ${IP_INTERNA}
> 	${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d
> ${IP_INTERNA} -j
> MASQUERADE
> 	${IPTABLES} -t filter -A FORWARD -p 47 -s ${IP_INTERNA} -j ACCEPT
> 	${IPTABLES} -t filter -A FORWARD -p 47 -d ${IP_INTERNA} -j ACCEPT
> 
> 	echo "VPN Forwareada "
> 	}
> 
> 
> ############################################################################
> 
> Saludos.
> 
> 
> > El Viernes, 13 de Enero de 2006 09:51, Fernando García Cabrera escribió:
> >> Muchas gracias Iñaki por las molestias, pero la VPN de la que estoy
> >> hablando no
> >> es mía, es del Gobierno de Canarias o sea que tiene que ser por IPSec
> >> la
> >> conexión.
> >> Yo sólo estoy configurando el firewall para  dar acceso a un PC que
> >> tiene
> >> que
> >> conectarse con esa VPN. Incluso llamé a los técnicos que mantienen la
> >> VPN
> >> y ellos no sabían o no querían ayudarme.
> >> En fin, seguiré investigando y si averiguo como se hace lo publicaré
> >> aquí.
> >
> >
> > Que alguien me corrija si me equivoco, pero me atrevo a afirmar que con
> > Ipsec,
> > los equipos que hacen la VPN deben ser los que hacen de router NAT. No
> > puedes
> > poner un router en medio de los equipos que hacen la VPN (con IPsec).
> >
> > Y creo que tampoco puedes poner en medio un firewall, aunque tal vez si lo
> > configuras para que redirija los paquetes que lleven datos IPsec al router
> > que hace la VPN... no lo sé. Ojalá alguien explique esto porque es una
> > duda
> > que tengo desde hace tiempo y no logro resolver.
> >
> >
> >
> >
> >
> >> ----- Original Message -----
> >> From: "IÃf±aki" <ibc2@euskalnet.net>
> >> To: <debian-user-spanish@lists.debian.org>
> >> Sent: Wednesday, January 11, 2006 3:05 PM
> >> Subject: Re: Reglas a poner en iptables para dar acceso a una VPN
> >>
> >> El Miércoles, 11 de Enero de 2006 11:44, Fernando García Cabrera
> >> escribió:
> >> > Saludos listeros, estoy en la tesitura de dar acceso a través de mi
> >> > cortafuegos a un cliente de una VPN. En la documentación que enviaron
> >> los
> >> > de la VPN me dice que tengo que abrir los siguientes puertos: 1)
> >> Puerto
> >> > 500
> >> > UDP (IKE): Negociación del túnel IPSec
> >> >     2) Puerto 4500 UDP: encapsulación del protocolo de seguridad ESP
> >> > sobre UDP para NAT-T 3) Puerto 10000 TCP: encapsulación del protocolo
> >> de
> >> > seguridad ESP sobre TCP 4) Protocolo 50 (ESP).
> >> > Para cada una de estas acciones he escrito una regla de iptables en la
> >> > cadena FORWARD, que son: 1) iptables -A FORWARD -s 192.168.0.0/16 -p
> >> udp
> >> > --dport 500 -j ACCEPT 2) iptables -A FORWARD -s 192.168.0.0/16 -p udp
> >> > --dport 4500 -j ACCEPT 3) iptables -A FORWARD -s 192.168.0.0/16 -p tcp
> >> > --dport 10000 -j ACCEPT 4) iptables -A FORWARD -s 192.168.0.0/16 -p
> >> > sp  -j
> >> > ACCEPT
> >> > Sin embargo, la conexión entre el cliente de la VPN (en mi red local)
> >> y
> >> > el servidor (en la red remota) no se establece. Leyendo por ahí he
> >> visto
> >> > que si el cortafuegos hace NAT es un problema para la VPN, este es mi
> >> > caso puesto que las direcciones salientes se enmascaran, y ahora llega
> >> el
> >> > meollo
> >> > de la cuestión, a saber: 1) ¿Qué paquetes tengo que instalar para
> >> NAT-T?
> >> >     2) ¿Cómo configuro el cortafuegos para NAT-T?, sólo cuando se
> >> utilice
> >> > la VPN desde el cliente, ya que los demás equipos de la red no usan
> >> la
> >> > VPN.
> >> >
> >> > La verdad es que es la primera vez que ando con VPN's y agradecería
> >> mucho
> >> > cualquier indicación que pudieran hacerme. Gracias a todos por su
> >> > atención.
> >>
> >> Que yo sepa, las VPN con Ipsec no se pueden hacer entre dos equipos si
> >> uno
> >> de
> >> ellos está detrás de un router NAT. Los equipos que hagan la VPN con
> >> Ipsec
> >> deben "verse" directamente por internet (ambos con IP pública,
> >> resumiendo).
> >>
> >> Esos puertos que te han dicho tienes que abrirlos en el equipo que hace
> >> la
> >> VPN, y no en un firewall intermedio. De hecho como digo arriba, al haber
> >> ese firewall intermedio haciendo NAT es IMPOSIBLE la VPN con Ipsec.
> >>
> >> Ojalá alguien me contradiga y explique cómo se hace VPN Ipsec entre
> >> dos
> >> equipos estando uno de ellos detrás de un router NAT.
> >>
> >> Yo el consejo que te doy es muy simple:
> >>
> >> Si te es posible olvídate de Ipsec (que es un coñazo para hacer VPN) y
> >> usa
> >> OpenVPN, que es MUCHO más fácil y útil, ya que son paquetes UDP que
> >> llevan
> >> dentro cifrados los paquetes IP originales. Como son paquetes UDP puedes
> >> establecer una VPN entre dos equipos estando ambos detrás de un router
> >> NAT,
> >> tan sólo tienes que redirigir el tráfico entrante por el puerto 1194
> >> en el
> >> router al equipo de la LAN que hace la VPN (o el puerto que prefieras).
> >>
> >> OpenVPN cifra los datos bien con una clave común o mediante TLS, por lo
> >> que
> >> la
> >> confidencialildad y privacidad está asegurada.
> >>
> >> Además permite hacer VPN's entre delegaciones fijas (incluso sin IP
> >> fija
> >> usando un dominio dinámico tipo dyndns.org) o establecer un servidor
> >> OpenVPN y configurar clientes remotos móviles que se conecten desde
> >> cualquier IP a ese servidor estableciendo en cada momento la VPN.
> >>
> >> Yo mismo hice hace poco un pequeño HowTo sobre OpenVPN, te lo pongo por
> >> si
> >> te
> >> interesa:
> >>   http://eureka-linux.com.ar/docs/openvpn.html
> >>
> >> Y por supuesto te recomiendo que visites la página oficial:
> >>   http://www.openvpn.net
> >> Ahí mucha documentación, ejemplos, clientes en modo gráfico para
> >> Windows...
> >>
> >>
> >>
> >> Saludos.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> --
> >> y hasta aquí puedo leer...
> >
> > --
> > y hasta aquí puedo leer...
> >
> >
> >
> 
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
> 
> 

Attachment: pgpedZumYV2nL.pgp
Description: PGP signature


Reply to: