LinuxParty
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:
- Permite todas las solicitudes de conexión desde la zona loc ( LAN ) a la net ( Internet ).
- Elimina todas las solicitudes de conexión (ignora) de la zona de red al firewall y la LAN.
- 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:
- nosmurfs: filtra los paquetes con la dirección de transmisión como fuente.
- logmartians: registra los paquetes con una dirección de origen imposible.
- 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
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros