iptables logging question

2

Eu estou querendo saber qual deve ser a melhor abordagem em relação ao tratamento de log de itens dentro do iptables. Por exemplo, tenho uma regra como a seguinte:

$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j DROP

Eu estava curioso para saber se é melhor ter a seguinte parte da regra

-m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7

incluído na cadeia ou se deve ser enviado para uma cadeia diferente, como uma cadeia LOGDROP?

É possível ter algo como as seguintes regras?

$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: "
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j LOGDROP

$IPT -A LOGDROP -p TCP --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
$IPT -A LOGDROP -j DROP

Agradecemos antecipadamente por sua ajuda com isso.

    
por John 03.12.2010 / 22:27

1 resposta

3

Começando pela parte inferior ...

$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: "
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j LOGDROP

$IPT -A LOGDROP -p TCP --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
$IPT -A LOGDROP -j DROP

Não tenho certeza se entendi exatamente o que você espera realizar aqui ... mas, como está escrito, não, isso não funcionará. As opções --log-ip-options e outras --log-* são fornecidas pelo módulo LOG , portanto sem -j LOG elas simplesmente não serão reconhecidas:

# iptables -A LOGDROP -p tcp --log-iptions
iptables v1.4.7: unknown option '--log-iptions'
Try 'iptables -h' or 'iptables --help' for more information.

Se isso foi apenas um erro de digitação e a pergunta é, "posso chamar LOG várias vezes para o mesmo pacote?", a resposta é sim. Você pode fazer isso muito bem:

-A INPUT -j LOG --log-prefix="prefixA "
-A INPUT -j LOG --log-prefix="prefixB "
-A INPUT -j LOG --log-prefix="prefixC "

E assim por diante. Você registrará o pacote várias vezes, cada um com um prefixo. Como você mostrou, é uma boa ideia incluir sempre as instruções --limit para impedir que uma alta taxa de correspondências nessas regras sufoque seu sistema.

Sua pergunta sobre onde colocar melhor uma regra de registro realmente depende das suas necessidades individuais. Se você quiser encerrar várias de suas cadeias com uma combinação LOG e DROP , provavelmente é mais fácil tratar isso como uma "sub-rotina" e criar uma cadeia LOGDROP dedicada. Isso significa que tudo receberá o mesmo --log-prefix . Se você realmente precisa identificar resultados específicos, então você terá várias instruções de log / drop espalhadas por todo o seu conjunto de regras.

    
por 04.12.2010 / 02:53