XandruSoft

Desarrollo Web & Mobile


Crear firewall con IpTables en Linux (Ubuntu Server)

Posted on 22:00 | 4 comentarios

S

i no disponemos de un hardware firewall pero queremos montar uno para proteger nuestro ordenador o servidor, podemos usar un software que nos proporciona Linux y es bastante potente llamado IpTables.


Para usar IpTables en Ubuntu debemos de crear un fichero dentro del directorio /etc/init.d/ al que podemos dar cualquier nombre, aunque os recomiendo poner algo descriptivo como “iptables.cf”. Dentro de este archivo tendremos todas las reglas que queremos aplicar darle una protección extra a nuestro Ubuntu.


Un ejemplo de un fichero de configuración de IpTables es el siguiente:



## Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F

## Establecemos politicas predeterminada
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# Aceptamos todo de localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT

# A nuestra IP le dejamos todo
iptables -A INPUT -s 192.168.2.1 -j ACCEPT

# A otra ip interna le permitimos todo
iptables -A INPUT -s 192.168.2.99 -j ACCEPT
iptables -A INPUT -s 192.168.2.100 -j ACCEPT

# Permitimos una conexion a ssh y telnet (22 y 23) desde un equipo
iptables -A INPUT -s 192.168.2.10 -p tcp --dport 22:23 -j ACCEPT

# A otro le permitimos acceso FTP
iptables -A INPUT -s 212.176.121.111 -p tcp --dport 20:21 -j ACCEPT

# El puerto 80 y 8080 (www) abierto, para un servidor web.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

# Y el resto, lo cerramos
iptables -A INPUT -p tcp --dport 20:21 -j DROP
iptables -A INPUT -p tcp --dport 22:23 -j DROP
iptables -A INPUT -p tcp --dport 6001 -j DROP

# Cerramos rango de los puertos privilegiados. Cuidado con este tipo de
# barreras, antes hay que abrir a los que si tienen acceso.
iptables -A INPUT -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 1:1024 -j DROP

# impedimos iniciar conexion los puertos altos
# (puede que ftp no funcione)
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP

# Cerramos otros puertos que estan abiertos
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 10000 -j DROP

Para arrancar el servicio no tenernos más que hacer


/ect/init.d/iptables.cf start

Si lo queremos parar


/ect/init.d/iptables.cf stop

Y si lo queremos reiniciar


/ect/init.d/iptables.cf restart

Podemos comprobar las reglas que se han aplicado con el comando


iptables -L

También os puede interesar:


Problema al iniciar IpTables: “no chain/target/match by that name”
Configuración de archivo para Logs de IpTables

4 comentarios:

Anónimo dijo...

muy buen post brother....

muy buenas reglas...sencillas pero efectivas

dj dogus clb
electronic life is my style

ubuntu666 dijo...

Son dos subredes. Una con servidores 4. y la otra con clientes 2. Uno de los servidores se utiliza como interconexión.
Buenas ¿Cómo podría crear un ubuntu server que se utilizara como interconexión (router/firewall) entre internet, red servidores y red estaciones cliente.??? Gracias por la ayuda...
Dejo aquí mi email: antoniohdz892243@gmail.com

ubuntu666 dijo...

En caso de hacer el ubuntu server y los demás con maquinas virtuales vmware, ¿habría que configurar o mirar algo por la terminal o de algún otro sitio?

xnd dijo...

Hola ubuntu666,

la verdad que desconozco el procedimiento exacto para hacer lo que dices, pero sí sé que la mayoría de firewalls y routers del mercado corren sobre Linux, por lo que seguro que se puede hacer y está documentado.

Como experimento me parece muy buena iniciativa, pero si le quieres dar un uso real, te aconsejo que te compres un aparatito porque... teniendo en cuenta el espacio y consumo de energía, a la larga te saldrá más barato.

Publicar un comentario en la entrada