A ver, te he corregido un poco el script para corregir algunas fallas lógicas que tenía (más que nada en el orden de las reglas). Para que todas las reglas de NAT funcionen debes habilitar ip_forward así:
Código:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Y por último, para que los paquetes del servidor al que haces DNAT, debes establecer la máquina del firewall como gateway por defecto de la que corre el servidor web (esto es esencial ya que sino los paquetes de respuesta no llegan a destino).
Código:
#interfaz usada eth0
# Esta se pone arriba de todo para evitar pasar por todas las reglas
# Se agrega "ESTABLISHED" también, por lo general
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
# Esto está bien siempre y cuando eth0 sea la de internet
# Habilito el NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT
# Agregar la regla de Destination NAT (DNAT)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-j DNAT --to 192.168.0.60:80 --> no me resulta.
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i eth0 -p ICMP -j ACCEPT
# Permito conexiones al puerto 80 (HTTP)
# porque es que esto "no funciona"? Te da algun error?
iptables -A INPUT -i eth0 -p TCP --dport 80 -m state --state NEW \
-j ACCEPT --> no funciona
iptables -A INPUT -i eth1 -p TCP --dport 80 -m state --state NEW \
-j ACCEPT --> no funciona
# No es necesario rechazar los paquetes de forma tan específica, simplemente
# pones una regla aquí que DROPee todo, al fin y al cabo las reglas de mas
# arriba ya han hecho que se acepten los paquetes que querías,
# y el flujo es lineal. Esto se conoce como regla "catch-all".
iptables -A INPUT -p all -j DROP
ptables -A FORWARD -p all -j DROP
Disclaimer : esto lo corregí en la ventana de edición de mensajes de modo que se me pueden haber pasado varias cositas, no garantizo nada :)
Saludos ;)