Debian 8 - IPTables reverte para declarar em cada pacote

2

Problema: iptables não pode ser alterado. No meu computador, posso executar iptables -F . iptables -L mostra que foi esvaziado.

Quando qualquer pacote entra ou sai da máquina, todas as regras estão de volta! O mesmo comportamento acontece se eu fizer um iptables-restore < new_settings . Eles estão lá por um segundo, mas uma vez que um pacote passa por iptables ele volta.

Estou usando debian 8 o sistema operacional foi uma atualização do debian 7 . É o computador de outra pessoa originalmente.

O que eu verifiquei, pensando que seria uma dessas coisas:

  • iptables-persistent não está presente
  • /etc/iptables/ não existe
  • Quando olho para systemctl processes, não há nada com ip em seu nome

/# systemctl --all | grep ip run-rpc_pipefs.mount loaded active mounted /run/rpc_pipefs systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named Pipe

  • Não há # firewalld no sistema.

Onde podemos encontrar serviços ou algo que está mudando as configurações do sistema?

    
por jQwierdy 17.05.2016 / 23:21

2 respostas

2

Talvez você possa usar audit . O Fedora habilita-o por padrão e inunda o diário com as linhas NETFILTER_CFG.

Veja esta pergunta:

Auditoria de alterações na configuração do iptables em execução

No exemplo mostrado, o processo relevante é iptables , o que pode não ser muito útil. No entanto, também registra ppid , o processo pai (assim como o óbvio pid ).

No caso de o processo pai também sair imediatamente ...

Você poderia facilmente usar a contabilidade de processo ( acct package) para rastrear os nomes de cada processo existente (comando lastcomm ). No entanto, isso é menos informação do que você imagina. Estou pensando em "bash" aqui.

Pode ser melhor executar fatrace para rastrear arquivos abertos, o que inclui a execução do programa. Só não tente canalizar, por exemplo através do grep - ele irá falhar em gerar qualquer saída, não sei porquê.

Há também uma página em execsnoop . Se você puder usar esse programa, ou qualquer uma das alternativas sugeridas, isso será mais fácil de interpretar.

Tecnicamente, não permiti fork() . Mas não consigo pensar em uma boa razão para você usar fork() sem exec() para criar regras de netfilter.

    
por 18.05.2016 / 00:14
1

TL; DR quando você está tendo problemas estranhos com arquivos de configuração mudando o tempo todo, verifique seus arquivos /etc/network/if-*.d , se você já verificou systemd configs.

Acontece que outra opção para onde algo pode alterar o comando iptables (ou realmente qualquer coisa) está nas pastas if-up.d ou if-down.d que lidam com alterações baseadas na conectividade com a Internet.

Em /etc/network/ , havia uma pasta para if-pre-up.d , if-up.d , etc.

Cada um contém um conjunto de scripts para executar quando a condição if-* é atendida. Então, sempre que as conexões com a Internet fossem alteradas (o que parecia ser qualquer alteração no iptables ), ele executaria um script que /sbin/iptables-restore < /etc/network/iptables , que redefiniria o iptables com o arquivo iptables in /etc/network/ .

    
por 18.05.2016 / 20:43