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

Re: iptables :: saltarse un proxy transparente



Hola Mariano,

Podes hacer una excepcion de la regla.

Supongamos que tenes una red 192.168.100.0/24, y por lo que veo en tu regla descrita es que todo el rango de IPs es afectado por la regla, para poner excepciones de IP solamente colocale a la regla "!" o por rangos de IPs, ejemplo:

supongamos que tu interfaz de red de la lan es eth0 y la interfaz de internet es eth1:

interfaz_lan=eth0
interfaz_inet= eth1
-->Ip del router Linux
ip_router="x.x.x.1"
-->La ip del dns (en caso de que tengas alguno):
ip_dns="x.x.x.2"
-->La ip del proxy:
ip_proxy="192.168.100.3"
-->Rango de IPs que será manejado por el proxy
rango_proxy="192.168.100.4-192.168.100.254"
-->Supongamos que tenes una IP fija en tu sitio
ip_wan="1.2.3.4.5"
-->logicamente no queremos que las conexiones a servicios web locales sean proxyficadas, entonces ponemos nuestro rango de IPs aca
ip_rango_local="192.168.100.0/24"


1- Forma 1, por rangos de IPS:

Las politicas por defecto son de bloquear todo:
#Limpiamos configuracion de la tabla NAT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

#Limpiamos la tabla Mangle
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z

#Limpiamos la tabla Filter
iptables -t filter -F
iptables -t filter -X
iptables -t filter -Z

#Politicas por defecto en la tabla FILTER
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP


A- #al router y al proxy le dajamos pasar conexiones salientes a internet
 #Router
 iptables -t nat -A POSTROUTING -p TCP -o $interfaz_inet -s $ip_router  -j SNAT --to-source $ip_wan

 iptables -t filter -A OUTPUT -p TCP -o $interfaz_inet -s $ip_router -m multiport --destination-port 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

 iptables -t filter -A INPUT -p TCP -i $interfaz_inet -d $ip_router  -m state --state ESTABLISHED,RELATED -j ACCEPT 

 #Proxy

 iptables -t nat -A POSTROUTING -p TCP -i $interfaz_lan -o $interfaz_inet -s $ip_proxy -j SNAT --to-source $ip_wan

 iptables -t filter -A FORWARD -p TCP -i $interfaz_lan -o $interfaz_inet -s $ip_proxy -m multiport --destination-port 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

 iptables -t filter -A FORWARD -p TCP -o $interfaz_lan -i $interfaz_inet -d $ip_proxy -m multiport --source-port 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT

B- #filtramos por rango de Ips desde 192.168.100.4-192.168.100.254, para que toda solicitud al puerto 80 se redirija al puerto 3128 del la IP del proxy

iptables -t nat -A PREROUTING -p TCP -i $interfaz_lan -m iprange -src-range $rango_proxy -d !$ip_rango_local -m multiport --destination-port 80,443 -j REDIRECT --to-destination $ip_proxy:3128

#Si el router/firewall tiene el proxy
iptables -t nat -A PREROUTING -p TCP -i $interfaz_lan -m iprange -src-range $rango_proxy -d !$ip_rango_local -m multiport --destination-port 80,443 -j REDIRECT --to-port 3128

2- Forma 2 por excepciones:

A- Poner lo mismo en paso anterior 1.A

B- #filtramos por excepciones de Ips desde  para que toda solicitud al puerto 80 se redirija al puerto 3128 de la IP del proxy

iptables -t nat -A PREROUTING -p TCP -i $interfaz_lan -s !192.168.100.100 -d !$ip_rango_local -m multiport --destination-port 80,443 -j REDIRECT --to-destination $ip_proxy:3128

#Si el router/firewall tiene el proxy
ip_excepta="192.168.100.100"

iptables -t nat -A PREROUTING -p TCP -i $interfaz_lan -s !$ip_excepta -d !$ip_rango_local -m multiport --destination-port 80,443 -j REDIRECT --to-port 3128

si tienes mas dudas pregunta en el foro.

Saludos,

Carlos.

--- El jue 26-nov-09, Mariano Cediel <mariano.cediel@gmail.com> escribió:

> De: Mariano Cediel <mariano.cediel@gmail.com>
> Asunto: iptables :: saltarse un proxy transparente
> A: "Lista.Debian" <debian-user-spanish@lists.debian.org>
> Fecha: jueves, 26 noviembre, 2009, 4:23 am
> Buenos días.
> 
> Siendo la regla de proxy transparente ...
> iptables -t nat -A PREROUTING  -p tcp --dport 80 
> -j REDIRECT --to-port 3128
> 
> Cómo puedo poner una regla para que la IP 192.168.100.100
> no llegue a
> ejecutar la regla anterior ¿?
> He intentado varias cosas sin éxito, ya que la cadena
> <PREROUTING> se
> jecuta antes del <FORWARD>
> 
> Un saludo y gracias
> 
> -- 
>         [o - - 
> -   -    -      -
>    (\   |     
>             Todo clavo que
> sobresale
>    (  \_('>     
>         acaba recibiendo
>    (__(=_)         
>    un martillazo.
>       -"=
> 
> 
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 
> 


      ____________________________________________________________________________________
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8. 
http://downloads.yahoo.com/ieak8/?l=e1


Reply to: