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: "
