IptablesルールからipsetにIPアドレスを正しく追加するにはどうすればよいですか?それともそれはまったく不可能ですか?
このルールは私には機能しません:-A INPUT -m recent --name IP_LIST --set
IP_LISTのタイプはhash:netです。IP_LISTはコマンドipset create IP_LIST hash:net
を使用して作成されました。
ただし、同じリストでIPをチェックしてドロップすると、機能します:-A INPUT -m set --match-set IP_LIST src -j DROP
したがって、-j SET
は必要なものなので、次のようになります。
Iptables内では、パケットをipsetと比較する場合に-m set
が使用されます(-m
は一致を表します)。1つのルール内で複数回使用できます。
一方、-j SET
は、エントリをipsetに挿入するために使用されます。これは、非終了ターゲットであり、ルールトラバーサルが続行されることを意味します。
予想される構文の完全な説明については、iptablesのマンページをお読みください。
@Oliproと@ 0x534B41が言ったように、私は-m recent
を使用してはいけません。したがって、iptablesルールからipsetにエントリを追加するには、-j SET --add-set IPSET_LIST src
を使用する必要があります。
Iptablesのドキュメント は、recent
モジュールがipset
とは何の関係もないことを示唆しています。代わりに、それ自体でのみ使用される動的リストを作成します。 recent
モジュールが使用するリストは、/proc/net/xt_recent/
のprocfsを介して公開されます。