Firewalls con Linux

Menú
  1. Firewalls, ¿Qué son?
  2. Evaluar la necesidad de un firewall.
  3. tcpd: TCP Wrapping.
  4. ipfwadm.
  5. ipchains.
  6. Herramientas firewall gratuitas y complementos para Linux
  7. Firewalls comerciales
  8. Otros recursos
 

 5. ipchains.

   ipchains viene en el paquete kernel 2.2 y es el sucesor de ipfwadm. Desde el punto de vista de su uso, la mayor diferencia está en que los comandos están ahora en mayúsculas y los argumentos en minúsculas.

   Una manera de verificar si se tiene instalada la opción de ipchains en el módulo es cercionarse de que exista el archivo '/proc/net/ip_fwchains'.

   Si se configura ipchains en un kernel 2.0 deben establecerse las siguientes opciones:

    CONFIG_EXPERIMENTAL = y

    CONFIG_FIREWALL = y

    CONFIG_IP_FIREWALL = y

    CONFIG_IP_FIREWALL_CHAINS = y

   y para un kernel 2.2:
    CONFIG_FIREWALL = y

    CONFIG_IP_FIREWALL = y

   De acuerdo a esta tabla:
 
Comando  Función
 -A  Agrega una nueva norma
 -D  Elimina una norma
 -F  Vacía las normas existentes
 -I  Inserta una nueva norma
 -L  Lista las normas
 -P  Establece la política por defecto
 -R  Reemplaza una norma
Objetivo Función
 ACCEPT  Permitir el tipo de paquete descrito
 DENY  Denegar el tipo de paquete
 MASQ  Aceptar el paquete y dirigirlo a la red interna
 REDIRECT  Redireccionar el paquete a un enlace o proceso local
 REJECT  Rechaza el paquete y devuelve el mensaje ICMP Host Unreachable
Predicado Función
 -b  Se usa para que una norma se aplique sin importar la dirección
 -d[!][dir]  Especificar la dirección de destino
 -i[!][interfaz]  Especificar la interfaz de red
 -p[!][prot]  Especificar el protocolo
 -s[!][dir]  Especificar la dirección fuente
 -j [acción]  Especificar la acción a realizar con ese tipo de paquete

   Por ejemplo, el comando de ipfwadm 

ipfwadm -I -a accept -V 66.60.06.1 -S 0.0.0.0/0 -D 0.0.0.0/0 
se convertiría en ipchains en: 
ipchains -A input -j ACCEPT -i eth0 -s 0/0 -d 0/0 
   Un ejemplo de firewall sencillo con ipchains podría estar configurado para con una política por defecto de negar las conexiones, permitir desde la red interna un acceso total hacia el exterior y que desde el exterior solo se pueda hacer telnet hacia las máquinas de la red interna: 
ipchains -P input DENY 

ipchains -A output -p tcp -s ! 194.224.81.0/24 -j DENY 

ipchains -A input -p tcp --dport 23 -d 194.224.81.0/24 -j ACCEPT 

ipchains -A input -p tcp -d 194.224.81.0/24 -j ACCEPT  ! -y 

   Con esto lo que se hace es, en primer lugar, establezco una política por defecto de negación. Después, con esta regla se pretende evitar el spoofing. En la siguiente se acepta el tráfico entrante a la red hacia el puerto 23. Y en la última se aceptan los paquetes entrantes de una conexión ya establecida hacia el interior de la red.