Guía de configuración de Firewalls con Scientific Linux 5.0

Anuncio
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP Guía de configuración de
Firewalls con
Scientific Linux 5.0
Elaborada para el ITLP
Carmen Alicia Puppo Fernández
Carmen A. Puppo Fernandez
1
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP Guía de Configuración de Firewalls Scientific Linux 5.0
Para la presente guía asumiremos que en nuestro firewall se encuentra ya instalada la versión 5.0 de la
distribución de Scientific Linux, y se domina la forma de conectarse mediante una consola al equipo.
Asimismo, el usuario deberá tener conocimientos generales sobre el trabajo con archivos en Linux y la
edición de archivos de texto.
Es recomendable que se tengan conocimientos sobre TCP/IP y enrutamiento para entender el
funcionamiento del firewall.
Configuración de direcciones IP:
En el directorio /etc/sysconfig/network-scripts se encuentra un archivo de configuración para
cada una de las interfaces de red llamado ifcfg-DEV donde DEV se sustituye por el nombre del archivo
de dispositivo de la interfaz de red correspondiente, para nuestro caso se cuenta con 2 interfaces de red:
1. eth0
2. eth1
Para el ejemplo actual asumiremos que el firewall se encuentra conectado a la red 192.168.5.254, con
la interfaz, eth0 con la IP 192.168.5.254. El archivo de configuración quedaría como sigue:
Archivo: /etc/sysconfig/network-scripts/ifcfg-eth0
# 3Com Corporation 3c905 100BaseTX [Boomerang]
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:60:97:A1:73:BB
ONBOOT=yes
NETMASK=255.255.248.0
IPADDR=192.168.5.254
GATEWAY=192.168.0.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=no
Carmen A. Puppo Fernandez
2
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP La interfaz eth1 se encuentra conectada a la red local 172.16.1.0/24 por lo que el archivo de
configuración quedaría como sigue:
Archivo: /etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corporation 82544GC Gigabit Ethernet Controller (LOM)
DEVICE=eth1
BOOTPROTO=none
HWADDR=00:0F:1F:66:46:3F
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=172.16.1.254
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
Configuración de DHCP:
Primeramente se debe indicar cual interfaz se encuentra conectada a la red local 172.16.1.0/24 la cual
en este caso es eth1, por lo que el archivo de parámetros de dhcpd,
Archivo:
/etc/sysconfig/dhcpd
Deberá quedar de esta manera:
DHCPDARGS = eth1
Para configurar de manera automática los clientes de la red interna (172.16.1.0/24) es necesario
habilitar un servidor dhcp mediante el daemon dhcpd el archivo quedaría como sigue:
Archivo: /etc/dhcpd.conf
# DHCP Server Configuration file.
#
see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddns-update-style ad-hoc;
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.1 172.16.1.253;
default-lease-time 21600;
max-lease-time 43200;
option subnet-mask 255.255.255.0;
option broadcast-address 172.16.1.255;
option domain-name "itlp.edu.mx";
option domain-name-servers 148.208.162.6;
Carmen A. Puppo Fernandez
3
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP option routers 172.16.1.254;
}
Para que los cambios surtan efecto deberemos reiniciar el demonio dhcpd mediante el comando:
service dhcpd restart
Habilitación del reenvío de paquetes:
Para que el firewall enrute paquetes entre las interfaces activas, debemos prender el bit de
configuración de reenvío de paquetes en los archivos de configuración del kernel cada vez que
arranque el equipo, por lo que debe agregarse la línea marcada con negritas en el archivo /etc/rc.local.
Archivo: /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
Configuración de IPTABLES:
La configuración de iptables puede hacerse mediante el comando iptables desde una terminal común;
iptables es la herramienta que nos permitirá configurar las reglas del sistema de filtrado en la red. Para
crear nuestro firewall, necesitaremos ejecutar algunos comandos, como:
#Habilitar nat en la interface local
iptables –t nat –A POSTROUTING -s 172.16.1.0/24 –D 0.0.0.0/ -j MASQUERADE
# bloquear el puerto 4199 en tcp y udp (subida y bajada en tcp y udp)
iptables -I FORWARD -p udp -s 0/0 -d 0/0 --source-port 4199 -j DROP
iptables -I FORWARD -p tcp -s 0/0 -d 0/0 --source-port 4199 -j DROP
iptables -I FORWARD -p udp -s 0/0 -d 0/0 --destination-port 4199 -j DROP
iptables -I FORWARD -p tcp -s 0/0 -d 0/0 --destination-port 4199 -j DROP
#bloquear youtube
iptables -I FORWARD -d 208.65.152.0/22 -j DROP
#bloquear metacafe
iptables -I FORWARD -d 72.32.103.176/28 -j DROP
#bloquear puertos mas comunes de descargas P2P
iptables -I FORWARD -p tcp --dport 6346:6347 -j DROP
iptables -I FORWARD -p udp --dport 6346:6347 -j DROP
Carmen A. Puppo Fernandez
4
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP iptables
iptables
iptables
iptables
-I
-I
-I
-I
FORWARD
FORWARD
FORWARD
FORWARD
-p
-p
-p
-p
tcp
udp
tcp
udp
--dport
--dport
--dport
--dport
4660:4666 -j DROP
4660:4666 -j DROP
1214 -j DROP
1214 -j DROP
Cuando tengamos el firewall funcionando a nuestro gusto, se ejecuta el comando service iptables
save para guardar la configuración en los archivos de configuración de arranque de iptables
/etc/sysconfig/iptables.
Archivo: /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Tue Aug 28 12:19:41 2007
*filter
:INPUT ACCEPT [1393:178268]
:FORWARD ACCEPT [4543:1536829]
:OUTPUT ACCEPT [301:23205]
-A FORWARD -d 208.65.153.251 -j DROP
-A FORWARD -d 208.65.153.238 -j DROP
-A FORWARD -d 208.65.153.253 -j DROP
COMMIT
# Completed on Tue Aug 28 12:19:41 2007
# Generated by iptables-save v1.3.5 on Tue Aug 28 12:19:41 2007
*nat
:PREROUTING ACCEPT [2210:277350]
:POSTROUTING ACCEPT [19:1176]
:OUTPUT ACCEPT [17:1080]
-A POSTROUTING -s 172.16.1.0/255.255.255.0 -j MASQUERADE
COMMIT
# Completed on Tue Aug 28 12:19:41 2007
Tabla Mangle
En nuestro caso la tabla Mangle se encuentra vacía debido a que no hacemos transformaciones a los
paquetes reenviados.
Tabla Filter
La tabla Filter incluye todas las reglas de filtrado de paquete y actualmente prohibe todos los paquetes
entrantes al firewall, a excepción de aquellos que se encuentren dirigidos al puerto 22 (SSH2)
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
y los dirigidos hacia el protocolo ICMP (esta línea puede eliminarse si no se necesita hacer ping al
firewall y se desean evitar ataques de DDOS (Como Smurfing).
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
Carmen A. Puppo Fernandez
5
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP La Tabla NAT
La tabla NAT permite la configuración de la traducción de direcciones de red, tanto para compartir una
salida a internet con una sola ip homologada, como para la redirección de paquetes entrantes hacia un
servidor de nuestra red local.
Asimismo las computadoras en la red local podrán acceder a internet mediante esa ip homologada
-A POSTROUTING -o eth0 -j SNAT --to-source 192.168.5.254
Agregando filtros a iptables
Si queremos filtar paquetes de la red local hacia internet tenemos varias opciones, por ejemplo, para
filtrar los paquetes dirigidos a la ip 172.16.10.1 podemos ejecutar el comando:
iptables -I FORWARD -d 172.16.10.1 -j DROP
para filtrar los paquetes provenientes de la ip 172.16.10.1 podemos ejecutar el comando:
iptables -I FORWARD -s 172.16.10.1 -j DROP
Para filtrar los paquetes dirigidos a puertos específicos podemos hacerlo mediante comandos que
utilicen las directivas –dport (puerto destino del socket) y -sport (puerto fuente del socket), por
ejemplo, para filtrar el rango de puertos que utilza emule ejecutaríamos los comandos:
iptables
iptables
-I FORWARD -p tcp --dport 4660:4670 -j DROP
-I FORWARD -p tcp --sport 4660:4670 -j DROP
a continuación se incluye un ejemplo que deshabilita varios programas de comparición peer to peer:
#cutoff emule/torrent
iptables -I FORWARD -p tcp -m multiport --dports
6881,6882,6883,6884,6885,6886,6887,6888,6889,1214 -j REJECT
iptables -I FORWARD -p udp -m multiport --dports
6881,6882,6883,6884,6885,6886,6887,6888,6889,1214 -j REJECT
iptables -I FORWARD -p tcp -m multiport --dports 6346,6347 -j REJECT
iptables -I FORWARD -p udp -m multiport --dports 6346,6347 -j REJECT
iptables -I FORWARD -p tcp -m multiport --dports
4711,4665,4661,4672,4662,8080,9955 -j REJECT
iptables -I FORWARD -p udp -m multiport --dports
4711,4665,4661,4672,4662,8080,9955 -j REJECT
iptables -I FORWARD -p tcp --dport 4242:4299 -j REJECT
iptables -I FORWARD -p udp --dport 4242:4299 -j REJECT
Carmen A. Puppo Fernandez
6
Guía de Configuración de Firewalls con Scientific Linux 5.0 Elaborado para el ITLP iptables -I FORWARD -p tcp --dport 6881:6999 -j REJECT
iptables -I FORWARD -p udp --dport 6881:6999 -j REJECT
Las líneas que incluyen listas de puertos aparecen en dos partes por cuestiones de espacio, recuerde
siempre que para guardar las reglas en el archivo de arranque puede hacerlo mediante el comando
service iptables save
Le recomendamos hacer una copia del archivo de configuración /etc/sysconfig/iptables antes de
efectuar cualquiera de estas operaciones, de tal forma que pueda recuperarlo en casos de corrupción del
mismo.
Si desea una referencia completa sobre el funcionamiento de iptables, le recomendamos consultar la
guía hecha por Xabier Altadill Izura que puede descargarse desde
http://www.pello.info/filez/firewall/IPTABLES.pdf
Carmen A. Puppo Fernandez
7
Descargar