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.