Está en la página 1de 5

Firewall bajo Linux con Iptables

Firewalls

Asignatura: Intranet

Una PC muy importante dentro de la red es el servidor, ya que tiene muchos puertos abiertos y ofrece muchas formas de conexin, ya que ofrece un sinnmero de servicios, y de entre todas estas conexiones pueden existir algunas que sean indeseadas. Para hacer que slo se acceda utilizando los servicios que hemos configurado, usaremos un firewall, que acepta, deniega o ignora los paquetes que han de pasar por el servidor. El firewall que utilizaremos est al nivel del kernel (que es quien controla el filtrado de paquetes), utilizando el programa iptables. Anteriormente llamado: ipfwadm (Kernel 2.0), ipchains (Kernel 2.2) e iptables para (Kernel 2.4), al ser una herramienta de kernel es probable que ya lo tengamos instalado. Para verificar si el paquete esta instalado, prueba con el siguiente comando desde consola: rpm qa|grep iptables Si el comando te devuelve un resultado, es por que ya lo tienes instalado, en caso de que no te devuelva ningn resultado, tendrs que dirigirte a www.netfilter.org y bajarte la ultima versin estable de iptables, en caso de bajarte un rpm, instlalo con el siguiente comando:

rpm ivh iptables.1.2.11-3.1.i386.rpm En este caso estoy instalando la versin 1.2.11-3.1

Hay algunas otras formas de instalacin como puede ser a travs de un tarball (archivo .tar) o con apt-get (la forma ms fcil de instalar paquetes)

Arquitectura del Firewall


IPTABLES posee tres tablas para realizar los diferentes tipos de operaciones, estas tablas son:

FILTER (Esta tabla es la que se utiliza por defecto y es la que mas se trabaja) NAT (Traducciones de Direccin de red) se utiliza con DNAT y SNAT (destino y fuente NAT) el cual utiliza las cadenas PREROUTING Y POSTROUTING

MANGLE Para modificar los bit de tipo de servicio (TOS) del encabezado del paquete ip.

EI-UTSAM

Docente: Ing. Lucas R. Garcs G.

Firewall bajo Linux con Iptables

Asignatura: Intranet

La tabla FILTER posee sub-tablas, las cuales son: INPUT, FORWARD y OUTPUT, para separar los paquetes: INPUT: los paquetes que llegan al servidor desde el exterior o desde la misma mquina pasan por esta tabla. FORWARD: los paquetes que llegan al servidor para ser enrutados hacia otro sitio pasan por la regla FORWARD. Hay que activar una opcin antes para permitir el forwarding. OUTPUT: los paquetes generados en el mismo computador y listos para ser enviados hacia el exterior pasan por esta tabla.

Cada subtabla consta de una serie lgica de reglas que deciden el destino del paquete. El paquete acabar bsicamente de una de estas formas:

ACCEPT: se deja pasar el paquete; el firewall no acta para nada. REJECT: se deniega el paquete. El firewall contesta diciendo que no quiere hacer la conexin, por tanto el emisor del paquete se entera.

DROP: ignora el paquete. Es como si el computador estuviera apagado y el paquete se perdiera.

MASQUERADE: enmascara al paquete con la direccin de la PC en la que esta haciendo el forward.

Adems de todo esto, al firewall se le pueden definir polticas para cada tabla, por defecto cada tabla tiene como poltica ACCEPT, lo que indica que todos los paquetes sern aceptados, cada vez y cuando no cumpla alguna regla del firewall que tengan como destino DROP.

iptables -P INPUT ACCEPT Poltica de Acceso ACCEPT para la tabla INPUT

Lo recomendable es poner como poltica de acceso DROP a la tabla INPUT, para que ningn paquete ingrese, hasta que no haya cumplido alguna regla del firewall que tenga como destino ACCEPT.

EI-UTSAM

Docente: Ing. Lucas R. Garcs G.

Firewall bajo Linux con Iptables


Sintaxis de Iptables

Asignatura: Intranet

iptables -A <tabla> -i <interfaz de entrada> -o <interfaz de salida> -s <IP de origen> -d <IP de destino> -p <protocolo> --sport <puerto origen> --dport <puerto destino> -j <accin>

Comando = A (adicionar), D (borrar), -F (vaciar), P (poltica), L (listar) Ejemplo: Servidor que recepta conexiones SSH desde la red 192.168.1.0/24 iptables A INPUT -s 192.168.1.0/24 dport ssh j ACCEPT

iptables A OUTPUT -d 192.168.1.0/24 sport ssh j ACCEPT

Para obtener una mayor especificacin del comando, teclear desde consola man iptables

Construccin del Firewall


Escenario:

Servidor con las siguientes caractersticas: eth0 = 157.100.192.66 Servidor Web (Regla 8) Servidor de Bases de Datos MySQL (Regla 9) Acepta conexiones por SSH solo desde la LAN (Regla 6) Acepta todas las conexiones realizadas desde la interface loopback. (Regla 1 y 2) DNS, solo se recepta paquetes UDP de los DNS del ISP, as como tambin las peticiones de la LAN, lo dems se desecha con un error (Regla 4 y 5) Servidor de correo (SMTP puerto 25, POP3 puerto 110) (Reglas 10 y 11) Servidor Proxy (Regla 7) Servidor de FTP (Reglas 12) Aceptar el Protocolo ICMP (necesario para que puedan comprobarnos la conectividad) (Regla 3) La poltica de acceso para todo paquete va a ser de DROP. eth1 = 192.168.1.2

EI-UTSAM

Docente: Ing. Lucas R. Garcs G.

Firewall bajo Linux con Iptables


Activacin del Forwarding.

Asignatura: Intranet

Enmascaramiento (para poder utilizar algunos servicios, ya que algunos servicios no salen a travs del Proxy. Ejemplo: IRC programas P2P, entre otros)

#!/bin/bash echo "Firewall. INTRANET - UTSAM" #Borrado de las reglas anteriores iptables -F -t filter iptables -F -t nat iptables -F -t mangle #Polticas de Acceso iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT #Activacin del Forwarding y Enmascaramiento echo 1 >/proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -o eth0 -t nat -j MASQUERADE #Inicio de las Reglas echo "Regla 1" iptables -A INPUT -i lo -j ACCEPT echo "Regla 2" iptables -A OUTPUT -o lo -j ACCEPT echo "Regla 3" iptables -A INPUT -p icmp -j ACCEPT echo "Regla 4" iptables -A INPUT -p udp --dport 53 -j ACCEPT echo "Regla 5" iptables -A INPUT -p udp -j REJECT --reject-with icmp-portunreachable echo "Regla 6" iptables -A INPUT -i eth1 -p tcp --dport ssh -j ACCEPT

EI-UTSAM

Docente: Ing. Lucas R. Garcs G.

Firewall bajo Linux con Iptables


echo "Regla 7"

Asignatura: Intranet

iptables -A INPUT -i eth1 -s 192.168.9.0/24 -p tcp --dport 8080 -j ACCEPT echo "Regla 8" iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT echo "Regla 9" iptables -A INPUT -i eth1 -p tcp --dport 3306 -j ACCEPT echo "Regla 10" iptables -A INPUT -i eth1 -p tcp --sport 25 -j ACCEPT echo "Regla 11" iptables -A INPUT -i eth1 -p tcp --sport 110 -j ACCEPT echo "Regla 12" iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT echo "Fin del Firewall"

EI-UTSAM

Docente: Ing. Lucas R. Garcs G.

También podría gustarte