nflogを使用してiptablesルールでパケットを記録して破棄できますか?

nflogを使用してiptablesルールでパケットを記録して破棄できますか?

これは私のルールです。泣いたそしてiptables、レコードは次の場所に保存されます/var/log/ulog/sysloemu.log

iptables -A INPUT -p tcp --sport 1234 -j NFLOG --nflog-prefix 'example block'
iptables -A INPUT -p tcp --sport 1234 -j DROP

私はこの規則を単純化したいと思います。私はこれを試しましたがうまくいきません:

iptables -A INPUT -p tcp --sport 1234 --nflog-prefix 'example block' -j DROP

出て:

iptables v1.8.4 (legacy): unknown option "--nflog-prefix"
Try `iptables -h' or 'iptables --help' for more information"

しかし、ebtablesこれを受け入れます(少なくともエラーは発生しません)。

ebtables -A INPUT --protocol ipv4 --ip-proto tcp --ip-sport 1234 --nflog-prefix 'example block' -j DROP

解く方法はありますか?ニューラルネットワークログ--nflog-prefix)iptablesルールに1行だけ残っていますか?

PD:それとも、nftablesに加えてこれらの規則を単純化する別の代替案がありますか?

PD:私のiptablesスクリプトには似たような規則がたくさんあるので、どんな規則でも機能する解決策が欲しいです。

PD:同様の質問があります。ここしかし、解決策は私が探しているものではありません。

修正する:

私はこれを試しました(@ Tom Yanに感謝します):

# variable prefix
A='block A'
B='block B' # in this case i need to repeat the loop (and increase the number of lines)

iptables -N NFLOG_AND_DROP
iptables -A NFLOG_AND_DROP -j NFLOG --nflog-prefix "$A"
iptables -A NFLOG_AND_DROP -j DROP
# rules
iptables -A INPUT -p tcp --sport 1234 -j NFLOG_AND_DROP
iptables -A FORWARD -p tcp --dport 1234 -j NFLOG_AND_DROP

ただし、シーケンスとiptablesスクリプトを減らす代わりに繰り返す必要があるため、他の行を追加することはできません。--nflog-prefixこれにより、行数が増えます(誰かがこの問題を解決するためにループを考案しない限り)。

ベストアンサー1

私の考えであなたができる最善は次のとおりです。

-N log_and_drop
-A log_and_drop -j NFLOG --nflog-prefix "shared prefix"
-A log_and_drop -j DROP
-A INPUT -p tcp --sport 1234 -g log_and_drop
-A INPUT -p udp --sport 4321 -g log_and_drop

いくつかの(一致する)ルールが同じログプレフィックスを共有する必要があるとします。

おすすめ記事