L!N5X
(usa Debian)
Enviado em 15/05/2010 - 10:47h
O iptables tem um target extension denominado LOG, que permite que qualquer pacote que se encaixe na regra do iptables seja enviado para o syslog ou dmesg.
Esse target é não-terminal, ou seja, para um dado pacote que é validado na regra, ele continua sendo avaliado nas regras subsequentes. Portanto, se vc quer descartar o pacote após gerar um log de sua chegada, vc deve criar outra regra idêntica, mas com o target REJECT ou DROP, ou colocar a política default como DROP (recomendado), e criar regras apenas para o que é permitido.
Veja abaixo um exemplo.
iptables -I INPUT 1 -m limit -p tcp --destination-port 22 -j LOG --log-level 1 --log-prefix 'SSH >'
O comando acima inclui uma regra para gerar uma mensagem no syslog para qualquer acesso SSH (porta 22). O nível do log é 1 (alert) e a mensagem será prefixada com o texto "SSH >"
Vc deve adicionar ao seu arquivo /etc/syslog.conf a linha abaixo.
*.=alert -/var/log/iptables
Isso enviará as mensagens para o arquivo /var/log/iptables. Reinicie o syslogd para a alteração ser carregada.
Abaixo um exemplo da mensagem gerada, para uma regra que gere log de acessos HTTP.
Jan 19 15:41:18 localhost kernel: HTTP >IN=eth0 OUT= MAC=00:00:39:57:30:a4:00:50:22:00:df:9f:08:00 SRC=10.105.90.9 DST=10.104.90.9 LEN=342 TOS=0x00 PREC=0x00 TTL=128 ID=12194 DF PROTO=TCP SPT=3527 DPT=80 WINDOW=17520 RES=0x00 ACK PSH URGP=0
Descreva melhor o que realmente vc quer para ficar mais fácil de lhe dar a solução.