iptables-persistent
wheezy salva as regras em /etc/iptables/rules.v4
.
Você pode ver a fonte do pacote aqui: link
Estou trabalhando em um servidor Debian e estou tentando descobrir onde minhas regras de IPTable estão sendo armazenadas.
Olhando pela internet, descobri que geralmente há dois locais em que eles geralmente são salvos.
link sugere /etc/network/if-up.d/iptables
, mas esse arquivo não existe esse diretório.
link /etc/sysconfig/iptables
mas o diretório /etc/sysconfig
não nem existe.
Pelo que sei, não é incomum que o administrador anterior salve arquivos comuns em um local diferente por motivos de segurança e fiquei me perguntando se havia uma maneira de descobrir onde as regras estão sendo salvas quando O comando iptables-save
é usado. Esta página também afirma que o arquivo é restaurado usando o script localizado em /etc/init.d/iptables
, mas isso também não existe.
Qualquer ajuda ou sugestão sobre como proceder para descobrir onde as regras estão sendo salvas? Eu sei que posso tentar usar o grep para encontrar uma string rara que estaria localizada nas regras, mas eu sinto que tem que haver um método mais simples e direto.
Atualização:
Obrigado por toda sua ajuda. Eu tentei usar o grep para pesquisar o diretório / etc, mas demorei muito tempo e não queria correr o risco de ficar sem memória, então parei. Eu imaginei que tentaria usar strace como um método menos intensivo.
De olhar através do strace eu cheguei às linhas (eu mudei o endereço IP para 1.1.1.1):
'open("/etc/protocols", O_RDONLY|O_CLOEXEC) = 5
fstat64(5, {st_mode=S_IFREG|0644, st_size=2859, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7747000
read(5, "# Internet (IP) protocols\n#\n# Up"..., 4096) = 2859
close(5) = 0
munmap(0xb7747000, 4096) = 0
write(1, "-A net2fw -s 1.1.1.1/32 -p t"..., 66) = 66'
Eu não tenho 100% de certeza do que isso está fazendo, mas parece que é aqui que ele usa o protocolo nº 5 do arquivo /etc/protocols
, que seria:
st 5 ST # ST datagram mode
lendo as estatísticas do arquivo de algum arquivo e, em seguida, mapeando o que ele lê para um local de memória 0xb7747000
. Não tenho certeza de onde está lendo, mas fecha o protocolo, desmapela da memória e grava a regra no descritor de arquivo 1
.
Quão perto estou de ler isso corretamente? e como eu descobriria o arquivo representado por 1
?
iptables-persistent
wheezy salva as regras em /etc/iptables/rules.v4
.
Você pode ver a fonte do pacote aqui: link
Precisa fazer alguma investigação?