domingo, setembro 24, 2017
Home » Linux » iptables » Logs no Iptables – Parte II

Logs no Iptables – Parte II

Continuando o artigo sobre Logs no iptables, vamos à parte II.

A segunda parte aborda Descrição de LOG

Descrição no LOG do iptables

Conforme visto na parte 1 para registrarmos uma regra no log, basta usarmos a target -j LOG. Agora, abordaremos a descrição, que certamente facilitará a vida dos administradores iptables

Vimos que ao gerar o Log, diversas informações são exibids, mas sentimos falta de uma descrição mais amigável, que nos dê o poder de agrupamento ou de rápida busca. Para isto, veremos o –log-prefix “Descrição do log”

A opção –log-prefix facilita muito a verificação dos logs, pois podemos procurar por uma frase já esperada, para ver se a regra ocorreu. Vamos utilzá-lo baseado na regra de logs SSH da parte 1:

 iptables -A INPUT -p tcp –dport 22 -j LOG

Vamos então adaptá-la:

iptables -A INPUT -p tcp –dport 22 -j LOG –log-prefix “Acesso SSH pela porta 22 “

No próximo acesso pelo ssh, rodanto um tail /var/log/iptables.log (Lembre-se que redirecionamos o log pra cá na parte 1 do artigo). Veja o log gerado:

Aug 10 01:48:49 ubuntuServer kernel: [ 8996.829715] Acesso SSH pela porta 22 IN=eth0 OUT= MAC=08:00:27:ce:a3:4c:00:19:66:be:75:a9:08:00 SRC=192.168.1.100 DST=192.168.1.103 LEN=40 TOS=0x00 PREC=0x00 TTL=128 ID=2037 DF PROTO=TCP SPT=51435 DPT=22 WINDOW=253 RES=0x00 ACK URGP=0

Com essa simples opção podemos usar o grep para filtrar as linhas relativas as regras que queremos. No nosso exemplo ficaria:

 cat /var/log/iptables.log | grep “Acesso SSH pela porta 22”

Lembre-se de que o Linux é Case Sensitive, Respeite maiúsculas e minúsculas. Rodando o script acima obtive o seguinte resultado:

Bem mais fácil não?!

Especificando nivel de log no syslog (rsyslog)

O iptables trabalha com os mesmos níveis de log do kernel, portanto teremos: debug, info, notice, warning ou warn, err ou error, crit, alert, emerg ou panic. Para selecionarmos o nivel usaremos o –log-level “nível”

Grande parte das distros Linux utiliza o nível warn (cuidado) nos logs do iptables.

Tendo como exemplo a regra anterior, iremos colocar o acesso ssh pela porta 22 como um log critico (crit), vamos então adaptar a nossa regra:

Antes:

iptables -A INPUT -p tcp –dport 22 -j LOG –log-prefix “Acesso SSH pela porta 22 “

Lembre-se de apagar esta regra antes de criar a proxima:

iptables -D INPUT -p tcp –dport 22 -j LOG –log-prefix “Acesso SSH pela porta 22 “

Inserindo a nova regra:

iptables -A INPUT -p tcp –dport 22 -j LOG –log-prefix “Acesso SSH pela porta 22” –log-level crit

Perceba que com isso sua tela começará a exibir o log assim que a regra se cumprir.

Encerro aqui a parte II, na Parte III Abordaremos a ferramenta FwlogWatch, até a próxima!

Link para a parte I

Sobre Diego Duarte

Diego Duarte Atua como coordenador de NOC, toca um violãozinho nas horas vagas e tenta eternamente entender o que o fez escolher TI

Veja também!

Iptables – Tabela Mangle

Tabela Mangle nada mais é que a tabela usada para marcar pacotes. Em cada pacote de dados há um cabeçalho, e neste cabeçalho há campos que podem ser marcados. Com tais marcações podemos criar regras de modo que se obtém prioridade de serviços, tempo de vida de pacotes, entre outros.

5 comentários

  1. Rodrigo

    Poxa estou com uma dificuldade =(

    A estrutura do arquivo log é diferente do teu no inicio.
    2012-05-26T15:08:27.244298-03:00 srv-proxy kernel: [ 108.950736] IN=eth1
    ao inves de Aug 10 hora.. nome-do-servidor
    com isso o arquivo index.html exibe

    0 (and 13860 malformed) of 13968 entries in the file “/var/log/iptables.log”

  2. Uma pergunta teria como tirar o resto do log e deixar no log so a frase:“Acesso SSH pela porta 22 “ pode parecer besta mas sou iniciante no mundo linux

  3. Francisco

    Diego boa tarde, no caso eu queira as url visitadas ao invés do IP de destino, qual comando devo fazer. Obrigado

Este artigo lhe foi útil? comente e ajude outros acrescentando seu ponto de vista!