web-dev-qa-db-ja.com

IPTablesはIPをIPSetリストに追加します

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

1
RIscRIpt

したがって、-j SETは必要なものなので、次のようになります。

Iptables内では、パケットをipsetと比較する場合に-m setが使用されます(-mは一致を表します)。1つのルール内で複数回使用できます。

一方、-j SETは、エントリをipsetに挿入するために使用されます。これは、非終了ターゲットであり、ルールトラバーサルが続行されることを意味します。

予想される構文の完全な説明については、iptablesのマンページをお読みください。

1
Olipro

@Oliproと@ 0x534B41が言ったように、私は-m recentを使用してはいけません。したがって、iptablesルールからipsetにエントリを追加するには、-j SET --add-set IPSET_LIST srcを使用する必要があります。

2
RIscRIpt

Iptablesのドキュメント は、recentモジュールがipsetとは何の関係もないことを示唆しています。代わりに、それ自体でのみ使用される動的リストを作成します。 recentモジュールが使用するリストは、/proc/net/xt_recent/のprocfsを介して公開されます。

0
skarap