Iptables en wikipedia
12 Dic, 2008 por admin
Se puede leer en wikipedia Firewall con iptables
Para generar este script con iptables, se deben seguir los siguientes pasos:
- Se crea un archivo de texto con un editor de texto plano cualquiera, como ser vi, emacs o nano, entre muchísimos otros. A este archivo se lo llama, por ejemplo, iptables_ipt
- Se le da permiso de ejecución mediante el comando chmod u+x o también chmod 777 iptables_ipt.
- Se ejecuta desde la línea de comandos ./iptables_ipt
#!/bin/bash iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m conntrack --ctstate NEW ! -i eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A FORWARD -i eth1 -o eth1 -j REJECT iptables -P INPUT DROP iptables -P FORWARD DROP echo "Firewall Activado"
Para este ejemplo, eth0 es la puerta local, y eth1 es la puerta de enlace a Internet. Puede además agregarse bloqueo de puertos específicos, como por ejemplo:
iptables -A INPUT -p tcp --dport 25 -j DROP # smtp filtrado # Corroboramos con nmap los puertos y nos dirá algo parecido $sudo nmap -sT "nuestra IP" * 22/tcp filtered ssh * * 25/tcp filtered smtp *
Filtrado de puertos
Para filtrar un puerto específico, como el 22 ó 443, el código recomendable sería el siguiente:
sudo iptables -t filter -I INPUT -p tcp --dport 22 -j DROP sudo iptables -t filter -I INPUT -p tcp --dport 443 -j DROP
Si se desea cerrar el puerto SSH completamente y que no sea filtrado:
sudo /etc/init.d/sshd stop
Si se desea acitvar de nuevo el puerto SSH para conexiones remotas:
sudo /etc/init.d/sshd start