Utilizamos IPtables en linux, para limitar el paso de datos no deseados en una red. Cuando deseamos limitar el tráfico (aceptar o denegar paso de datos), lo podemos realizar en nuestro servidor linux (se denomina Firewall) de dos formas:
1) Aplicando la política de ACEPTAR: Aceptar quiere decir, que todo lo que entra y sale por el firewall se acepta y solo se denegará lo que definamos. Como estamos aceptando todo lo que pasa a través del firewall, sólo tenemos que preocupar por proteger o denegar los puertos o las direcciones que nos interesa.
2) Aplicando la política de DENEGAR: Denegar quiere decir, que todo entra y sale por el firewall no se acepta, y solo se permitirá pasar los datos que definamos. Como estamos denegando todo lo que pasa a través del firewall, deber3emos tener un alto conocimiento de la transmisión de datos o de los puertos que utilizan un programa específico, ya que hay que permitir el paso de la información que necesitamos.
Creamos un archivo para que se aplique siempre las reglas.
$c> nano /etc/init.d/iptables.conf
Pegamos la información:
## Borramos las Reglas anteriores
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
## Establecemos las Políticas
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
## Empezamos a filtrar
## recuerda: eth0 es el interfaz conectado al router y eth1 a la LAN
## Activamos el “SNAT”
iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE
## Tenemos acceso al firewall desde la red local
iptables -A INPUT -s 192.168.20.0/24 -i eth1 -j ACCEPT
## Aceptamos los puertos 80, https, para el correo, etc
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 993 -j ACCEPT
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 995 -j ACCEPT
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 465 -j ACCEPT
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 25 -j ACCEPT
## Aceptar el messenger de hotmail y de yahoo para un equipo
iptables -A FORWARD -s 192.168.20.101 -i eth1 -p tcp –dport 1863 -j ACCEPT
iptables -A FORWARD -s 192.168.20.101 -i eth1 -p tcp –dport 5050 -j ACCEPT
## y restringirlo para los otros usuarios de la red
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 5050 -j DROP
iptables -A FORWARD -s 192.168.20.0/24 -i eth1 -p tcp –dport 1863 -j DROP
## limitamos el internet a una IP
iptables -A FORWARD -d 192.168.20.11 -j DROP
## Y ahora cerramos los accesos indeseados del exterior:
# Nota: 0.0.0.0/0 significa: cualquier red
# rechazamos los puertos tcp y udp del 1 al 1024
iptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp -dport 1:1024 -j DROP
# Con esto permitimos hacer forward de paquetes en el firewall, es decir,
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward
Articulo completo lo puedes ver en: