El Jueves, 20 de Abril de 2006 16:14, Raul Alonso escribió: > Hola listeros, > > De nuevo os traigo mi duda y os adjunto dos archivos: el dibujo de mi > red y el archivo sh de configuración. > > El problema mas grave que tengo es que no consigo que el equipo de la > DMZ pueda acceder a los archivos compartidos de un ordenador de la red > local protegida. > > El otro problema es el balanceo de carga... no consigo que me funcione > desde la red local. Es decir: desde el firewall me hace balanceo y > luego si me pongo en cualquier ordenador de la red local no tengo > acceso a internet. Si quito el balanceo y pongo que acceda siempre por > un gateway no hay problema. > > Una vez mirado en muchiiiiisimos comos y habiéndome vuelto loco de > tanto buscar.... ¿alguna ayudita? Muchas gracias y saludos
Pego de nuevo tu script y te lo voy comentando linea a linea, eliminaré las partes no relevantes, para no hacer esto muy largo. >## Variables de nuestra red >IPLOCAL="192.168.0.21" >IPINTERNET1="192.168.1.2" >IPINTERNET2="192.168.2.2" > IPDMZ="192.168.2.3" > GATEWAY1="192.168.1.1" > GATEWAY2="192.168.2.1" > INTERNET1="eth1" # Ono > INTERNET2="eth2" # Telefonica > REDLOCAL="eth0" # Red local [...] > ip route show table main | grep -Ev ^default | while read ROUTE ; do ip > route add table 1 $ROUTE ; done ip route show table main | grep -Ev > ^default | while read ROUTE ; do ip route add table 2 $ROUTE ; done Estas dos lineas no sé que hacen .. pero no tienen buena pinta. [..] > # Balanceo de carga (2 gateways) > ip route add default scope global equalize nexthop via $GATEWAY1 dev > $INTERNET1 weight 1 nexthop via $GATEWAY2 dev $INTERNET2 weight 1 equalize no sirve para hacer balanceo de carga, lo mas probable es que la mayoría de las conexiones se establezcan y luego fallen más que una escopeta de feria .. ¿me equivoco o eso es lo que te pasa? [...] > # Establecemos politica por defecto > iptables -P INPUT ACCEPT > iptables -P OUTPUT ACCEPT > iptables -P FORWARD ACCEPT > iptables -t nat -P PREROUTING ACCEPT > iptables -t nat -P POSTROUTING ACCEPT Umm .. ok, si luego metes al final de cada canal una regla de denegación, aunque yo lo suelo hacer al revés, lo pongo todo a DROP o REJECT y al final del canal meto una regla de logeo para saber que ha intentado escaparse. > # Permito FTP PASV > modprobe ip_conntrack > modprobe ip_conntrack_ftp ports:21,20 > modprobe ip_nat_ftp ports:21,20 Esto no es para FTP Pasivo .. al contrario, se cargan esos módulos para poder hacer FTP activo > # Al firewall tenemos acceso desde la red local > iptables -A INPUT -s 192.168.0.0/24 -i $REDLOCAL -j ACCEPT Redundante ... ya tienes puestas que la política por defecto es ACEPTAR. > # DENEGAMOS ACCESOS > iptables -A FORWARD -s 192.168.0.20 -i $REDLOCAL -p tcp --dport 80 -j DROP > #Eneko iptables -A FORWARD -d 64.4.32.7 -j REJECT # HOTMAIL > iptables -A FORWARD -d 207.46.1.0/24 -j REJECT # MESSENGER > iptables -A FORWARD -d 64.4.15.61 -j REJECT # MESSENGER > iptables -A FORWARD -d 64.4.13.0/24 -j REJECT # MESSENGER > iptables -A FORWARD -d 213.199.148.191 -j REJECT # MESSENGER > iptables -A FORWARD -p TCP --dport 1863 -j REJECT # PUERTO MSN Al messenger es mas facil pillarlo con un squid en transparente y un par de ACL's, además pillarías también el yahoo messenger y yerbas derivadas. Si no quieres usar Squid, usa el parche de L7 y pescalo por protocolo, por IP es una soberana tontería, pueden cambiar en cualquier momento. > # Y denegamos el resto. Si se necesita alguno, ya avisaran > iptables -A FORWARD -s 192.168.0.0/24 -i $REDLOCAL -j DROP Ojo a esto, que es lo que te está causando problemas para el acceso desde la DMZ al servidor de ficheros de la LAN, luego verás porqué. > iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $INTERNET2 -j > MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $INTERNET1 > -j MASQUERADE echo "Rutas enmascaradas." Mal, muy mal, debería de ser solo una y de esta manera. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d ! 192.168.2.0/24 -j MASQUERADE > ## Permitimos el paso de la DMZ acceder al intercambio de archivos con > 192.168.0.1 iptables -A FORWARD -s 192.168.0.1 -d $IPDMZ -p tcp --sport > 1024:65535 --dport 139 -j ACCEPT iptables -A FORWARD -s $IPDMZ -d > 192.168.0.1 -p tcp --sport 139 --dport 1024:65535 -j ACCEPT > ## Permitimos abrir el VNC server de la DMZ desde la IP 192.168.0.2 > iptables -A FORWARD -s 192.168.0.2 -d $IPDMZ -p tcp --sport 1024:65535 > --dport 5900 -j ACCEPT > iptables -A FORWARD -s $IPDMZ -d 192.168.0.2 -p tcp --sport 5900 --dport 1024:65535 -j ACCEPT Estas reglas son inútiles, ya has dicho mas arriba en el script QUE DENIEGAS EL RESTO DEL TRÁFICO FORWARD, y estas reglas las estás AÑADIENDO (-A), que nó INSERTANDO (-I) después de la regla de denegación, si miras con un -v los contadores de estas reglas verás que están a 0 patatero, jamás ha llegado un paquete a ellas. Te recuerdo lo que te dije al principio, si la política por defecto es ACEPTAR, la regla de DENEGACIÓN va AL FINAL del canal. > # Cerramos el rango de puerto bien conocido > iptables -A INPUT -i $INTERNET1 -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP > iptables -A INPUT -i $INTERNET1 -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP > iptables -A INPUT -i $INTERNET2 -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP > iptables -A INPUT -i $INTERNET2 -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP > > # Cerramos el puerto de gesti n: webmin > iptables -A INPUT -i $INTERNET1 -s 0.0.0.0/0 -p tcp --dport 10000 -j DROP > iptables -A INPUT -i $INTERNET2 -s 0.0.0.0/0 -p tcp --dport 10000 -j DROP Umm .. yo te recomendaría que cambiases a la política "Está prohibido todo lo que no está explícitamente permitido", osea que cambies a DROP los canales, y solo ACEPTES lo que quieres, es mas fácil de mantener, y segundo, que uses algún script ya hecho para firewalls, te recomiendo firehol ó fwbuilder. Tu script de firewall es un buen intento, pero deja muchas cosas en el aire, para empezar, no es un statefull firewall, osea .. no se comprueba la integridad de los paquetes en los canales correspondientes (que no te intenten mandar un paquete FIN sin existir un STABLISHED primero, etc) En cuanto al balanceo de carga, te recomiendo echarle un ojo al script mpath.sh que podrás encontrar en el histórico de la lista de LARTC. -- Saludos. Raúl Alexis Betancor Santana Director Gerente Dimensión Virtual S.L.