Hola a todos!

Pues que me he metido a ver como son los cortafuegos, ya que problablemente en 
un mes tenga una l�nea ADSL en casa y no quer�a estar muy expuesto a tr�fico 
"no deseado". Y como tengo una potato me lo he hecho con ipchains y me ha 
salido peque�ito y yo creo que para empezar puede estar bien.

En casa tengo una red que sale a internet por modem (ppp0) a trav�s de un 
servidor que hace enmascaramiento de IP. Este servidor tambi�n hace de DNS de 
mi dominio y lo dem�s lo pregunta a los dos DNS de mi proveedor. Sirve correo 
con exim, lo baja con fetchmail y entro en el con ssh desde la lan para 
administrarlo. En este servidor es donde coloco el cortafuegos. El maquin�n es 
un P-100 con 16MB y una potato 2.2r3 que va "sobrao".

Por si a alguien le interesa lo mando a la lista. No es largo, y b�sicamente 
deja salir a los ordenadores de la lan a ver p�ginas web, deja servir correo, 
recibirlo, consultas DNS, y permite salir a clientes de ftp (para apt 
b�sicamente). No deja que pase tr�fico icmp, y al final hace log de todo lo que 
no es aceptado.

Si alguien tiene tiempo y lo quiere criticar, mejorar, corregir... y 
compartirlo con nosotros, pues se le agradece.

Un saludo a todos!

-- 
--------------------------------------
[EMAIL PROTECTED]
Linux user 63663
Debian 2.2 in a SPARCstation 5
-------------------------------------- 
#! /bin/sh
# Proyectillo de firewall casero. La politica es prohibir todo lo que no esta 
permitido.
# Al final del script se registra todo lo que no es legal.

# primero unas constantes para leer mejor las cadenas.

EXTERNAL_INTERFACE="ppp0"
LOOPBACK_INTERFACE="lo"

ANYWHERE="any/0"

ETH0="eth0"

LAN_UNO="192.168.1.0/24"

NAMESERVER1="x.x.x.x"
NAMESERVER2="y.y.y.y"

# Se borra todo

ipchains -F

# Politicas por defecto

ipchains -P input DENY
ipchains -P output REJECT
ipchains -P forward REJECT

# Abrimos interfaz de bucle

ipchains -A input -i $LOOPBACK_INTERFACE -j ACCEPT
ipchains -A output -i $LOOPBACK_INTERFACE -j ACCEPT

# Abrimos el masquerading

ipchains -A forward -i $EXTERNAL_INTERFACE -s $LAN_UNO -j MASQ

# Dejamos que el firewall hable con la lan1 y viceversa

ipchains -A input -i $ETH0 -s $LAN_UNO -j ACCEPT
ipchains -A output -i $ETH0 -d $LAN_UNO -j ACCEPT

# Dejamos que pueda consultar DNS...

ipchains -A input -i $EXTERNAL_INTERFACE -p udp -s $NAMESERVER1 53 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p udp -s $NAMESERVER2 53 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p udp -d $NAMESERVER1 53 -j ACCEPT
ipchains -A output -i $EXTERNAL_INTERFACE -p udp -d $NAMESERVER2 53 -j ACCEPT

# Enviar correo (smtp)...
    
ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -d $ANYWHERE 25 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp  ! -y -s $ANYWHERE 25 -j ACCEPT

# Recibir correo de un servidor pop3 cualquiera...

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -d $ANYWHERE 110 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp  ! -y -s $ANYWHERE 110 -j ACCEPT

# Ftp (necesario para apt-get)...

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -d $ANYWHERE 21 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp  ! -y -s $ANYWHERE 21 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -d $ANYWHERE 20 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp  ! -y -s $ANYWHERE 20 -j ACCEPT

# Y web incluyendo ssl.
    
ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -d $ANYWHERE 80 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp  ! -y -s $ANYWHERE 80 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -d $ANYWHERE 443 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp  ! -y -s $ANYWHERE 443 -j ACCEPT

# Y por ultimo, hacemos logs del resto...

ipchains -A input -i $EXTERNAL_INTERFACE -j DENY -l
ipchains -A input -i $ETH0 -j DENY -l
ipchains -A input -i $ETH1 -j DENY -l
ipchains -A output -i $EXTERNAL_INTERFACE -j REJECT -l
ipchains -A output -i $ETH0 -j REJECT -l
ipchains -A output -i $ETH1 -j REJECT -l

# De hecho, las ultimas reglas se ponen para que haga log, no siendo necesarias
# ya que la politica por defecto se encargaria de denegar y rechazar todos los
# paquetes que llegaran al final de la cadena.

Responder a