中国からのアクセスを遮断 (iptables編)

🌐 はじめに 😊

DNSサーバーを公開していると…

  • 広告目的っぽいリクエストが増える
  • 特定のURLばかり指定される
  • 特に中国からのアクセスはマナーが良くないことが多くて😓
  • ログがどんどん埋まっちゃうんだよね💦

そこで、中国IPをサクッと遮断すると…

  • ログがスッキリ!✨
  • サーバー負荷も軽減👍
  • とっても気持ちいいからオススメだよ🎉

📘 参考IPリスト

注意 firewalledと競合する可能性があるので併用不可です。

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo dnf remove -y firewalld

🔥 方法:CentOS 9+iptables/ipsetで中国IPをブロック

以下は CentOS 9 環境に対応した、安全&軽量なブロック手順だよ👍

① 必要パッケージをインストール

sudo dnf install -y ipset curl

② 自動更新スクリプトを作成

sudo vi /usr/local/bin/update-china-block.sh
#!/bin/bash

# === 設定 ===
IPV4_URL="https://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone"
IPV6_URL="https://www.ipdeny.com/ipv6/ipaddresses/aggregated/cn-aggregated.zone"
SET4="china-ipv4"
SET6="china-ipv6"

# === ipset作成(存在しないときだけ)===
ipset list $SET4 >/dev/null 2>&1 || ipset create $SET4 hash:net
ipset list $SET6 >/dev/null 2>&1 || ipset create $SET6 hash:net family inet6

# === ipsetクリア ===
ipset flush $SET4
ipset flush $SET6

# === 新しいIPリストを取得して追加 ===
curl -s $IPV4_URL | xargs -n1 ipset add $SET4
curl -s $IPV6_URL | xargs -n1 ipset add $SET6

# === iptablesルールがなければ追加 ===
iptables -C INPUT -m set --match-set $SET4 src -j DROP 2>/dev/null || \
  iptables -I INPUT -m set --match-set $SET4 src -j DROP

ip6tables -C INPUT -m set --match-set $SET6 src -j DROP 2>/dev/null || \
  ip6tables -I INPUT -m set --match-set $SET6 src -j DROP

保存後に実行権限を付けるよ👇

sudo chmod +x /usr/local/bin/update-china-block.sh

③ cronに登録(毎朝3時に自動更新)

sudo crontab -e

以下を追加:

0 3 * * * /usr/local/bin/update-china-block.sh >/dev/null 2>&1

✅ 初回実行(テスト)

sudo /usr/local/bin/update-china-block.sh

🔁 再起動対策(ipsetは揮発性のため)

再起動時にも自動で読み込ませる設定を追加👇


sudo sh -c 'echo "/usr/local/bin/update-china-block.sh" >> /etc/rc.d/rc.local'
sudo chmod +x /etc/rc.d/rc.local

🎉 おつかれさま!

これで毎日03:00に最新の中国IPリストを取得して自動ブロックできるよ👌
再起動しても大丈夫だから、ログもサーバーもスッキリ快適に!

ぜひ試してみてね~😊✨

コメント

このブログの人気の投稿

ゲーム発展国++ のコツ

Nuro光 ONU F660A オススメ設定

Xperia XZ Premium に BlissRoms というカスタムROMを入れてみた