LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Configurar un firewall en Linux puede ser muy abrumador para un novato o para alguien que no esté muy familiarizado con iptables. Afortunadamente, hay una solución muy fácil de usar en Shorewall.

En este tutorial de varias partes, lo ayudaré a comenzar con Shorewall y le guiaré a través de algunos temas más avanzados con este increíble sistema de firewall.

¿Qué es Shorewall?

Shorewall es esencialmente una interfaz para iptables, pero es una interfaz de entorno de línea de comandos que utiliza varios archivos de texto para su configuración. Si bien Shorewall es un sistema de firewall robusto que se puede escalar en redes muy grandes que dan servicio a numerosas máquinas, comenzaremos con una configuración básica de dos interfaces y definiremos los conceptos básicos.

Una configuración de dos interfaces consta de una máquina con dos puertos Ethernet, uno que entra y otro que sale a la red local.

Instalación de Shorewall en Linux

Shorewall se puede instalar usando las herramientas de administrador de paquetes apt-get y yum.

En Debian/Ubuntu/Linux Mint
$ sudo apt-get install shorewall6
En RHEL/CentOS/Fedora
$ sudo yum install shorewall6

Después de la instalación, necesitamos copiar una configuración de muestra del directorio “ /usr/share/doc/shorewall ” al directorio predeterminado de Shorewall “ /etc/shorewal l”.

$ sudo cp/usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall

Y luego cd a/etc/shorewall.

$ cd /etc/shorewall

Si echamos un vistazo a este directorio, vemos un montón de archivos y un archivo shorewall.conf. Shorewall ve la red como un grupo de zonas diferentes, por lo que el primer archivo que queremos ver es el archivo/etc/shorewall/zones ”.

Zonas

Aquí, vemos que hay tres zonas definidas por defecto: net, loc y all. Es importante tener en cuenta que Shorewall trata la máquina cortafuegos como su propia zona y la almacena en una variable llamada $FW. Verá esta variable en el resto de los archivos de configuración.

El archivo/etc/shorewall/zones ” se explica por sí mismo. Tiene net, la zona de red (interfaz de cara a Internet), la zona loc (interfaz de cara a LAN) y all, que es todo.

Política

Esta configuración renuncia a lo siguiente:

  1. Permite todas las solicitudes de conexión desde la zona loc ( LAN ) a la net ( Internet ).
  2. Elimina todas las solicitudes de conexión (ignora) de la zona de red al firewall y la LAN.
  3. Rechaza y registra todas las demás solicitudes.

El bit LOG LEVEL debería ser familiar para cualquiera que haya administrado con Apache, MySQL o cualquier otro número de otros programas FOSS. En este caso, le estamos diciendo a Shorewall que use el nivel de información de registro.

Si desea tener su firewall disponible para que lo administre desde su LAN, puede agregar las siguientes líneas a su archivo/etc/shorewall/policy ”.

#SOURCE		DEST	POLICY		LOG		LEVEL		LIMIT:BURST
loc			$FW		ACCEPT
$FW			loc		ACCEPT

Ahora que nuestras zonas y nuestra política están configuradas, tenemos que configurar nuestras interfaces. Para ello, edite el archivo “ /etc/shorewall/interfaces ”.

Interfaces

Aquí, hemos configurado nuestra interfaz de acceso a Internet como eth0 para la net. En nuestro lado LAN, hemos configurado la otra interfaz, eth1, en la zona loc. Ajuste este archivo para que se ajuste correctamente a su configuración.

Las diversas opciones que puede colocar para cualquiera de estas interfaces son amplias y se explican mejor en detalle en la página de manual.

$ man shorewall-interfaces

Un breve resumen de algunos de ellos es el siguiente:

  1. nosmurfs: filtra los paquetes con la dirección de transmisión como fuente.
  2. logmartians: registra los paquetes con una dirección de origen imposible.
  3. routefilter: filtrado de rutas del kernel para evitar la suplantación de identidad.

Por supuesto, ahora que nuestro sistema tiene un cortafuegos, necesitaremos que se permitan ciertas conexiones para poder hacer lo que tenemos que hacer. Usted los define en el archivo de reglas en "/etc/shorewall/rules ".

Reglas

Este archivo parece confuso al principio, principalmente porque las columnas se superponen, pero los encabezados se explican por sí mismos. Primero, tiene la columna ACCIÓN, que describe lo que desea realizar.

A continuación, tiene un encabezado SOURCE donde define la zona donde se origina el paquete. Luego, tiene su DEST, o destino, que es la zona o dirección IP del destino. Usemos un ejemplo.

Suponga que desea ejecutar un servidor SSH detrás de su firewall en la máquina con la dirección IP 192.168.1.25. No solo tendrá que abrir un puerto en su firewall, sino que también tendrá que decirle al firewall que cualquier tráfico que ingrese al puerto 22 debe enrutarse a la máquina en 192.168.1.25.

Esto se conoce como reenvío de puertos. Es una característica común en la mayoría de los cortafuegos/enrutadores. En " /etc/shorewall/rules ", lograría esto agregando una línea como esta:

SSH(DNAT)	net		loc:192.168.1.25

Reenvío de puertos SSH

Arriba, hemos definido que cualquier paquete destinado a SSH proveniente de la zona de red al firewall debe ser enrutado ( DNAT ) al puerto 22 en la máquina con la dirección 192.168.1.25.

Esto se denomina traducción de direcciones de red o NAT. La "D" simplemente le dice a Shorewall que se trata de un NAT para una dirección de destino.

Para que esto funcione, debe tener habilitado el soporte NAT en su kernel. Si necesita NAT y no lo tiene, consulte mi tutorial sobre la recompilación de un núcleo de Debian.

Enlaces de referencia

Página de inicio de Shorewall

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Formulario de acceso

Filtro por Categorías