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.