Búsqueda de sitios web

Cómo explorar la configuración del firewall Shorewall en Linux


En mi artículo anterior, aprendimos la instalación de Shorewall, la configuración del archivo de configuración y la configuración del reenvío de puertos a través de NAT. En este artículo, profundizaremos en los errores comunes asociados con Shorewall, brindaremos soluciones y presentaremos sus opciones de línea de comandos.

Shorewall ofrece una amplia gama de comandos que se pueden ejecutar en la línea de comandos. Echar un vistazo al manshorewall debería darte mucho que ver, pero la primera tarea que vamos a realizar es comprobar nuestros archivos de configuración.

sudo shorewall check

Shorewall imprimirá una verificación de todos sus archivos de configuración y las opciones contenidas en ellos.

La salida se verá así.

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

La línea mágica que buscamos es la que está en la parte inferior que dice: “Configuración de Shorewall verificada”. Si recibe algún error, lo más probable es que se deba a que faltan módulos en la configuración de su kernel.

Le mostraré cómo resolver dos de los errores más comunes, pero le corresponde recompilar su kernel con todos los módulos necesarios si planea usar su máquina como firewall.

El primer error, y el más común, es el error sobre NAT.

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

Si ve algo parecido a esto, es probable que su Kernel actual no esté compilado con soporte para NAT. Esto es común con la mayoría de los Kernels listos para usar. Lea mi tutorial sobre "Cómo compilar un kernel de Debian" para comenzar.

Otro error común producido por la verificación es el error sobre iptables y logging.

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

Esto también es algo que puedes compilar en un nuevo Kernel, pero hay una solución rápida si quieres usar ULOG. ULOG es un mecanismo de registro diferente de syslog. Es muy facil de usar.

Para configurar esto, debe cambiar cada instancia de “info” a “ULOG” en todos sus archivos de configuración en /etc/shorewall. . El siguiente comando puede hacer eso por usted.

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

Después de eso, edite el archivo /etc/shorewall/shorewall.conf y configure la línea.

LOGFILE=

Hasta donde desea que se almacene su registro. El mío está en /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Ejecutar el siguiente comando nuevamente debería brindarle un buen estado de salud.

shorewall check

La interfaz de línea de comandos de Shorewall viene con muchas frases ingeniosas para los administradores de sistemas. Un comando utilizado con frecuencia, especialmente cuando se realizan numerosos cambios en el firewall, es guardar el estado de configuración actual para poder revertirlo si surge alguna complicación.

La sintaxis para esto es simple.

sudo shorewall save <filename>

Retroceder es igual de fácil:

sudo shorewall restore <filename>

Shorewall también se puede iniciar y configurar para utilizar un directorio de configuración alternativo. Puede especificar que este es el comando de inicio, pero querrá verificarlo primero.

sudo shorewall check <config-directory>

Si simplemente desea probar la configuración y, si funciona, iniciarla, puede especificar la opción de prueba.

sudo shorewall try <config-directory> [  ]

Shorewall es sólo una de las muchas soluciones de firewall sólidas disponibles en sistemas Linux. No importa en qué extremo del espectro de redes se encuentre, muchos lo encuentran simple y útil.

Este no es más que un pequeño comienzo, que puede ayudarle a seguir su camino sin profundizar demasiado en los conceptos de networking. Como siempre, investigue y eche un vistazo a las páginas de manual y otros recursos. La lista de correo de Shorewall es un lugar increíble, está actualizada y bien mantenida.