En muchas ocasiones nos hemos encontrado con nuestro Internet lento, nuestros archivos infectados de virus, hasta incluso con el robo de información confidencial, todo esto y más puede suceder si dejamos la puerta abierta a los cybercriminales, claro la puerta de la que estamos hablando se llama firewall, por eso aquí explicaré como configurar nuestro muro de defensa ante las amenazas del Internet.
Objetivo.
Para proteger nuestra red de los ataques de hackers, virus, y cybercriminales y más, en linux contamos con una herramienta poderosa llamada Netfilter (iptables), ésta se encarga de dar paso a las conexiones que nosotros hayamos configurado como seguras, prácticamente el chaleco antibalas de nuestra red, aquí lo haremos con Shorewall.
Que es Shorewall?
Shorewall es una herramienta de alto nivel para configurar netfilter, el cual utiliza una serie de archivos donde especificamos nuestra configuración en pocas lineas. Shorewall convierte e integra nuestra configuración en las reglas iptables, lo recomiendo para implementar firewall complejo y en redes de entornos cambiantes.
Requerimientos.
Shorewall (version actual 4.4) para centos 5.6 como es nuestro caso podemos descargarlo desde Aquí
Gráfica de apreciación.
Manos a la obra.
Paso 1
Una vez descargado el archivo en modo gráfico lo podemos instalar dando doble clic, en la consola tipiamos lo siguiente:
#rpm -ivh shorewall-4.4.15.3-1.noarch.rpm
Nota: Para editar los archivos Utilizaremos el comando vi
i = insertar texto
Esc = detener edición
:wq = guardar los cambios
:q! = salir sin guardar cambios
Paso 2
Modificamos el archivo shorewall.conf ubicado dentro de /etc/shorewall/ buscamos el parametro STARTUP_ENABLE y cambiamos el valor por yes
#vi /etc/shorewall/shorewall.conf
STARTUP_ENABLED=Yes
Paso 3
Modificamos el archivo zones ubicado dentro de /etc/shorewall/ en este fichero definimos las zonas con las que trabajará shorewall (firewall, ipv4) de forma predeterminada encontraremos la zonal (fw) como firewall, aqui definiremos (net) para internet y (loc) para la red interna.
#vi /etc/shorewall/zones
# Shorewall version 4 - Zones File
#
# For information about this file, type "man shorewall-zones"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-zones.html
#
###########################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
loc ipv4
net ipv4
Paso 4
Modificamos el archivo interfaces ubicado dentro de /etc/shorewall/ en este archivo definiremos las interfaces que trabajaran para internet y para la red interna. En caso de haber el servicio DHCP como cliente, servidor o intermediario, se debe especificar aquí.
#vi /etc/shorewall/interfaces
#
# Shorewall version 4 - Interfaces File
#
# For information about entries in this file, type "man shorewall-interfaces"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-interfaces.html
#
#############################################################
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect dhcp
loc eth1 detect dhcp
1era Linea: La zona net (internet) va a estar en la eth0 se calcula la dirección de transmisión de forma automática y puede trabajar con DHCP.
2da Linea: La zona loc (red interna) va a estar en la eth1 se calcula la dirección de transmisión de forma automática y puede trabajar con DHCP.
Paso 5
Modificamos el archivo policy ubicado dentro de /etc/shorewall/ en este archivo definiremos las políticas principales de acceso y bloqueo, se recomienda la siguiente configuración donde nuestro firewall tiene acceso a la internet y la red local y el resto esta bloqueado:
#vi /etc/shorewall/policy
#
# Shorewall version 4 - Policy File
#
# For information about entries in this file, type "man shorewall-policy"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-policy.html
#
#########################################################
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
# LEVEL BURST MASK
fw net ACCEPT
fw loc ACCEPT
all all DROP
Paso 6
Modificamos el archivo masq ubicado dentro de /etc/shorewall/ en este fichero definiremos el enmascaramiento, es decir para que las consultas salgan a través de la única ip del firewall y viseversa.
#vi /etc/shorewall/masq
#
# Shorewall version 4 - Masq file
#
# For information about entries in this file, type "man shorewall-masq"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-masq.html
#
#######################################################
#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK USER/
# GROUP
eth0 0.0.0.0/0
Paso 7
Modificamos el archivo rules ubicado dentro de /etc/shorewall/ en este fichero definiremos las reglas según nuestro requerimiento, en el siguiente ejemplo:
Las reglas del firewall nos permiten realizar consultas dns y navegar a través del proxy.
En la red interna pueden hacer ping hacia el internet, consultas dns, conectarse a un correo externo por el puerto 25 y 110, consultas https (web seguras) y navegar a través del proxy por el puerto 3128.
#vi /etc/shorewall/rules
#
# Shorewall version 4 - Rules File
#
# For information on the settings in this file, type "man shorewall-rules"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-rules.html
#
#########################################################
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)
#Reglas del equipo Firewall (localhost)
ACCEPT fw fw udp 53
ACCEPT fw fw tcp 3128
#Reglas Red interna
ACCEPT loc net icmp
ACCEPT loc fw udp 53
ACCEPT loc net tcp 25,110,443
ACCEPT loc fw tcp 3128
#SECTION ESTABLISHED
#SECTION RELATED
#SECTION NEW
Si necesita dar paso a una ip en especial agrega :x.x.x.x donde las (x) es la direccion ip especifica ejemplo:
#Reglas Red interna y externa
ACCEPT loc:192.168.0.5 net tcp 9000
ACCEPT net:186.68.158.89 fw tcp 80
Interpretación:
1era línea: Desde la red local la ip 192.168.0.5 tiene salida al Internet por el protocolo tcp al puerto 9000.
2da Línea: Desde el Internet la ip 186.68.158.89 puede acceder al firewall en el protocolo tcp al puerto 80
1era línea: Desde la red local la ip 192.168.0.5 tiene salida al Internet por el protocolo tcp al puerto 9000.
2da Línea: Desde el Internet la ip 186.68.158.89 puede acceder al firewall en el protocolo tcp al puerto 80
o a su ves rangos de ips ejemplo:
#Reglas Red interna
ACCEPT loc:192.168.0.5-192.168.0.10 net 9000
Interpretación:
Desde la red local las 192.168.0.5 hasta la 192.168.0.10 pueden acceder al Internet al puerto 9000
Paso 8
Desde la red local las 192.168.0.5 hasta la 192.168.0.10 pueden acceder al Internet al puerto 9000
Si necesita trabajar con proxy transparente puede agregar la siguiente Linea.
#Redireccionamos hacia el Puerto del proxy (squid)
REDIRECT loc 3128 tcp 80,8080
Paso 8
Iniciamos el servicio shorewall
#service shorewall start
Desactivamos iptables y activamos a shorewall en el incio automático
#chkconfig iptables off
#chkconfig shorewall on
No se preocupe que shorewall se encarga de levantar a iptables.
Para reiniciar el servicio utilice
Para reiniciar el servicio utilice
#service shorewall restart
Listo tu red esta protegida.
Excelente POST Sucre, siga así, me ha ayudado montón a configurar un Firewall en Quito! Publiquese un articulo de OpenVPN
ResponderEliminarQue buen Post
ResponderEliminaruna cuestion cuales son los puertos que abres para aplicaciones espesificas
para la conexion desde la red lan a un servidor fuera y al puerto 5000 por ejemplo
Estimado Manuel,
ResponderEliminarPara abrir un puerto especifico en tu caso mensionas el puerto 5000, tendrías que editar el archivo "rules" y agregar lo siguiente:
ACCEPT loc net tcp 5000 #(en caso de ser protocolo TCP)
ACCEPT loc net udp 5000 #(en caso de ser protocolo UDP)
Si deseas identificar que puerto utiliza una aplicación puedes usar "Wireshark" que es muy bueno para identificar los puertos que estan siendo solicitados.
Espero haber ayudado. Saludos,
No olvidar poner la siguiente linea para slinux deje trabajar el shorewall
ResponderEliminarchcon -t bin_t /usr/lib/shorewall/getparams
Buenas tardes, amigo una consulta.. tengo un proxy squid instalado en Centos 6, me funciona perfectamente, además instalé el shorewall y el problema que tengo es que no puedo recibir ni enviar los correos corporativos de la empresa, me indica que no se puede encontrar el servidor de correo electrónico. Seguí los pasos de tu post, podrías ayudarme. Gracias de antemano.
ResponderEliminar