O script de firewall "avançado" é um script de shell que deve ser executado depois que as interfaces interna e externa estiverem ativas.
Primeiro, coloque o script em algum lugar, diga /etc/init.d/local/my_firewall_script
, torne-o executável e adicione #!/bin/sh
como a primeira linha do arquivo de script.
Em seguida, você precisa organizar o script para ser executado após as duas interfaces estarem ativas. Você tem duas opções:
-
por meio do upstart. Isso tem minha preferência porque o script deve ser executado quando as duas interfaces estiverem ativas. Crie um arquivo
/etc/init/my_firewall.conf
contendo algo assim:description "My firewall script" start on (net-device-up IFACE=br0 and net-device-up IFACE=eth0) console output pre-start exec /etc/init.d/local/my_firewall_script
Isto é completamente não testado, e eu não tenho experiência zero, então você pode precisar adaptar o arquivo. Além disso, há um bug relacionado ao evento net-device-up que pode afetá-lo.
-
através de scripts ifup. Isso é um pouco difícil, porque o script deve ser executado quando a segunda interface aparecer. Crie um arquivo
/etc/network/if-up.d/my_firewall
contendo algo parecido com isto (unstested):#!/bin/sh if [ "$IFACE" = "br0" ] || [ "$IFACE" = "eth0" ]; then if [ -n "$(ip addr show br0 | grep '^ *inet ')" ] 2>/dev/null && [ -n "$(ip addr show eth0 | grep '^ *inet ')" ] 2>/dev/null; then /etc/init.d/local/my_firewall_script fi fi
Se houvesse uma única interface, ou se houvesse uma garantia de que uma das interfaces surgisse depois da outra, este método seria mais simples e preferido: o script seria (supondo que a interface única ou última seja
eth0
):#!/bin/sh if [ "$IFACE" = "et0" ]; then /etc/init.d/local/my_firewall_script fi
Observe que o script fornecido é bastante específico para uma configuração específica - é um exemplo de um script relativamente avançado. Você terá que adaptá-lo à sua configuração, pelo menos os intervalos de endereços IP e, provavelmente, o nome das interfaces.
Depois de encontrar um método que funcione, sugiro que escreva uma descrição de como você o fez na página da wiki.