
Problema: iptables
não pode ser mudado. No meu computador, posso executar o iptables -F
. iptables -L
mostra que está corado.
Quando algum pacote entra ou sai da máquina, todas as regras voltam! O mesmo comportamento acontece se eu fizer um iptables-restore < new_settings
. Eles ficam lá por um segundo, mas quando um pacote passa, iptables
ele é revertido.
estou a usardebian8o sistema operacional foi uma atualização dedebian7. Originalmente é o computador de outra pessoa.
O que verifiquei, pensando que seria uma destas coisas:
iptables-persistent
não está presente/etc/iptables/
não existe- Quando olho para
systemctl
os processos não há nada emip
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 esteja alterando as configurações do sistema?
Responder1
Talvez você possa usar audit
. O Fedora habilita-o por padrão e inunda o diário com linhas NETFILTER_CFG.
Veja esta pergunta:
Auditoria sobre 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, ele também registra ppid
o processo pai (assim como o óbvio pid
).
Caso o processo paitambémsai imediatamente...
Você poderia facilmente usar a contabilidade do processo ( acct
pacote) para rastrear os nomes de cada processo existente ( lastcomm
comando). No entanto, isso é menos informação do que você imagina. Estou pensando em "bash" aqui.
Talvez seja melhor executar fatrace
para rastrear arquivos abertos, o que inclui a execução do programa. Só não tente canalizá-lo, por exemplo, através do grep - ele não conseguirá gerar nenhuma saída, não sei por quê.
Há também umpágina emexecsnoop
. Se você puder usar esse programa, ou qualquer uma das alternativas sugeridas, seria mais fácil de interpretar.
Tecnicamente eu não permiti fork()
. Mas não consigo pensar em uma boa razão para você fork()
não exec()
criar regras de netfilter.
Responder2
DRquando você estiver tendo problemas estranhos com arquivos de configuração mudando o tempo todo, verifique seus /etc/network/if-*.d
arquivos, se você já verificou systemd
as configurações.
Acontece que outra opção de onde algo pode alterar o iptables
comando (ou realmente qualquer coisa) está nas pastas if-up.d
ou if-down.d
que fazem alterações com base na conectividade com a Internet.
Havia /etc/network/
uma pasta para ambos if-pre-up.d
, if-up.d
etc.
Cada um contém um conjunto de scripts a serem executados quando a if-*
condição for atendida. Portanto, sempre que as conexões de Internet mudavam (o que parecia ser alguma mudança no arquivo iptables
), ele executava um script que /sbin/iptables-restore < /etc/network/iptables
redefinia o iptables com o arquivo iptables
em /etc/network/
.