Como determinar qual tráfego está sendo descartado / bloqueado com base no log do iptables

4

Eu segui o exemplo para o log de iptable do link

sudo iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Eu recebo entradas de registro como abaixo

Oct 20 03:45:50 hostname kernel: iptables denied: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=1059 TOS=0x00 PREC=0x00 TTL=115 ID=31368 DF PROTO=TCP SPT=17992 DPT=80 WINDOW=16477 RES=0x00 ACK PSH URGP=0 
Oct 20 03:46:02 hostname kernel: iptables denied: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=52 TOS=0x00 PREC=0x00 TTL=52 ID=763 DF PROTO=TCP SPT=20229 DPT=22 WINDOW=15588 RES=0x00 ACK URGP=0 
Oct 20 03:46:14 hostname kernel: iptables denied: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=324 TOS=0x00 PREC=0x00 TTL=49 ID=64245 PROTO=TCP SPT=47237 DPT=80 WINDOW=470 RES=0x00 ACK PSH URGP=0 
Oct 20 03:46:26 hostname kernel: iptables denied: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=52 TOS=0x00 PREC=0x00 TTL=45 ID=2010 PROTO=TCP SPT=48322 DPT=80 WINDOW=380 RES=0x00 ACK URGP=0 

O log semelhante acima aparece a cada 2 ou 3 segundos e parece que há muito tráfego bloqueado. Mas minha pergunta é como determinar que tipo de tráfego está sendo bloqueado ou descartado com base nas entradas de log acima?

DPT significa porta de destino? so DPT = 22 significa que o acesso SSH é bloqueado? e DPT = 80 significa que o tráfego HTTP está bloqueado?

Meus iptables são principalmente valores padrão, exceto que adicionei algumas regras adicionais

-A INPUT -s z.z.z.z/32 -j DROP
-A INPUT -s y.y.y.y/32 -j DROP
-A INPUT -s a.a.a.a/32 -j DROP
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Nenhum dos ip SRC nos arquivos de log são dos iptables que são especificamente configurados para eliminar todo o tráfego, e ainda os arquivos de log mostrando endereços IP diferentes com DPT = 80, DPT = 22 sendo descartados.

Há algo errado com minha configuração?

    
por forestclown 20.10.2014 / 04:52

1 resposta

22

Aqui estão suas regras novamente:

-A INPUT -s z.z.z.z/32 -j DROP
-A INPUT -s y.y.y.y/32 -j DROP
-A INPUT -s a.a.a.a/32 -j DROP
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

O primeiro testará silenciosamente qualquer pacote correspondente a ele. Assim como o segundo e o terceiro. No momento em que você atinge a regra "limite", você já descartou todos os pacotes correspondentes a esses endereços IP de origem. Você agora tem o resto do tráfego. Para este resto do tráfego, você registrará cinco pacotes por minuto. Você irá logar erroneamente como negados quando eles não forem realmente negados.

Se, em vez disso, você quiser registrar e descartar pacotes correspondentes a qualquer um dos vários endereços IP de origem, a maneira mais fácil de fazer isso é criar uma nova cadeia que será registrada e descartada. por exemplo:

iptables -N LOG_AND_DROP
iptables -A LOG_AND_DROP -j LOG --log-prefix "Source host denied "
iptables -A LOG_AND_DROP -j DROP

Agora que você tem essa cadeia, você quer direcionar o tráfego para logar e soltar para ela:

iptables -A INPUT -s z.z.z.z/32 -j LOG_AND_DROP
iptables -A INPUT -s y.y.y.y/32 -j LOG_AND_DROP
iptables -A INPUT -s a.a.a.a/32 -j LOG_AND_DROP

Isso levará qualquer pacote correspondente a esses endereços de origem e os enviará para a cadeia LOG_AND_DROP. Essa cadeia, como é chamada, registra primeiro todos os pacotes e, em seguida, os descarta. Se preferir, você pode limitar o registro e depois descartá-lo. Até você e depende de quanto tráfego estamos falando.

Observação: certifique-se de liberar as regras existentes antes de adicionar as regras acima. Caso contrário, você ainda terá a regra enganosa que está registrando, mas não negando.

    
por 20.10.2014 / 05:17