[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



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

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ñ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


Reply to: