.png)
Eu tenho um /etc/init.d/iptables start|stop|restart
script em diferentes servidores Ubuntu (que é um script de shell normal)
Para cada novo serviço tenho que editar e inserir uma linha para abrir uma porta. Isso leva a muitas versões diferentes do script init.d em máquinas diferentes.
É possível incluir automaticamente, digamos, todos os arquivos /etc/iptables/include.d/
?
A meta é que haja apenas uma linha nocomeçarfunção de /etc/init.d/iptables como
include /etc/iptables/include.d/*
E depois de um arquivo adicional /etc/iptables/include.d/
eu simplesmente diria
/etc/init.d/iptables restart
Editar:Como Saurabh apontou, isso pode levar a problemas quando os comandos precisam de uma determinada ordem. Uma configuração avançada pode ter diretórios diferentes, como:
/etc/iptables/include01.d/
/etc/iptables/include02.d/
/etc/iptables/include03.d/
e incluí-los assim:
inclua /etc/iptables/include01.d/* ... talvez algum código esteja aqui no arquivo principal... inclua /etc/iptables/include02.d/* inclua /etc/iptables/include03.d/*
Responder1
Adicione a seguinte linha ao seu script init.d.
run-parts --report /etc/iptables/include.d
Ele executará tudo no diretório como um script de shell (precisa ser executável).
Se você deseja executar apenas arquivos que terminam com .port, você pode usar algo como:
run-parts --regex '\.port$' /etc/iptables/include.d/
Se quiser ter certeza de que a ordem está correta, você pode nomear os arquivos:
10_web.port
20_ssh.port
etc..
Responder2
for f in /etc/iptables/include.d/*
. $f
done
observe o espaço entre o ponto e% f
Saurabh está certo - isso não funcionará necessariamente como você pretende, mas use alguma convenção de nomenclatura, por exemplo, 10-xxx, 20-yyy e assim por diante, e pode ser administrável.
Responder3
Você pode definir funções simples no bash:
function include() {
for FILE in $( find "$1" -type f -print | sort )
do
source $FILE
done
}
e então:
include some_dir/*
ou mesmo:
include some_dir/*.conf
Responder4
Eu não acho que você possa incluir arquivos na configuração do iptables. A escolha faz sentido, pois as regras de firewall dependem muito da ordem em que são escritas. Se incluirmos apenas os arquivos na pasta, o iptables não saberá quais regras colocar primeiro e quais depois.