
CentOS Stream 9を使ってIPアドレスのブラックリストを登録する方法についての覚え書きです。
ipsetを作る
blacklistというipsetを作る
まず、blacklistという名前の新しいipsetを作ります。
firewall-cmd --permanent --new-ipset=blacklist --type=hash:ipルールを設定する
firewall-cmdでは、いずれのオプションでも–permanentを付けないとリロード時に設定が消えてしまうので注意が必要です。
また、blacklistに該当するIPアドレスからの通信を遮断するために、次のようにルールを設定します。
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'firewalldをリロードする
blacklistをすぐ使用可能にするためにfirewalldをリロードします。
firewall-cmd --reloadルールが設定されていることを確認します。
firewall-cmd --list-all
public (active)
target: default
:
途中省略
:
rich rules:
rule source ipset="blacklist" dropブラックリストを登録する
blacklistファイルを作成する
あらかじめblacklistという名前で空ファイルを作成します。
vi /etc/firewalld/blacklist
:wq //保存して終了エントリを追加する
1つずつ登録するには、次のコマンドを用いてエントリを追加します。
サブネットも使うことができます。
firewall-cmd --permanent --ipset=blacklist --add-entry=xxx.xxx.xxx.0/24ファイルから読み込む
/etc/firewalld/blacklistファイルに1行ごとにIPアドレスを書いておくと、次のコマンドでファイルからIPアドレスを読み込むことができます。
firewall-cmd --permanent --ipset=blacklist --add-entries-from-file=/etc/firewalld/blacklistIPアドレスが登録されているか確認する
firewall-cmd --ipset=blacklist --get-entries
xxx.xxx.xxx.0/24
xxx.xxx.xxx.xxx
xxx.xxx.0.0/16ブラックリストからIPアドレスを削除する場合
ブラックリストからIPアドレスを削除する場合は次のコマンドを実行します。
firewall-cmd --permanent --ipset=blacklist --remove-entry=xxx.xxx.xxx.xxxブラックリストの中身
ブラックリストファイル/etc/firewalld/ipsets/blacklist.xmlには次のように記述されています。
xxx.xxx.xxx.0/24
xxx.xxx.xxx.xxx
xxx.xxx.0.0/16IPが重複して指定した場合
同じIPアドレスが重複して指定された場合は、片方(より範囲の広い方)だけが登録されます。
例えば192.168.2.0/24を登録した後に192.168.2.10を登録しても以下のメッセージが表示されてblacklistのエントリは変化しません。
firewall-cmd --permanent --ipset=blacklist --add-entry=xxx.xxx.xxx.10
Error: INVALID_ENTRY: Entry 'xxx.xxx.xxx.10' overlaps with existing entry 'xxx.xxx.0.0/16'ブラックリスト登録の完了
ブラックリストの登録が完了したらfirewalldをリロードします。
firewall-cmd --reloadリロードしたら、–get-entriesや–list-allを使って登録した設定が保存されていることを確認して設定完了となります。
お疲れ様でした。


コメント