Configuracion de Shorewall en Centos 6
Antecedentes.
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.5) para centos 6, son 2 archivos (shorewall-4.5* y shorewall-core-4.5) 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 o en la consola tipiamos lo siguiente:
Nota: Para editar los archivos Utilizaremos el comando vi
i = insertar texto o editar
Esc = detener edición
:wq = guardar los cambios y salir, tambien podemos usar :x
: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
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.
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í.
Nota: En algunas versiones nuevas de shorewall el BROADCAST viene por defecto y puede que no esté en el archivo de configuración, no se preocupen no es necesario colocarlo.
Interpretación:
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:
Interpretacion:
Aqui estamos indicando que nuestro equipo firewall tenga acceso a todo, en la segunda linea le indicamos que rechace de todo a todo e informe lo rechazado en el log, en la tercera linea indicamos que bloquee del interner hacia todos y también informe en el log lo bloqueado.
Ustedes se preguntarán porque estan estas reglas así, como veran el shorewall lee las reglas de abajo hacia arriba, así que se ejecutará primero la ultima linea y subirá hasta terminar con la primera, por lo tanto nuesto firewall quedará con politica que solo el tenga acceso a todo lo demas bloqueado y rechazado. Mas adelante agregaremos reglas especificas para nuestra red interna.
Nota: La información de bloqueos que nos arroje el shorewall la podremos observar en el archivo messages, con el siguiente comando para ver en vivo:
#tail -f /var/log/messages | grep Shorewall
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.
Nota: en 0.0.0.0/0 también pueden poner solo la red local de ustedes ejemplo: 192.168.1.0/24
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:
Si necesita dar paso a una ip en especial agrega :x.x.x.x donde las (x) es la direccion ip especifica ejemplo:
Nota: Por cuestiones del blog las lineas se verán separadas pero son 3 líneas desde el #
Iniciamos el servicio shorewall
Cualquier duda por favor deja tu comentario, si necesitas ayuda con otro tema de igual forma coméntalo.
Espero te haya se servido de mucho, si está a tu alcance te agradeceré enormemente que le des clic a cualquier anuncio en esta página o una contribución en donar para seguir publicando.
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.5) para centos 6, son 2 archivos (shorewall-4.5* y shorewall-core-4.5) 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 o en la consola tipiamos lo siguiente:
#rpm -ivh shorewall-4.5.16.1-1.el6.noarch.rpm
#rpm -ivh shorewall-core-4.5.16.1-1.el6.noarch.rpm
#rpm -ivh shorewall-core-4.5.16.1-1.el6.noarch.rpm
Nota: Para editar los archivos Utilizaremos el comando vi
i = insertar texto o editar
Esc = detener edición
:wq = guardar los cambios y salir, tambien podemos usar :x
: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
Nota: En algunas versiones nuevas de shorewall el BROADCAST viene por defecto y puede que no esté en el archivo de configuración, no se preocupen no es necesario colocarlo.
Interpretación:
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 all ACCEPT
all all REJECT info
net all DROP info
net all DROP info
Interpretacion:
Aqui estamos indicando que nuestro equipo firewall tenga acceso a todo, en la segunda linea le indicamos que rechace de todo a todo e informe lo rechazado en el log, en la tercera linea indicamos que bloquee del interner hacia todos y también informe en el log lo bloqueado.
Ustedes se preguntarán porque estan estas reglas así, como veran el shorewall lee las reglas de abajo hacia arriba, así que se ejecutará primero la ultima linea y subirá hasta terminar con la primera, por lo tanto nuesto firewall quedará con politica que solo el tenga acceso a todo lo demas bloqueado y rechazado. Mas adelante agregaremos reglas especificas para nuestra red interna.
Nota: La información de bloqueos que nos arroje el shorewall la podremos observar en el archivo messages, con el siguiente comando para ver en vivo:
#tail -f /var/log/messages | grep Shorewall
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
Nota: en 0.0.0.0/0 también pueden poner solo la red local de ustedes ejemplo: 192.168.1.0/24
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
Permitimos acceso del SeLinux
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
Nota: recordar que en este archivo las reglas se ejecutan de abajo hacia arriba, por lo tanto si deseamos bloquear o permitir acceso en un futuro, la regla debe ser insertada arriba de las anteriores.
Paso 8
Permitimos acceso del SeLinux
#restorecon
-Rv /sbin
#restorecon
reset /sbin/iptables-multi-1.4.7 context
system_u:object_r:bin_t:s0->system_u:object_r:iptables_exec_t:s0
#restorecon
reset /sbin/ip6tables-multi-1.4.7 context
system_u:object_r:bin_t:s0->system_u:object_r:iptables_exec_t:s0
Nota: Por cuestiones del blog las lineas se verán separadas pero son 3 líneas desde el #
Iniciamos el servicio shorewall
#service shorewall start
Desactivamos iptables y activamos a shorewall en el incio automático
#chkconfig iptables off
#chkconfig ip6tables off
#chkconfig ip6tables 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.
Cualquier duda por favor deja tu comentario, si necesitas ayuda con otro tema de igual forma coméntalo.
Espero te haya se servido de mucho, si está a tu alcance te agradeceré enormemente que le des clic a cualquier anuncio en esta página o una contribución en donar para seguir publicando.
muy fino, me sirvió de mucho
ResponderEliminarSaludos!!
Gracias por tu comentario, nuevamente estaré retomando este blog para publicar más.
Eliminar