ipset
を使用して、システムに正常にログインしたクライアントのホワイトリストを確立しようとしています。エントリを年齢に基づいて後で破棄できるように、エントリを年齢に制限するにはどのようなオプションが必要ですか?
以下に概説するアイデアよりも優れた方法はありますか?
ipset
から直接提供されたものは何も見つからなかったので、そのような機能がipset
/iptables
の範囲内に存在するかどうかを確認しようとしています。
今のところ、私が思いついた唯一のアイデアは、X分またはX時間ごとにリストを交換するcronジョブを使用することです。したがって、例として、アクティブなリストwhitelist
と、次の1時間のリスト(たとえば、21:00 whistelist_21
)があります(20:00から20:59。 nowに接続しているクライアントは、アクティブなwhitelist
に追加され、次の1時間(または特定の期間)のホワイトリストに追加されます。次に、1時間ごと(または指定された期間)にcronジョブが実行されます(例:上記の場合の21:00に-既存のwhitelist
をwhitelist_21
に交換し、(現在は名前が変更された)whitelist
を破棄します。例えば。:
ipset swap whitelist whitelist_21
ipset destroy whitelist_21
man
ページには、私が探していたものが記載されていることがわかりました。これは適切にtimeout
と呼ばれ、IPセットにエントリを追加するときに指定できます。間違った用語を検索したため、見逃しました。
セットを作成するときにデフォルトのタイムアウト値を指定し、後で追加するエントリごとに指定できます。セットのデフォルトをオーバーライドする必要がある場合。
ipset(8)
の例:
ipset create test hash:ip timeout 300
ipset add test 192.168.0.1 timeout 60
ipset -exist add test 192.168.0.1 timeout 600