Uno de los inconvenientes que encontraba de Firestarter era que te obligaba a indicar por que interfaz/dispositivo de red teníamos acceso a Internet para configurar correctamente el Firewall. En mi portátil esto es un inconveniente dado que dispongo (como la gran mayoría) de tarjeta ethernet y tarjeta wireless, por tanto no siempre utilizo la misma para conectarme en las diferentes redes que trabajo.
Esta situación provocaba que tuviese que acordarme de cambiar manualmente la configuración de Firestarter. Sin embargo, ahora he encontrado una solución en el foro de Ubuntu. Se trata de crear un script que cambiará la configuración de Firestarter de forma automática cada vez que Network Manager se conecte a una red.
Creamos el fichero ‘/etc/NetworkManager/dispatcher.d/firestarter’ con el siguiente contenido (no es el mismo script que el del foro, lo he mejorado un poco para que cambie también valores del gconf):
#!/bin/sh -e # Script to dispatch NetworkManager events # # Runs firstarter with proper interface name when NetworkManager fiddles with interfaces. # if [ -z "$1" ]; then echo "$0: called with no interface" 1>&2 exit 1; fi # put interface name in quotes IFACE='"'$1'"' # extract currently set-up interface for firestarter from configuration file CONF_IFACE=`grep ^IF= /etc/firestarter/configuration | sed 's/IF=//'` # Run the right scripts case "$2" in up) # set interface in firestarter config file to $IFACE # start firestarter chmod +w /etc/firestarter/configuration # Internet interface sed -i "s/^IF=$CONF_IFACE/IF=$IFACE/" /etc/firestarter/configuration gconftool-2 --set -t string /apps/firestarter/firewall/ext_if $1 ## Optional # Disable NAT (Shared Internet connection) #sed -i "s/^NAT=\"on\"/NAT=\"off\"/" /etc/firestarter/configuration #gconftool-2 --set -t boolean /apps/firestarter/firewall/nat false #sed -i "s/^DHCP_SERVER=\"on\"/DHCP_SERVER=\"off\"/" /etc/firestarter/configuration #gconftool-2 --set -t boolean /apps/firestarter/firewall/dhcp/enable_server false chmod -w /etc/firestarter/configuration firestarter --start ;; down) # just stop firestarter, when interface is shut down firestarter --stop ;; esac
Y finalmente le damos permisos de ejecución:
chmod 755 /etc/NetworkManager/dispatcher.d/firestarter
Network Manager ejecuta todos los scripts del directorio ‘/etc/NetworkManager/dispatcher.d/’ cuando se conecta a una red y pasa como parámetros la interfaz o dispositivo de red que utiliza y si se ha conectado o desconectado.