Documentos de Académico
Documentos de Profesional
Documentos de Cultura
© 1999-2014 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras deriv adas bajo las
condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su
publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transf orma esta obra o genera una obra
deriv ada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los
términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de
autor. Los derechos deriv ados de usos legítimos u otras limitaciones no se v en af ectados por lo anterior. Licencia completa en castellano. La
inf ormación contenida en este documento y los deriv ados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad
alguna si el usuario o lector hace mal uso de éstos.
Introducción.
Acerca de Shorewall.
Shorewall (Shoreline Firewall) es una robusta y extensible herramienta de alto nivel para la
configuración de muros cortafuego. Shorewall sólo necesita se definan algunos datos en
algunos archivos de texto simple y éste creará las reglas de cortafuegos correspondientes a
través de iptables. Shorewall puede permitir utilizar un sistema como muro cortafuegos
dedicado, sistema de múltiples funciones como puerta de enlace, dispositivo de
encaminamiento y servidor.
URL: http://www.shorewall.net/
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 1/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
URL: http://www.netfilter.org/
Acerca de iproute.
Iproute es una colección de herramientas (ifcfg, ip, rtmon y tc) para GNU/Linux que se utilizan
para controlar el establecimiento de la red TCP/IP, así como también el control de tráfico. Aunque
ifconfig sigue siendo una popular herramienta de configuración, iproute lo ha dejado obsoleto al
proveer soporte para la mayoría de las tecnologías modernas de red (incluyendo IP versiones 4 y
6), permitiendo a los administradores configurar los parámetros de red y el control de tráfico.
URL: http://linux-net.osdl.org/index.php/Iproute2
Conceptos requeridos.
¿Qué es una zona desmilitarizada?
Una zona desmilitarizada (DMZ), es parte de una red que no está dentro de la red interna (LAN)
pero tampoco está directamente conectada hacia Internet. Podría resumirse como una red que se
localiza entre dos redes. En términos más técnicos se refiere a un área dentro del cortafuegos
donde los sistemas que la componen tienen acceso hacia las redes interna y externa, sin
embargo no tienen acceso completo hacia la red interna y tampoco acceso completamente
abierto hacia la red externa. Los cortafuegos y dispositivos de encaminamiento (routers) protegen
esta zona con funcionalidades de filtrado de tráfico de red.
direcciones IP reservadas para Redes Privadas dentro de los rangos 10.0.0.0/8 (desde 10.0.0.0
hasta 10.255.255.255), 172.16.0.0/12 (desde 172.16.0.0 hasta 172.31.255.255) y
192.168.0.0/16 (desde 192.168.0.0 hasta 192.168.255.255).
¿Qué es un NAT?
NAT (acrónimo de Network Address Translation o Traducción de dirección de red), también
conocido como enmascaramiento de IP, es una técnica mediante la cual las direcciones de
origen y/o destino de paquetes IP son reescritas mientras pasan a través de un dispositivo de
encaminamiento (router) o muro cortafuegos. Se utiliza para permitir a múltiples anfitriones en una
Red Privada con direcciones IP para Red Privada para acceder hacia Internet utilizando una
única dirección IP pública.
¿Qué es un DNAT?
Si dispone de un servidor con CentOS o Red Hat™ Enterprise Linux puede utilizar el el
almacén YUM de Alcance Libre ejecutando lo siguiente:
cd /etc/yum.repos.d/
wget -N http://www.alcancelibre.org/al/server/AL-Server.repo
cd
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 3/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
Procedimientos.
Este documento asume que se han estudiado y aplicado los temas descritos en los documentos
titulados «Ajustes posteriores a la instalación de CentOS 6» y «Configuración de red en
GNU/Linux».
Shorewall y SELinux.
mkdir /usr/share/selinux/packages/shorewall
cd /usr/share/selinux/packages/shorewall
wget http://www.alcancelibre.org/linux/secrets/shorewall.te
vi shorewall.te
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 4/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
require {
type shorewall_t;
type usr_t;
type sysfs_t;
class file { execute execute_no_trans };
class dir search;
class dir getattr;
}
semodule -i /usr/share/selinux/packages/shorewall/shorewall.pp
cd
vi /etc/sysctl.conf
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 5/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
sysctl -p
Lo anterior devolverá como salida algo similar a lo siguiente, donde deberá mostrarse que se ha
aplicado net.ipv4.ip_forward con el valor 1:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
Si se carece de interfaces de red configuradas con IPv6, es normal e inofensivo se muestren los
tres errores mostrados arriba.
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 6/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
cortafuegos.
/etc/shorewall/interfaces: Se utiliza para definir cuáles dispositivos de red
corresponden a una zona del muro cortafuegos en particular y las opciones
que se requieran para cada una de éstas.
/etc/shorewall/masq: Se utiliza para definir cuáles dispositivos utilizar para
los enmascaramientos de direcciones IP.
/etc/shorewall/policy: Se utiliza para definir las políticas predeterminadas
para cada zona del muro cortafuegos respecto de las demás zonas.
/etc/shorewall/rules: Se utiliza para definir las reglas para apertura de
puertos.
/etc/shorewall/blacklist: Se utiliza para definir las direcciones IP o bloques
de direcciones IP que se desea poner en lista negra.
Shorewall viene inactivo de modo predeterminado. Para activar el servicio edite el archivo
/etc/shorewall/shorewall.conf:
vi /etc/shorewall/shorewall.conf
STARTUP_ENABLED=No
STARTUP_ENABLED=Yes
Se requiere definir cuáles zonas serán gestionadas en el muro cortafuegos. Edite el archivo
/etc/shorewall/zones:
vi /etc/shorewall/zones
fw firewall
Si dispone de un único dispositivo de red sólo podrá definir una zona (net) tipo ipv4:
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 7/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
fw firewall
net ipv4
Si dispone de dos dispositivos de red, puede especificar una segunda zona (loc) tipo ipv4, la
cual puede ser utilizada para acceder desde la red de área local:
fw firewall
net ipv4
loc ipv4
Si dispone de tres dispositivos de red, puede especificar una tercera zona (dmz) tipo ipv4, la
cual puede ser utilizada para acceder desde la zona des-militarizada:
fw firewall
net ipv4
loc ipv4
dmz ipv4
Una vez definidas la zonas a utilizar en el muro cortafuegos, se debe definir que dispositivos de
red corresponden a cada zona del muro cortafuegos. Edite el archivo /etc/shorewall/interfaces:
vi /etc/shorewall/interfaces
Si dispone de un único dispositivo de red defina el nombre del dispositivo de red a utilizar, auto-
detección de la dirección de difusión (broadcast) y las opción blacklist para utilizar la lista negra
de Shorewall y la opción dhcp. Esta última opción sólo es necesaria si en la interfaz habrá un
cliente o servidor DHCP. El nombre del dispositivo de red puede ser eth0, eth1, p1p1, p2p1, em1,
em2, etc., dependiendo de la versión de SMBIOS:
Si dispone de un segundo dispositivo de red puede asociar éste a la segunda zona del muro
cortafuegos (loc). Igualmente defina que se auto-detecte la dirección de difusión y las opciones
blacklist y dhcp si las considera necesarias.
Si dispone de un tercer dispositivo de red puede asociar éste a la tercera zona del muro
cortafuegos (dmz). Igualmente defina que se auto-detecte la dirección de difusión y las opciones
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 8/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
blacklist y dhcp si las considera necesarias. Por lo general las zonas des-militarizadas
prescinden de servidores DHCP por tratarse de redes designadas para alojar otros servidores
con dirección IP estática.
vi /etc/shorewall/masq
Si dispone de dos dispositivos de red, defina en la primera columna el dispositivo utilizado para
la zona correspondiente a la red pública (net) y en la segunda columna el dispositivo utilizado por
la zona correspondiente a la red de área local (loc):
eth0 eth1
Si dispone de tres dispositivos de red, añada otra línea donde se defina en la primera columna el
dispositivo utilizado para la zona correspondiente a la red pública (net) y en la segunda columna
el dispositivo utilizado por la zona correspondiente a la zona des-militarizada (dmz):
eth0 eth1
eth0 eth2
vi /etc/shorewall/policy
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 9/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
Si dispone de un sólo dispositivo de red defina sólo dos políticas. Una que permita al muro
cortafuegos comunicarse a cualquier parte y otra que descarte cualquier paquete proveniente de
la zona de red pública (net) y se guarde bitácora de la actividad generada y etiquetada con
DROP:
fw all ACCEPT
net all DROP info
Si dispone de dos dispositivos de red añada una tercera política que rechace todos los paquetes
provenientes desde la zona correspondiente a la red de área local (loc) y se guarde bitácora de
la actividad generada y etiquetada con REJECT:
fw all ACCEPT
net all DROP info
loc all REJECT info
Si dispone de tres dispositivos de red añada una cuarta política que rechace todos los paquetes
provenientes desde la zona correspondiente a la zona des-militarizada (dmz) y se guarde
bitácora de la actividad generada y etiquetada con REJECT:
fw all ACCEPT
net all DROP info
loc all REJECT info
dmz all REJECT info
vi /etc/shorewall/rules
Debajo de SECTION NEW defina una regla que permita el acceso hacia el servicio de SSH
(puerto 22/TCP) desde cualquier zona del muro cortafuegos:
SECTION NEW
ACCEPT all fw tcp 22
Si requiere habilitar más puertos, puede hacerlo añadiendo líneas similares especificando el
protocolo utilizado y el puerto o los puertos requeridos. En el siguiente ejemplo se habilitan los
puertos para FTP, HTTP, HTTPS y el rango de puertos para conexiones pasivas para el servicio
de FTP.
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 10/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
SECTION NEW
ACCEPT all fw tcp 22
ACCEPT all fw tcp 20,21,80,443,30300:30309
Defina una regla que permita hacer pings (puerto 8/ICMP) hacia el muro cortafuegos desde
cualquier zona del muro cortafuegos, sin importar el puerto de origen, sin importar la dirección IP
de destino y limitando a una tasa de 10 conexiones por segundo con ráfagas de 5:
SECTION NEW
ACCEPT all fw tcp 22
ACCEPT all fw tcp 20,21,80,443,30300:30309
ACCEPT all fw icmp 8 - - 10/sec:5
Si dispone de dos dispositivos de red, puede habilitar la salida desde la zona correspondiente a
la red de área local (loc) hacia diversos puertos en la zona correspondiente a la red pública (net).
En el siguiente ejemplo se habilita la salida para los puertos 20 (ftp-data), 21 (ftp), 22 (ssh), 25
(smtp), 43 (whois), 53 (dns), 63 (whois++), 80 (http), 110 (pop3), 123 (ntp), 143 (imap), 443 (https),
465 (smtps), 587 (submission), 993 (imaps) y 995 (pop3s) por TCP, los puertos 43 (whois), 53
(dns), 63 (whois++) y 123 (ntp) por UDP y los pings (puerto 8 por ICMP) limitado a una tasa de 20
conexiones por segundo con ráfagas de 10:
SECTION NEW
ACCEPT all fw tcp 22
ACCEPT all fw tcp 20,21,80,443,30300:30309
ACCEPT all fw icmp 8 - - 10/sec:5
ACCEPT loc net tcp 20,21,80,443
ACCEPT loc net tcp 25,110,143,465,587,993,995
ACCEPT loc net tcp 43,53,63,123
ACCEPT loc net udp 43,53,63,123
ACCEPT loc net icmp 8 - - 20/sec:10
Si dispone de tres dispositivos de red, puede habilitar la salida desde la zona correspondiente a
la zona des-militarizada (dmz) hacia diversos puertos en la zona correspondiente a la red pública
(net). En el siguiente ejemplo se habilita la salida para los puertos 20 (ftp-data), 21 (ftp), 22 (ssh),
25 (smtp), 43 (whois), 53 (dns), 63 (whois++), 80 (http), 110 (pop3), 123 (ntp), 143 (imap), 443
(https), 465 (smtps), 587 (submission), 993 (imaps) y 995 (pop3s) por TCP, los puertos 43
(whois), 53 (dns), 63 (whois++) y 123 (ntp) por UDP y los pings (puerto 8 por ICMP) limitado a una
tasa de 20 conexiones por segundo con ráfagas de 10:
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 11/13
8/8/2014 Alcance Libre - Configuración básica de Shorewall.
SECTION NEW
ACCEPT all fw tcp 22
ACCEPT all fw tcp 20,21,80,443,30300:30309
ACCEPT all fw icmp 8 - - 10/sec:5
ACCEPT loc net tcp 20,21,80,443
ACCEPT loc net tcp 25,110,143,465,587,993,995
ACCEPT loc net tcp 43,53,63,123
ACCEPT loc net udp 43,53,63,123
ACCEPT loc net icmp 8 - - 20/sec:10
ACCEPT dmz net tcp 20,21,80,443
ACCEPT dmz net tcp 25,110,143,465,587,993,995
ACCEPT dmz net tcp 43,53,63,123
ACCEPT dmz net udp 43,53,63,123
ACCEPT dmz net icmp 8 - - 20/sec:10
vi /etc/shorewall/blacklist
41.0.0.0/8
196.0.0.0/8
154.0.0.0/8
197.0.0.0/8
92.241.160.0/19
91.144.176.0/22
212.191.0.0/17
79.171.80.0/21
Si falla al iniciar, significa que hubo errores de sintaxis en cualquiera de los archivos editados.
Revise el contenido de la bitácora de inicio de Shorewall ejecutando lo siguiente:
Para reiniciar el servicio shorewall o bien hacer que los cambios hechos a la configuración
surtan efecto, ejecute lo siguiente:
Para hacer que el servicio de shorewall quede nuevamente activo con el siguiente inicio del
sistema, ejecute lo siguiente:
chkconfig shorewall on
http://www.alcancelibre.org/staticpages/index.php/configuracion-basica-shorewall/print 13/13