web-dev-qa-db-ja.com

期間限定でIPをホワイトリストに登録するにはどうすればよいですか?

Firewalldとipsetsを使用して、特定のイベントに基づいてタイムアウトするIPの自動ホワイトリストを作成しようとしています。

これは私がどこまで得たかです

firewall-cmd --permanent --new-ipset=whitelist --type=hash:ip --option=timeout=30
firewall-cmd --reload
firewall-cmd --zone=external --add-rich-rule='rule source ipset=whitelist accept'
firewall-cmd --ipset=whitelist --add-entry=AA.BB.CC.DD

ただし、最後のコマンドから次のエラーメッセージを取得します。

Error: IPSET_WITH_TIMEOUT: whitelist

ここで明らかな何かが欠けているような気がします。

1
dragz

私は確かに明白な何かを見逃し、それほど明白ではない何かを発見しました:

これは、firewalldでタイムアウトのあるipsetを作成する一連のコマンドです。

firewall-cmd --permanent --new-ipset=whitelist --type=hash:ip --option=timeout=30
firewall-cmd --reload
firewall-cmd --zone=external --add-source=ipset:whitelist

--add-sourceビットがありませんでした(リッチルールは必要ないことに注意してください)。ただし、firewall-cmdを使用してipsetにエントリを追加しようとすると、最初の質問と同じエラーが発生します。ただし、ネイティブipsetコマンドを直接使用できます。

#ipset add whitelist AA.BB.CC.DD
#ipset list whitelist
Name: whitelist
Type: hash:ip
Revision: 1
Header: family inet hashsize 1024 maxelem 65536 timeout 30
Size in memory: 16592
References: 7
Members:
AA.BB.CC.DD timeout 22

このセットアップでは、指定されたIPアドレスを30秒間ホワイトリストに登録します。ちょうど私が必要なもの。

このすべての理由は、sshを使用してサーバーにログインするユーザーにリモートデスクトップサービスへのアクセスを提供するための自動メカニズムを提供できるようにするためです。 ipset addコマンドは、成功したsshログインを検出し、ユーザーがログインしている関連するソースIPを取得するsyslogイベントハンドラーから実行されます。ホワイトリストのタイムアウトにより、攻撃ウィンドウがリモートvnc接続に大幅に制限されます。 tcp-wrapperに基づくCentOS6でも同様のセットアップを使用しています。現在、CentOS7に移行しており、ipsetタイムアウトを使用すると、タイムアウトウィンドウの期限が切れた後、許可されたIPアドレスを閉じるための独自の簿記が不要になります。

1
dragz