Como descubro onde minhas regras de IPTables estão sendo armazenadas?

5

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 ?

    
por d.lanza38 31.07.2014 / 20:14

2 respostas

3

O pacote

iptables-persistent wheezy salva as regras em /etc/iptables/rules.v4 .

Você pode ver a fonte do pacote aqui: link

    
por 31.07.2014 / 20:37
0

Precisa fazer alguma investigação?

  • execute "strace iptables-save" e examine a saída dos arquivos que este comando abre. ignorar arquivos de biblioteca, um dos arquivos que ele abre para ler será o conjunto de regras que você está procurando.
por 31.07.2014 / 20:48