Shopping Cart

No hay productos en el carrito.

Sophos Firewall – Ejecutar script sin cronjob

Este artículo trata sobre cómo ejecutar un script en un Sophos Firewall sin utilizar un cronjob, ya que el Sophos Firewall no te permite crear un cronjob.

¿Por qué ejecutar un script en el Sophos Firewall?

En determinadas situaciones, puede ser necesario ejecutar un script personalizado en el Sophos Firewall. Se puede utilizar, por ejemplo, para personalizar la configuración de la red, enviar regularmente señales de latido a los servicios de supervisión o cambiar las reglas del cortafuegos. A menudo, esta funcionalidad debe conservarse incluso después de reiniciar el cortafuegos, lo que significa que hay que ajustar la configuración por defecto del Sophos Firewall.

Activar permisos de escritura para el sistema de archivos


Por defecto, el sistema de archivos de Sophos Firewall está protegido contra escritura. Para hacer cambios en los scripts, primero hay que montarlo con permisos de escritura:

mount -no remount,rw /

Crear o editar script


A continuación, puedes crear un script o editar uno existente. En este ejemplo, se crea un script definido por el usuario que establece ciertas reglas de red:

vi /scripts/system/clientpref/customization_application_startup.sh


Añade el siguiente contenido:

#!/bin/sh
iptables -t mangle -D POSTROUTING -d 172.19.0.0/16 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 900
exit 0;


Este comando elimina una regla existente y establece una nueva para fijar el tamaño máximo de segmento (MSS) para las conexiones TCP en 900 bytes.

#!/usr/bin/expect -f
spawn ssh <Sophos Firewall IP> -l admin
expect "password:"
send "<Admin Password>\r"
expect "Select Menu Number \\\[0-7\\\]:"
send "7\r"
expect "Shutdown(S/s) or Reboot(R/r) Device  (S/s/R/r):  No (Enter) >"
send "r\r"
expect eof
exit

Este comando garantiza que el Sophos Firewall se reinicie cada noche.

Guarda los cambios y vuelve a proteger contra escritura el sistema de archivos


Una vez editado el script, hay que guardar los cambios y reactivar la protección contra escritura del sistema de archivos:

mount -no remount,ro /

Para garantizar que el script también se ejecuta tras un reinicio del cortafuegos, debe integrarse en el procedimiento de inicio del cortafuegos. El script previamente editado (customisation_application_startup.sh) se ejecuta cada vez que se inicia el cortafuegos y garantiza que se aplican los ajustes deseados.

Ejemplo de script de latido

Si es necesario enviar un latido a un servicio de monitorización como Uptimerobot, puedes utilizar el siguiente ejemplo:

1. crea un nuevo script:

touch /var/script.sh


2. edita el script:

vi /var/script.sh

3. Añade tu contenido, aquí tienes un ejemplo:

#!/bin/sh
while [ 1 ];
do
curl --insecure https://heartbeat.uptimerobot.com/xxxxxxx-20cf67c87a3c0a318820d201f19483e06c99c9f7 >/dev/null 2>&1
sleep 60 ;
done

4. haz que el script sea ejecutable:

chmod 755 /var/script.sh

5. Ejecuta el script:

/var/script.sh >> /dev/null 2>&1 &


6. para ejecutar el script automáticamente incluso después de un reinicio, añade la siguiente línea al archivo customisation_application_startup.sh:

/var/script.sh >> /dev/null 2>&1 &

Notas importantes

  • Cluster de Alta Disponibilidad (HA): Cuando se utiliza un cluster de HA, el script debe aplicarse a ambos nodos.
  • Persistencia mediante reinicios: Si el script se va a ejecutar cada vez que se reinicie el cortafuegos, se deben llevar a cabo los pasos descritos para la integración en el procedimiento de inicio.
  • Riesgos: Hay que tener cuidado al hacer cambios en los scripts de inicio del cortafuegos, ya que una configuración incorrecta puede perjudicar la funcionalidad del cortafuegos.