PHP-Hispano.net Comunidad hispana de desarrollo web
Darse de alta en la web | Recuperar password   
Inicio / Foros / Linux / Seguridad - Firewall con IPTABLES

Seguridad - Firewall con IPTABLES

1 respuestas 7050 visitas Categoría Linux

Seguridad - Firewall con IPTABLES

Avatar de mgianni

Nivel 2 (96 posts)

* * * * * * *

0 Agradecimientos

#0 Offline mgianni 10 dic 07
Bueno haciendo referencia al post de seguridad voy a dejarles un mini tutorial sobre iptables para que cualquiera puede implementar un firewall standard y cuidarse de los intrusos y ataques. Poco a poco ire posteando mas implementaciones sobre seguridad y sobre servidores linux (una pasion!! ;D).
Saludos a todos.

Lo primero que deben hacer es instalar iptables, generalmente en la mayoria de las distros viene instalado asique solo debemos chequear que tenemos la ultima version y listo. En mi caso que uso ubuntu server 7.10 (deribado de debian):

apt-get install iptables (instala iptables)
Luego apt-get update (actualiza paquetes)
Luego apt-get upgrade(instala paquetes nuevos)

Con eso ya listo que no entro mucho en detalle ya que de seguro lo tienen instalado xD

Ahora voy a poner un pequeño firewall que siempre uso de modelo para los mios propios:

#!/bin/bash

#-s Especifica una dirección de origen
#-d Especifica una dirección de destino
#-p Especifica un prototocolo
#-i Especifica un interface de entrada
#-o Especifica un interface de salida
#-j Especifica la acción a ejecutar sobre el paquete
#--sport Puerto de origen
#--dport Puerto de destino

#Borrar todas las reglas
iptables -F

#Politica general.Cerramos todo.Dejamos entrar y salir lo solicitado
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

###OTRAS PROTECCIONES####

# Quitamos los pings.
/bin/echo \"1\" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# No respondemos a los broadcast.
/bin/echo \"1\" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Para evitar el spoofing nos aseguramos de que la dirección
# origen del paquete viene del sitio correcto.
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
/bin/echo \"1\" > ${interface}
done

# Los ICMPs redirigidos que pueden alterar la tabla de rutas.
for interface in /proc/sys/net/ipv4/conf/*/accept_redirects; do
/bin/echo \"0\" > ${interface}
done

# No guardamos registros de los marcianos.
/bin/echo \"1\" > /proc/sys/net/ipv4/conf/all/log_martians

# Asegurar, aunque no tenga soporte el nucleo, q no hay forward.
/bin/echo \"0\" > /proc/sys/net/ipv4/ip_forward

###Reglas de los puertos####

# Permitimos que se conecten a nuestro servidor web.

#iptables -A INPUT -m state --state NEW -p TCP --dport 80 -j ACCEPT

#Abrimos ssh a la red.
#iptables -A INPUT -s 172.26.0.3 -p TCP --dport 22 -j ACCEPT
#iptables -A INPUT -s 172.26.0.4 -p TCP --dport 22 -j ACCEPT
#iptables -A INPUT -s 172.26.0.5 -p TCP --dport 22 -j ACCEPT

#iptables -A INPUT -p TCP --dport 22 -j ACCEPT

# Permitimos la comunicación con el servidor dns
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT

#Permitimos uso de ftp.
#iptables -A INPUT -p TCP --dport 21 -j ACCEPT

#Permitimos acceso pop3.
#iptables -A INPUT -p TCP --dport 110 -j ACCEPT

# Permitimos uso de smtp
#iptables -A INPUT -p TCP --dport 25 -j ACCEPT

#Permitimos acceso imap.
#iptables -A INPUT -p TCP --dport 143 -j ACCEPT
#iptables -A INPUT -p UDP --dport 143 -j ACCEPT

#Permitimos todo el trafico de la LAN
iptables -A INPUT -s 172.26.0.2 -j ACCEPT
iptables -A INPUT -s 172.26.0.4 -j ACCEPT
iptables -A INPUT -s 172.26.0.5 -j ACCEPT

#Dejamos a localhost, para mysql, etc..
iptables -A INPUT -i lo -j ACCEPT

-------------------------------------------------------------------------------------
Bueno los mate con esa eh xD!
Lo que deben hacer es cambias las ips 172.26.* por su ip de red local y descomentar lo que quieran permitir ;).
Bueno una ves q copian el contenido y lo pegan es un archivo firewall por ejemplo deben darle permiso de ejecucion como root hacen chmod a+x y listo.. ahora deben cargarlo en el inicio de su sistema para ello deben edit el archivo /etc/init.d/rc.local encontrar muchas lineas alli, vallan al final de todo sin tocar nada!! y escriban el path de su firewall, por ejemplo /etc/firewall/firewall, en mi caso tengo en etc una carpeta firewall y dentro el firewall propiamente dicho, es comun a veces tener mas de uno para pruebas y demas.

Una vez que hicieron esto deben ejecutar su firewall para eso hacen /etc/firewall/firewall si no les devuelve ningun error es porque esta todo ok!

Ahora para ver si esta todo bien ya que por pantalla no nos devolvera nada debemos hacer:
iptables -L (listara nuestras reglas) y para asegurarnos iptables--save.

Bueno eso es todo!! ;D si bien esto es algo simple seguro a mas de uno le servira. Hay cosas que se pueden mejorar como por ejemplo evitar el ataque bruto de ssh y denegar al quinto intento de acceso, etc... pero para eso hay mejores heramientas que mas adelante veremos.

Saludos para todos!!!

Re: Seguridad - Firewall con IPTABLES

Avatar de mmgarcia

Nivel 3 (404 posts)

* * * * * * *

23 Agradecimientos

#1 Offline mmgarcia 10 dic 07 0 personas consideran útil este post.
Excelente Martin

Implemento el tutorial y te cuento.

Saludos

Mario Garcia
Est. Ing. Sistemas de Información
http://www.ohstudio.com.ar Oh!STUDIO Media Solutions
FQL Builder hace simple tu FB-App.

Responder mensaje

Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

Temas relacionados

E Titulo Respuestas Última resp. Creado el Visitas Foro
Pregunta Seguridad 3 09 dic 07
por mgianni
vie, 07 dic 07 (15:50)
por mmgarcia
4500 Linux

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster