Debian 8 - Atualizar o Iptables na inicialização

4

Estou no processo de portar o meu "configure openvpn server" do ubuntu 14 para o debian 8. Até agora funciona bem, exceto nesta seção:

# Set up iptables to forward packets for vpn and do this upon startup.
echo 'iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
exit 0' > /etc/rc.local

Parece que o debian 8 não usa este arquivo /etc/rc.local , então meu servidor vpn não encaminhará o tráfego corretamente após a reinicialização. Eu tenho que chamar manualmente esse script ou executar os comandos.

Qual é o "modo 8 do debian" para atualizar o iptables na inicialização?

Atualizar

Depois de ler que /etc/rc.local deve funcionar, verifiquei se as permissões estavam definidas para 755 e atualizei o script para o seguinte:

/bin/echo "starting..." > /root/rc.local.log
/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -j REJECT
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
/bin/echo "completed successfully" >> /root/rc.local.log

exit 0

Eu então criei um /root/rc.local.log vazio e dei a ele 777 permissões antes de reinicializar. O arquivo permaneceu vazio, fazendo-me pensar que o script /etc/rc.local não está sendo executado.

    
por Programster 13.06.2015 / 10:34

2 respostas

12

A maneira Debian de configurar o iptables na inicialização é usando o pacote iptables-persistent .

Simplesmente instale o pacote iptables-persistent , configure as regras do iptables como você deseja e, em seguida, execute netfilter-persistent save . (Observe que o comando começa com netfilter e não iptables .)

Veja a página man do netfilter-persistent para mais detalhes.

O método para salvar as tabelas tem mudanças desde o Debian 7 (Wheezy). Em Wheezy alguém faria algo como: invoke-rc.d iptables-persistent save .

    
por 14.06.2015 / 00:49
2

Eu não tenho uma resposta definitiva para uma maneira Debian 8 de configurar iptables na inicialização, mas rc.local deve funcionar.

Com o systemd, rc.local é manipulado por /lib/systemd/system/rc-local.service , que é iniciado automaticamente após a rede e executa /etc/rc.local start . O único requisito é que /etc/rc.local seja executável:

chmod 755 /etc/rc.local

Você também precisa ter #!/bin/sh na parte superior do arquivo rc.local para executar com o systemd, caso contrário, você obterá erros como Failed at step EXEC spawning /etc/rc.local: Exec format error em vermelho quando executar sudo journalctl

    
por 13.06.2015 / 11:03