Академический Документы
Профессиональный Документы
Культура Документы
Seguridad Informtica II
PRCTICA # 1: FIREWALL PERIMETRAL
NOMBRES DE INTEGRANTES:
PROFESOR:
ING. JESS PICHARDO RAMREZ
VIERNES 18 de marzo de 2011
Grupo: 01
NDICE
1. Objetivo ----------------------------------------------------------------------------------------------------------- 1
2. Desarrollo :Configurar un firewall perimetral con polticas ------------------------------------------------ 1
2.1 Poltica prohibitiva de seguridad por defecto en todos los sentidos ----------------------------- 1
2.2 Permitir cualquier trfico de nuestra interface interna -------------------------------------------- 1
2.3 Permitir slo el trfico necesario desde nuestro servidor DNS ---------------------------------- 2
2.4 Bloquear todo el trfico entrante UDP restante ---------------------------------------------------- 2
2.5 Bloquear ataques del tipo SYN flood ----------------------------------------------------------------- 2
2.6 Bloquear conexiones TCP nuevas cuyos paquetes no contengan la bandera SYN -------------- 2
2.7 Permitir el trfico icmp (ping) slo desde (B) ------------------------------------------------------ 3
2.8 Permitir conexiones SSH slo desde (B) ------------------------------------------------------------ 3
2.9 Permitir conexiones HTTP desde todos los clientes (A), (B) y (C) ------------------------------ 3
2.10 Permitir conexiones FTP slo desde (B) ---------------------------------------------------------- 3
3. Script -------------------------------------------------------------------------------------------------------------- 4
4. Herramientas tcnicas ------------------------------------------------------------------------------------------ 6
5. Conclusiones ----------------------------------------------------------------------------------------------------- 6
1. Objetivo.
Instalar y configurar un Firewall perimetral mediante el cual se proteger un servidor WWW, SSH y
FTP. Para ello se emplear IPTABLES (no son vlidas otras soluciones) y nos basaremos en el
siguiente diagrama:
2. Desarrollo.
2.6 Bloquear conexiones TCP nuevas cuyos paquetes no contengan la bandera SYN
Denegamos el acceso a los paquetes que no tengan encendida la bandera de SYN. Esto se realiza de la siguiente
manera:
#Bloquear conexiones TCP nuevas cuyos paquetes no contengan la bandera SYN.
$filtro -A INPUT --protocol tcp --tcp-flags ALL SYN -j DENY
4
2.9 Permitir conexiones HTTP desde todos los clientes (A), (B) y (C).
Esto es igual que con el anterior solo que con el puerto 80 (predeterminado para el servicio http).
Quedara de la siguiente manera:
#Permitir conexiones HTTP solo desde A,B,C
for k in 2 3 4
do
$filtro -A INPUT p tcp -s 192.168.1.$k -d 192.168.1.1 --dport 80 -j ACCEPT
Done
3. Realizar un script o guardar la configuracin del firewall para cargar las reglas IPTables nuevamente.
(Recordemos que con el comando iptables slo se guardan en memoria). La memoria tcnica deber
incluir el script o archivo de configuracin del firewall.
#!/bin/bash
#Definimos que tipo de filtrar usaremoss
filtrar=/sbin/iptables
#Politica prohibitiva.Cerramos todo.Dejamos entrar y salir lo solicitado
$filtrar -P INPUT DROP
$filtrar -P OUTPUT ACCEPT
$filtrar -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$filtrar -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Permitimos cualquier trfico de nuestra interface interna
$filtrar -A INPUT -i lo -j ACCEPT
$filtrar -A FORWARD -i lo -j ACCEPT
# Permitimos la comunicacin con el servidor dns
$filtrar -A INPUT -p udp -s 192.168.1.0/24 -d 192.168.1.1 --dport 53 -j ACCEPT
$filtrar -A INPUT -p tcp -s 192.168.1.0/24 -d 192.168.1.1 --dport 53 -j ACCEPT
#Bloquear todo el trfico entrante UDP restante.
$filtrar -A INPUT -p udp -j DROP
# Anti-flooding o Bloqueo de ataques del tipo SYN flood(inundacin de tramas SYN).
$filtrar -N syn_flood
$filtrar -A INPUT -p tcp --syn -j syn_flood
$filtrar -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
$filtrar -A syn_flood -j DROP
#Bloquear conexiones TCP nuevas cuyos paquetes no contengan la bandera SYN.
$filtrar -A INPUT --protocol tcp --tcp-flags ALL SYN -j DROP
#Permitir trafico del ping solo desde B
$filtrar -A INPUT -p icmp -s 192.168.1.3 -d 192.168.1.1 -j ACCEPT
#Permitir conexiones SSH solo desde B
$filtrar -A INPUT -p tcp -s 192.168.1.3 -d 192.168.1.1 --dport 22 -j ACCEPT
#Permitir conexiones HTTP solo desde A,B,C
for k in 2 3 4
do
$filtrar -A INPUT -p tcp -s 192.168.1.$k -d 192.168.1.1 --dport 80 -j ACCEPT
done
#Permitir conexiones FTP solo desde B,
$filtrar -A INPUT -p tcp -s 192.168.1.3 -d 192.168.1.1 --dport 20 -j ACCEPT
$filtrar -A INPUT -p tcp -s 192.168.1.3 -d 192.168.1.1 --dport 21 -j ACCEPT
6
Para lograr que el firewall se ejecute de forma automtica, al prender nuestro servidor, debemos hacer lo
siguiente:
Guardar el script
Asignar permisos adecuados
Ejecutarlo
Asignarlo como archivo de arranque
El fichero se puede llamar, firewall.sh al cual debemos darle permisos de ejecucin:
$ chmod +x firewall.sh
Ahora ejecutamos el script, de la siguiente manera:
$ sudo sh firewall.sh
Para verificar que nuestras reglas se han cargado, hacemos lo siguiente:
$ sudo iptables L
Lo que arroja una salida que viene a ser algo as:
root@anymms:/home/anita # iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT all -- glorioso anywhere
ACCEPT all -- minime anywhere
ACCEPT all -- placebo anywhere
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
root@anymms:/home/anita #
Para hacer que las reglas se carguen al inicio (cuando se inicia el sistema), copiamos el script al directorio
/etc/init.d/ y lo ponemos de forma por default:
$ sudo cp firewall.sh /etc/init.d/
$ sudo update-rc.d firewall.sh defaults
De esta forma, asignamos el script para que sea llamado a ejecucin en el nivel de arranque configurado por
default.
4. Herramientas tcnicas.
Servidor FTP
#apt-get install proftpd
Servidor SSH
#apt-get install sshd
5. Conclusiones.
A travs de esta prctica, hemos comprendido mejor la funcin que tiene un firewall ya sea a nivel red o a nivel
sistema operativo, y del papel que desempea dentro del campo de la seguridad informtica. Pero al tratarse de
un firewall perimetral, se trata de un firewall a nivel red local. Un firewall filtra las conexiones TCP/IP
presentes entre una red local de una organizacin e internet. Es el tipo de firewall ms usado para proteger la
red de una empresa de aquellos ataques o trfico externos a la red local en estudio.
Implementar este tipo de firewall en el sistema operativo Linux no nos result muy difcil, ya que con slo
ejecutar el script expuesto en las pginas anteriores nos ahorramos el hecho de escribir una serie de comandos
que difcilmente podramos memorizar cada que queramos llevar a cabo este firewall a nuestra red local.
NOTA IMPORTANTE:
El funcionamiento de los comandos y de esta prctica la exponemos en un video que se encuentra en la
siguiente liga de youtube:
http://www.youtube.com/watch?v=3SOpQUh8o-8