1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[CentOS7] firewalldでブラックリストを作る

Posted at

CentOS7で,firewalldを使ってIPアドレスのブラックリストを登録する方法について説明します.ipsetコマンドを使うのが主流ですが,CentOS7ではfirewall-cmdだけでも設定できるので,記録としてこの記事を投稿します.

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

最後に,blacklistをすぐ使用可能にするために次のコマンドを実行します.

firewall-cmd --reload

以下のコマンドでルールが設定されていることを確認できます.

firewall-cmd --list-all

ブラックリストを登録する

1つずつ登録するには,次のようにしてエントリを追加します.

firewall-cmd --permanent --ipset=blacklist --add-entry=192.168.1.2

ファイルに一行ごとにIPアドレスを書いておくと,次のようにしてファイルから読み込むことができます.

firewall-cmd --permanent --ipset=blacklist --add-entries-from-file=/etc/firewalld/blacklist

上の例では/etc/firewalld/blacklistにブラックリストのファイルを用意します.
IPアドレスが登録されていることを確認するには,次のコマンドを実行します.

firewall-cmd --ipset=blacklist --get-entries

ブラックリストからIPアドレスを削除するには,次のようにします.

firewall-cmd --permanent --ipset=blacklist --remove-entry=192.168.1.2

ブラックリストのファイル/etc/firewalld/blacklistには次のようにIPアドレスを列挙します.なお,サブネットなども使えます.

192.168.1.2
192.168.1.3
192.168.2.0/24

同じIPアドレスが重複して指定された場合は,片方(より範囲の広い方)だけが登録されます.例えば192.168.2.0/24を登録した後に192.168.2.10を登録してもblacklistのエントリは変化しません.
ブラックリストの登録が完了したら次のコマンドで設定をロードします.

firewall-cmd --reload

リロードしたら,--get-entries--list-allを使って登録した設定が保存されていることを確認しましょう.

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?