Para instalar el Shorewall vamos ha usar apt.
#apt-get install shorewall
Para que el servicio arranque de manera automatica vamos ha modificar el fichero /etc/default/shorewall y modificamos:
startup=0 por startup=1
Ahora tenemos que crear la configuracion, para ello vamos ha hacer una copia de los ficheros de configuracion por defecto.
#cp /usr/share/doc/shorewall-common/degault-config /etc/shorewall
o
#cp /usr/share/doc/shorewall/degault-config /etc/shorewall
Por defecto solo tiene creada una sola zona "fw firewall" que sirve para asegurarse a si mismo.
Tendremos que crear al menos dos zonas, la lan y la wan, es decir por donde entra internet y otra por donde esta nuestra red; recordar que solo se pueden usar nombres de 5 caracteres.
Editar el fichero /etc/shorewall/zones
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
lan ipv4 #
wan ipv4 #
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE
Tendremos que crear las politicas por defecto: fw-lan, fw-wan, lan-wan, lan-fw, wan-lan y wan-fw.
Editamos el fichero /etc/shorewall/policy
###############################################################################
#SOURCE DEST POLICY LOG LIMIT:BURST
# LEVEL
local $FW ACCEPT
local net ACCEPT
$FW local ACCEPT
$FW net ACCEPT
net local DROP
net $FW DROP
#LAST LINE -- DO NOT REMOVE
Por ultimo podemos configurar las reglas para permitir cirtas cosas que en principio esta o no permitidas.
Editamos el fichero /etc/shorewall/rules
############################################################################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK
# PORT PORT(S) DEST LIMIT GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
ACCEPT net local tcp 80
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
NOTA: Para hacer todo esto sin muchos problemas podemos usar en Webmin con le modulo Shoreline.
Mostrando entradas con la etiqueta Firewall. Mostrar todas las entradas
Mostrando entradas con la etiqueta Firewall. Mostrar todas las entradas
miércoles, 6 de mayo de 2009
martes, 28 de abril de 2009
Firewall con Iptables
Pongamonos en situación antes de todo.
Tenemos el siguiente esquema:
Queremos que los equipos con direcciones 172.16.1.X tenga acceso desde internet por los servicios FTP, SSH, IMAP, POP3, HTTP y permita los ICMP.
Por el contrario los equipos con direcciones 172.16.0.X tendran solo acceso a HTTP y cualquier peticion ICMP debera se rechazada.
Para administrar el Firewall vamos ha dejar que solo se puede acceder mediante SSH si la direccion de acceso es de 172.16.0.0/16.
Suponemos que las IPs estan asignadas como viene en el esquema.
Para empezar vamos a configurar el Firewall.
NOTA: El firewall no es mas que un equipo Linux con dos tarjetas de red e IPTABLES y un servidor SSH.
Para poder permitir al Firewall que "enrute" el trafico desde la red 192.168.1.0/24 hacia 172.16.0.0/16 tendremos que poner el fichero "/proc/sys/net/ipv4/ip_forward" a 1. Esto se puede hacer escribiendo:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Ahora vamos a cerrar el acceso al Firewall y dejar solo el SSH:
# iptables -P INPUT DROP
# iptables -A INPUT -s 172.16.0.0/24 -p TCP --dport 22 -j ACCEPT
# iptables -P OUTPUT DROP
# iptables -A OUTPUT -d 172.16.0.0/24 -p TCP --sport 22 -j ACCEPT
Como podeis observar la direccion usa una mascara de 24bits para evitar el acceso desde los equipos de 172.16.1.X
Ahora vamos a configurar que datos debe de pasar de una red a otra.
# iptables -P FORWARD DROP
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 20 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 21 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 22 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 80 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 110 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 143 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 220 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 993 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 20 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 21 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 22 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 80 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 110 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 143 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 220 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 993 -j ACCEPT
# iptables -A INPUT -s 172.16.0.0/24 -p TCP --dport 80 -j ACCEPT
# iptables -A INPUT -d 172.16.0.0/24 -p TCP --sport 80 -j ACCEPT
# iptables -A INPUT -d 172.16.0.0/24 -p ICMP -j REJECT
Tenemos el siguiente esquema:

Queremos que los equipos con direcciones 172.16.1.X tenga acceso desde internet por los servicios FTP, SSH, IMAP, POP3, HTTP y permita los ICMP.
Por el contrario los equipos con direcciones 172.16.0.X tendran solo acceso a HTTP y cualquier peticion ICMP debera se rechazada.
Para administrar el Firewall vamos ha dejar que solo se puede acceder mediante SSH si la direccion de acceso es de 172.16.0.0/16.
Suponemos que las IPs estan asignadas como viene en el esquema.
Para empezar vamos a configurar el Firewall.
NOTA: El firewall no es mas que un equipo Linux con dos tarjetas de red e IPTABLES y un servidor SSH.
Para poder permitir al Firewall que "enrute" el trafico desde la red 192.168.1.0/24 hacia 172.16.0.0/16 tendremos que poner el fichero "/proc/sys/net/ipv4/ip_forward" a 1. Esto se puede hacer escribiendo:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Ahora vamos a cerrar el acceso al Firewall y dejar solo el SSH:
# iptables -P INPUT DROP
# iptables -A INPUT -s 172.16.0.0/24 -p TCP --dport 22 -j ACCEPT
# iptables -P OUTPUT DROP
# iptables -A OUTPUT -d 172.16.0.0/24 -p TCP --sport 22 -j ACCEPT
Como podeis observar la direccion usa una mascara de 24bits para evitar el acceso desde los equipos de 172.16.1.X
Ahora vamos a configurar que datos debe de pasar de una red a otra.
# iptables -P FORWARD DROP
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 20 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 21 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 22 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 80 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 110 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 143 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 220 -j ACCEPT
# iptables -A INPUT -d 172.16.1.0/24 -p TCP --dport 993 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 20 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 21 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 22 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 80 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 110 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 143 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 220 -j ACCEPT
# iptables -A INPUT -s 172.16.1.0/24 -p TCP --sport 993 -j ACCEPT
# iptables -A INPUT -s 172.16.0.0/24 -p TCP --dport 80 -j ACCEPT
# iptables -A INPUT -d 172.16.0.0/24 -p TCP --sport 80 -j ACCEPT
# iptables -A INPUT -d 172.16.0.0/24 -p ICMP -j REJECT
Suscribirse a:
Entradas (Atom)