Tengo un equipo con dos tarjetas de red (eth0=externa, eth1=interna).
Quiero configurar NAT para que puedan salir los demás equipos a través
de este a internet, y sólamente quiero dar acceso a este equipo desde el
exterior mediante ssh. Lo tenía hecho con una politica por defecto
ACCEPT, y funcionaba correctamente. Pero quiero ponerle una política
DROP, para mayor seguridad.
Este es el script que he hecho y que no funciona:
#!/bin/bash
#Activamos el IP forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
#Borrado de reglas.
echo -n "Borrando reglas.."
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
echo -n "Hecho."
#Politica por defecto.
echo -n "Aplicando politica..."
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo -n "Hecho."
#Nat
echo -n "Activando NAT..."
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -o
eth0
-j MASQUERADE
echo -n "Hecho."
#PING a la máquina
echo -n "Ping a la máquina..."
iptables -A INPUT -i eth1 -p ICMP -j ACCEPT
echo -n "Hecho."
echo -n "Aplicando reglas del firewall ..."
#ssh.
iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW
-j
ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
# Aceptamos paquetes de una conexión ya establecida
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos los de conexiones nuevas
iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
# Rechazamos conexiones de forwarding no establecidas
iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j
DROP
echo -n "Hecho."