中国からのアクセスを遮断 (firewalld編)
DNSサーバーなどを公開してると、中国からのマナーの悪いアクセスでログが埋まっちゃうことがあるよね💦
そこで!firewalldを使って中国からのIPアドレスをスッキリ遮断しちゃおう!✨
🔧 Step 1: 必要なツールをインストール
sudo dnf install -y firewalld curl
※ firewalld が無効なら以下で有効にして起動してね👇
sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd --state # → running になればOK
📥 Step 2: 中国のIPリストを取得しよう
- IPv4: cn-aggregated.zone (IPv4)
- IPv6: cn-aggregated.zone (IPv6)
🚀 Step 3: 初回の手動登録(まずこれやろう!)
# firewalldを一時的に設定(永続化は次の手順)
# IPv4のIPリスト登録
curl -s https://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone \
| xargs -n1 -I{} sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="{}" reject'
# IPv6のIPリスト登録(エラーになるIPもあるので注意)
curl -s https://www.ipdeny.com/ipv6/ipaddresses/aggregated/cn-aggregated.zone \
| xargs -n1 -I{} sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv6" source address="{}" reject'
# 設定を適用
sudo firewall-cmd --reload
📅 Step 4: 毎日自動更新する設定
以下のスクリプトを作って、自動で最新のIPを取得&ブロックするようにしよう⏰
📜 スクリプトの作成
sudo vi /usr/local/bin/update-china-firewalld.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"
# 既存ルール削除
firewall-cmd --permanent --remove-rich-rules='rule family="ipv4" source address= reject'
firewall-cmd --permanent --remove-rich-rules='rule family="ipv6" source address= reject'
# IPv4追加
curl -s $IPV4_URL | xargs -n1 -I{{}} firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="{{}}" reject'
# IPv6追加(IPが不正な場合エラーが出ることも)
curl -s $IPV6_URL | xargs -n1 -I{{}} firewall-cmd --permanent --add-rich-rule='rule family="ipv6" source address="{{}}" reject'
# 反映
firewall-cmd --reload
実行権限を付けよう👇
sudo chmod +x /usr/local/bin/update-china-firewalld.sh
🕒 cronに登録して毎日03:00に実行
sudo crontab -e
以下を追加👇
0 3 * * * /usr/local/bin/update-china-firewalld.sh >/dev/null 2>&1
✅ これで完了!
・初回登録済み!
・毎日03:00にIP自動更新✨
・ログもスッキリ!
・サーバーも軽くなる〜💨
おつかれさま〜💛
コメント
コメントを投稿