2020-12-07に更新

【CentOS7】firewalldでipsetを使って通信を制限

複数のIPアドレスからCentOS7への通信をDropしたい時の設定例です
ipsetを使うとIPアドレスリストをインポートできるので便利です

新しいipset(以下例ではblocklistという名前)を作成

$ sudo firewall-cmd --permanent --new-ipset=blocklist --type=hash:net

削除する場合は --delete-ipset=blocklist

ipsetが作成されたことの確認

$ sudo firewall-cmd --permanent --get-ipsets

ipsetインポート用リストの作成

$ cat > iplist.txt <<EOL

作成例(Dropしたいアドレスを入力)

192.168.0.128/25
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
EOL

ipsetへリストの内容をインポート

$ sudo firewall-cmd --permanent --ipset=blocklist --add-entries-from-file=iplist.txt

リストにあるエントリーを削除する場合は --remove-entries-from-file=iplist.txt
エントリーの一部を削除したい場合は --remove-entry=192.168.0.128/25

ipsetの内容確認

$ sudo firewall-cmd --permanent --ipset=blocklist --get-entries

出力例

192.168.0.128/25
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24

dropゾーンへipsetを適用

$ sudo firewall-cmd --permanent --zone=drop --add-source=ipset:blocklist

dropゾーンから外したい場合は --remove-source=ipset:blocklist

dropゾーンへの適用を確認

$ sudo firewall-cmd --permanent --zone=drop --list-all

出力例

drop (active)
  target: DROP
  icmp-block-inversion: no
  interfaces:
  sources: ipset:blocklist

設定反映

$ sudo firewall-cmd --reload
ツイッターでシェア
みんなに共有、忘れないようにメモ

arohajiro

しがない元インフラエンジニアです

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント