Buenas, estoy teniendo problemas para Utilizar una maquina Linux como NAT
para 2 clientes... el problema es como sigue...


Despues de bajar y probar multiples scrips para rc.firewall, me encontre con
uno[1] que esta bastante reciente y parece tener reglas para lo que yo
necesito (despues me pongo a hacerlo mas seguro, por lo pronto quiero que
funcione), que es Source NAT.
Al ponerlo en su lugar, cambiarle el nombre (no mas .txt), hacerlo
ejecutable y correrlo manualmente a ver que hace me da el siguiente error:

10.5.6.56/24 Bad IP Address

Ahora, las explicaciones de que tengo y porque:

Linux Red Hat 7.1
Kernel 2.4.9-6
IPTables 1.2.4

Amnet es mi proveedor de servicios... no tengo una IP publica sino una
privada fija que es 10.5.6.56, quiero que esta maquina con linux, que es
relativamente vieja (pero maneja esta version) este como firewall a dos
maquinas con SO Windows y linux para mayor seguridad (y aprender como se
hace). Amnet provee un gateway con la direccion IP 10.5.6.1

Mi LAN tiene las siguientes caracteristicas:

Maquina Gateway:
1er Ethernet (eth0): 10.5.6.56 >Se refiere a la tarjeta conectada con amnet
2do Ethernet (eth1): 192.168.1.1 > Se refiere a la tarjeta conectada con la
red interna
Default Gateway: 10.5.6.1

1era Maquina cliente
Ethernet IP: 192.168.1.26
Gateway: 192.168.1.1

2da maquina cliente
Ethernet IP: 192.168.1.77
Gateway: 192.168.1.1

Ahora, los resultados que obtengo con diferentes pruebas son como siguen:
Maquina Gateway:
Conexion a Internet (ftp, ping, www) sin problemas
Ping y Ftp a maquinas de red interna, sin problemas

Maquinas cliente (ambas)
Ping a interfaz Eth1: Sin problemas
Ping a Interfaz Eth0: Timeout (no llega)
Conexion a internet (ftp, ping, www) fracasa (por supuesto)

Ahora, si llegaron al final de este LARGO correo, les pido ayuda, no estoy
entendiendo muy bien porque no funciona, revisando la documentacion que hay
sobre esto [2] no me echa ninguna luz sobre que estoy haciendo mal. Por el
momento solo quiero un NAT que sirva, despues lo modifico para que sea mas
seguro y soporte otros servicios (mensajeria y otros)... Asi que cualquier
ayuda es bienvenida!

Si necesitan CUALQUIER otra informacion de maquinas o resultados de X
comando, me dicen y lo hago.



MUCHAS GRACIAS!!!!!!!!!!!!!!!




[1]http://www.boingworld.com/workshops/linux/iptables-tutorial/iptables-tuto
rial/iptables-tutorial.html#AEN122    Incluyo el link para aquellos que no
les gustan/no pueden ver attachments...

[2] www.netfilter.samba.org      pagina de el proyecto de Netfilter, que
sustituye a IPCHAINS como metodo preferible de firewall y enmascaramiento
(entre otros)

#!/bin/sh
#
# rc.firewall - Initial SIMPLE IP Firewall test script for 2.4.x
#
# Author: Oskar Andreasson <[EMAIL PROTECTED]>
# (c) of BoingWorld.com, use at your own risk, do whatever you please with
# it as long as you don't distribute this without due credits to
# BoingWorld.com
#

###########
# Configuration options, these will speed you up getting this script to
# work with your own setup.

#
# your LAN's IP range and localhost IP. /24 means to only use the first 24 
# bits of the 32 bit IP adress. the same as netmask 255.255.255.0
#
# INET_IP is used by me to allow myself to do anything to myself, might
# be a security risc but sometimes I want this. If you don't have a static
# IP, I suggest not using this option at all for now but it's stil
# enabled per default and will add some really nifty security bugs for all
# those who skips reading the documentation=)

# Los comentarios se refieren a lo que yo CREO que hace
LAN_IP="192.168.1.1/32"
# direccion de mi red interna
LAN_BCAST_ADRESS="192.168.1.255/32"
# direccion de broadcast de mi red interna
LAN_IFACE="eth1"
# se refiere a la interfaz ethernet 1... configurada como 192.168.1.1 255.255.255.0

LO_IFACE="lo"
LO_IP="127.0.0.1/32"
# loopback de mi misma maquina
INET_IP="10.5.6.56/24"
INET_IFACE="eth0"
# AQUI ESTA EL ERROR... no se porque me dice el mensaje... Bad IP address... 
# Esta es la direccion privada que me provee Amnet... direccion privada fija. La 
configuracion de ellos es:
# 10.5.6.56 255.255.255.0 gateway 10.5.6.1
# No lo acepta.
IPTABLES="/usr/local/sbin/iptables"
#########
# Load all required IPTables modules
#

#
# Needed to initially load modules
#
/sbin/depmod -a

#
# Adds some iptables targets like LOG, REJECT and MASQUARADE.
#
/sbin/modprobe ipt_LOG
#/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

#
# Support for owner matching
#
#/sbin/modprobe ipt_owner

#
# Support for connection tracking of FTP and IRC.
#
#/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_conntrack_irc

#
# Enable ip_forward, this is critical since it is turned off as defaul in Linux.
#

echo "1" > /proc/sys/net/ipv4/ip_forward

#
# Dynamic IP users:
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr

#
# Enable simple IP Forwarding and Network Address Translation
#

$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP

#
# Bad TCP packets we don't want
#

$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not 
syn:"
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

#
# Accept the packets we actually want to forward
#

$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 
DEBUG --log-prefix "IPT FORWARD packet died: "

#
# Set default policies for the INPUT, FORWARD and OUTPUT chains
#

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

#
# Create separate chains for ICMP, TCP and UDP to traverse
#

$IPTABLES -N icmp_packets
$IPTABLES -N tcp_packets
$IPTABLES -N udpincoming_packets

#
# The allowed chain for TCP connections
#

$IPTABLES -N allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

#
# ICMP rules
#

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

#
# TCP rules
#

$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed

#
# UDP ports
#

$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT

#
# PREROUTING chain.
#
# Do some checks for obviously spoofed IP's 
#

$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 192.168.0.0/16 -j DROP
# $IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 10.0.0.0/8 -j DROP
# comento esta linea para que no me haga drop a 10.5.6.1, que es el router/switch de 
amnet... 
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 172.16.0.0/12 -j DROP


#
# INPUT chain
#
# Take care of bad TCP  packets that we don't want
#

$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not 
syn:"
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

#
# Rules for incoming packets from the internet
#

$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets

#
# Rules for special networks not part of the Internet
#

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG 
--log-prefix "IPT INPUT packet died: "

#
# OUTPUT chain
#

$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not 
syn:"
$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG 
--log-prefix "IPT OUTPUT packet died: "






Responder a