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

DNAT con iptatables



Nuevamente yo por aca señores :) bueno en realidad gracias a la ayuda de
Iñaki y de otros, en realidad funcionó bastante bien era sólo el
problema de redirección pero poque no había probado el masquerade con la
dirección ip estática sólo con dinámica y logicamente no funcionaba con
el echo "1" > /proc/net/sys/ipv4/ip_formward y las demás reglas.

Bueno ahora el problema que tengo y que quiero consultarle es en el caso
de DNAT, ya que no me ha funcionado, les explico:

tengo en el /etc/network/interfaces:

auto eht0
iface eth0 inet static
	address 200.241.133.100
	netmask 255.255.255.248
	network 200.241.133.0
	broadcast 200.241.133.255
	gateway 200.241.133.99		#IP modem
auto eth0:1
iface eth0:1 inet static
	address 200.241.133.101
	netmask 255.255.255.248
auto eth1
iface eth1 inet static
	address 192.168.1.1
	netmask 255.255.255.0
	...

o sea, haciendo alias el cual no es ni será soportado por iptables aquí
viene el problema como poder hacer una regla desde una ip externa a un
equipo interno sabiendo porqué interfaz lógica esta pasando ???

lo que tengo es lo siguiente :

IPT="/sbin/iptables"

iface_salida="eth0"		# declaro al interfaz externa sin 				  # direccion
para poder redirigir 
				# cualquier ip que ingrese por este 
				# medio
iface_lan="eth1"		# declaracion de la interfaz de LAN
lan_ip="192.168.1.1"
lan_net="192.168.1.0/24"
lan_bcast="192.168.1.255"

iface_lo="lo"			# localhost
lo_ip="127.0.0.1" 

después cargo todos los módulos, cargo las reglas necesarias, esas que
vieron el otro día de "MASQUERADE" y redireccionamiento al puerto 3128
cuando las solicitudes vienen desde el interior al puerto 80, para el
proxy transparente y por último creo nuevas reglas :

$IPT -N tcp_ingreso
$IPT -N tcp_egreso
$IPT -N udp_ingreso
$IPT -N udp_egreso

después de esto acepto el puerto 53 porque tengo un DNS interno que es
consultado desde el exterior, el puerto 80 en teoría para un servidor
web interno y el ssh para administrarlo remotamente.

$IPT -A udp_ingreso -p UDP -s 0/0 --destination-port 53 -j ACCEPT
$IPT -A udp_ingreso -p TCP -s 0/0 --destination-port 53 -j ACCEPT
$IPT -A tcp_ingreso -p TCP -s 0/0 --destination-port 80 -j ACCEPT
$IPT -A tcp_ingreso -p TCP -s 0/0 --destination-port 22 -j ACCEPT

elimino las salidas desde el interior, esto es para redundar en la orden
de que nada salga directamente por el puerto 80 y se redireccione hacia
el 3128.

$IPT -A tcp_egreso -p TCP -s 0/0 --destination-port 80 -j REJECT
$IPT -A tcp_egreso -p TCP -s 0/0 --destination-port 443 -j REJECT

ingreso las tablas del INPUT

$IPT -A INPUT -p ALL -i $iface_lan -s $lan_net -j ACCEPT
$IPT -A INPUT -p ALL -i $iface_lan -d $lan_bcast -j ACCEPT
$IPT -A INPUT -p TCP -i $iface_salida -j tcp_ingreso
$IPT -A INPUT -p UDP -i $iface_salida -j udp_ingreso

ingreso las tablas FORWARD

$IPT -A FORWARD -p tcp -i $iface_lan -j tcp_egreso
$IPT -A FORWARD -p udp -i $iface_lan -j udp_egreso
$IPT -A FORWARD -p ALL -i $iface_lan -j ACCEPT
$IPT -A FORWARD -i $iface_lan -m state --state ESTABLISHED,RELATED -j
ACCEPT

ingreso las tablas OUTPUT

$IPT -A OUTPUT -p ALL -s $ip_lo -j ACCEPT
$IPT -A OUTPUT -p ALL -o $iface_lo -j ACCEPT
$IPT -A OUTPUT -p ALL -s $lan_ip -j ACCEPT
$IPT -A OUTPUT -p ALL -o $iface_lan -j ACCEPT
$IPT -A OUTPUT -p ALL -o $iface_salida -j ACCEPT

ingreso las tablas de nat y de dnat y aquí comienza el problema ....

$IPT -t nat -A PREROUTING -p tcp -i $iface_salida --destination-port 80
-j DNAT --to-destination 192.168.1.1:80
$IPT -t nat -A PREROUTING -p tcp -i $iface_salida --destination-port 53
-j DNAT --to-destination 192.168.1.1:53
$IPT -t nat -A PREROUTING -p udp -i $iface_salida --destination-port 53
-j DNAT --to-destination 192.168.1.1:53

$IPT -t nat -A PREROUTING -p tcp -i $iface_lan --destination-port 80
--destination 200.241.133.101 -j DNAT --to-destination 192.168.168.1:80
$IPT -t nat -A PREROUTING -p tcp -i $iface_lan --destination-port 53
--destination 200.241.133.101 -j DNAT --to-destination 192.168.168.1:53
$IPT -t nat -A PREROUTING -p udp -i $iface_lan --destination-port 53
--destination 200.241.133.101 -j DNAT --to-destination 192.168.168.1:53

"esto es lo que necesito hacer y no me funciona" ya estoy medio
desquiciado porque he buscado en muchas documentaciones y me ha
resultado varias veces anteriormente... por lo mismo no se en que estoy
equivocado ...., bueno la idea es que tendría que funcionar de esta
forma ... pero no .... 


$IPT -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT
--to-ports 3128  #este es el conocido redireccionamiento al proxy 
$IPT -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT
--to-ports 3128 # y este al https ..

$IPT -t nat -A POSTROUTING -o $iface_salida -j SNAT --to-source
200.241.133.100
$IPT -t nat -A POSTROUTING -o $iface_salida -j SNAT --to-source
200.241.133.101

$IPT -t nat -A POSTROUTING -o $iface_lan -j SNAT --to-source
200.241.133.100
$IPT -t nat -A POSTROUTING -o $iface_lan -j SNAT --to-source
200.241.133.101



bueno eso es todo espero que me puedan ayudar, trate de comentar lo
mejor posible lo que estoy tratando de hacer, en realidad necesito mucho
de ayuda, bueno y lo mismo podrá ser utilizado como una buena
documentación ya que no hay mucho sobre DNAT con varias Ips estáticas
sobre una interfaz ... 

salu2 a to2 y gracias por la ayuda ...



Reply to: