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
5 Comentários. Deixe novo
[…] Link para parte I | Link para parte II […]
[…] Parte I | Parte II | Parte III | Parte IV […]
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”
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
Diego boa tarde, no caso eu queira as url visitadas ao invés do IP de destino, qual comando devo fazer. Obrigado