Debutamos!… arrancamos con un pequeño (¿tutorial?) firewall para linux, como no podía ser de otra manera utilizo iptables.
No importa que version de iptables tengas, esto debería andar (creo).
Para que quede claro como es la topología en mi casa:
{Internet} <— (Modem-Adsl) —-> (Switch) <—- (Linux)
Basicamente: Esta todo conectado al switch.
Aclaro que esto es un firewall para mi PC solamente, no actuo como router/gateway para
el resto de la red (que no la dibujé pero tmb estan conectados al switch).
Los servidores DNS me los dan dinámicamente mi ISP, por eso me fijo en el archivo
/etc/resolv.conf para saber cuales son.
Creo que por ahora es todo….
Mi firewall con iptables
#####
## Firewall by ^MaKaM^ (makam at makam dot org)
## Web: http://www.makam.org/
## Blog: http://blog.makam.org/
## Version 2.1.0
##
#####
##
## Este frw es MUY simple, no deja pasar casi nada.
## Solo las conexiones activas que pidió nuestra PC y
## las respuestas del servidor DNS.
## Este frw se tiene que activar DESPUES de levantar la ppp0
##
#####
IPTABLES=`which iptables`
INET="ppp0"
LAN="eth1"
SRC_TRABAJO="200.200.200.200/32"
NS=`grep "nameserver " /etc/resolv.conf | awk '{ print $2 }'`
## Reglas por defecto en cada tabla
# Por defecto, no aceptamos nada…
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
# Por defecto dejamos que salga cualquier cosa…
$IPTABLES -P OUTPUT ACCEPT
## Limpiamos….
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -F -t nat
#Anti-Spoofing
$IPTABLES -A INPUT -i $INET -s 10.0.0.0/8 -j DROP
$IPTABLES -A INPUT -i $INET -s 192.168.0.0/24 -j DROP
$IPTABLES -A INPUT -i $INET -s 127.0.0.0/8 -j DROP
### Aca empieza la joda..
# Toda conexion que ya este establecida la acepto…
$IPTABLES -A INPUT -i $INET -m state –state ESTABLISHED,RELATED -j ACCEPT
# Acepto las peticiones de SSH desde mi trabajo…
$IPTABLES -A INPUT -i $INET -s $SRC_TRABAJO -dport 22 –syn -j ACCEPT
# Toda conexion que venga de la LAN la acepto…
$IPTABLES -A INPUT -i $LAN -s 10.1.0.0/8 -d 0/0 -j ACCEPT
# Toda conexion que venga de la interfaz de loopback la acepto…
$IPTABLES -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
# Servidor DNS
# Acepto toda entrada del Servidor DNS…
# Como no tengo servidor dns fijo, me tengo que fijar en el que me dio mi ISP (Anteldata)
for ip in $NS; do
$IPTABLES -A INPUT -p udp -s $ip/32 –source-port 53 -d 0/0 -j ACCEPT
done