LoginSignup
4

More than 5 years have passed since last update.

CentOS 7のfirewall-cmdでブラックリストを使う

Last updated at Posted at 2017-02-01

CentOS 7のfirewall-cmdでブラックリストを使う

某中華系のホストからの執拗なポートスキャンが続いたのでCentOS 7のファイアウォール機能を使ってブラックリストベースの接続拒否を行なってみたらとても簡単だった。

# ipset create blacklist hash:ip hashsize 4096
# ipset add blacklist 58.218.199.182
# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m set --match-set blacklist src -j DROP

追記
最近のfirewalldではrich roulesが拡張されてfirewalls(firewall-cmd)からもipsetが扱える様になったので、以下の様にfirewall-cmdだけでもipsetコマンドとfirewalldのdirectルールを使った場合と同じ様な設定を行えます。

firewall-cmdだけでipsetを使ったフィルタリングを実施
# firewall-cmd --permanent --new-ipset=blacklist --type=hash:ip
# firewall-cmd reload
# firewall-cmd --ipset=blacklist --add-entry=58.218.199.182
# firewall-cmd --add-rich-rule='rule source ipset=blacklist drop'

※ "firewall-cmd --new-ipset=" で新しくipsetのセットを作る場合には--permanentオプションを指定して恒久的な設定とする必要があります。(一時的なセットは作れない!)
※よって、 "firewall-cmd reload" で一旦設定をリロードして有効にする必要があります。

また、以下の様に "--add-entries-from-file=" でIPアドレスが列挙されたテキストファイルからセットを一括で読み込むことができます。

ファイルからセットを読み込む
# firewall-cmd --ipset=blacklist --add-entries-from-file=/somewere/blacklist
セットに登録されたエントリーの一覧を取得する
# firewall-cmd --ipset=blacklist --get-entries

firewall-cmdのパラメーターでエントリーの表示がlistだったりshowだったりgetだったり、削除がremoveだったりdeleteだったり、是非統一して欲しい…

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
4