特定のイベントに応じてタイムアウトのある自動IPホワイトリストを作成するために、Firewalldとipsetsを使用しようとしています。
私はここまで来ました。
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
私は明らかなものを見逃して、あまり明確ではないことを発見しました。
これは、ファイアウォールでタイムアウトのある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アドレスを閉じるために独自のログを記録する必要はありません。