TL; DR
Existe algo que eu possa fazer para alterar o iptables do ddclient (com o usuário ddclient)?
A história por trás
Eu tenho um computador que usa dyndns para ser endereçável de fora.
Sempre que o provedor emite um novo endereço IP (o que acontece com bastante frequência hoje em dia), o ddclient atualiza a entrada do DNS.
O computador tem algumas regras do iptables baseadas em seu IP público, que obviamente só funcionam enquanto o IP está correto.
Até agora eu tinha um cron job de hora em hora que funcionava assim para manter o iptables atualizado:
./change-iptables-public-ip.sh 'curl ifconfig.me/ip'
Agora as atualizações por hora significam que pode haver um atraso de hora em que o iptables está configurado com o endereço errado. Eu poderia ter feito o trabalho mais frequente (até um minuto), mas eu pensei, que fazer esse tipo de coisa via polling é um desperdício, especialmente, quando o ddclient oferece a possibilidade de executar um script após o ip ter sido alterado. / p>
Então eu inseri isso na minha configuração do ddclient:
postscript=/etc/ddclient/change-iptables-public-ip.sh
Eu também adicionei o bit suid a change-iptables-public-ip.sh
, mas sem sucesso.
Quando o script é executado pelo ddclient, resulta em:
iptables v1.4.18: can't initialize iptables table 'nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
Eu não gosto da idéia de executar o ddclient como root.
Uma idéia que tive até agora foi um processo rodando como root, que escuta em um socket para o novo ip e então dispara as mudanças no iptables. Mas antes de sujar as mãos, quero saber se existem soluções padrão por aí.