Cloudflareの後方に座る際は、次の点に注意してください ただ CloudflareのIP範囲からのポート80および443へのトラフィックを許可します。Cloudflareはこれらの範囲を定期的に更新するため、UFWのルールを自動的に更新する必要があります。以下のスクリプトから cloudflare-ufw, ポール・リード著の『』は、まさにそれを実現している。.
1. スクリプトをダウンロードし、実行可能にする
bashsudo wget -O /usr/local/bin/cloudflare-ufw.sh \
https://raw.githubusercontent.com/Paul-Reed/cloudflare-ufw/refs/heads/master/cloudflare-ufw.sh
sudo chmod +x /usr/local/bin/cloudflare-ufw.sh
2. 現行のUFW規則を確認する(変更前)
bashsudo ufw status verbose
次のような表示が出るでしょう:
textアクション 送信元
-- ------ ----
22/tcp 許可 どこからでも
80/tcp 許可 どこからでも
443 許可 どこからでも
...
3. 過度に寛容な80/443ポートのルールを削除する
これらの規則では現在、以下が許可されています いずれか Webポートへのアクセス用IPアドレス。これらをCloudflare専用のルールに置き換えます。.
bashsudo ufw delete allow 80/tcp
sudo ufw delete allow 443/tcp
UFWから確認を求められた場合は、次のように入力してください y そしてEnterキーを押します。.
もう一度ステータスを確認してください:
bashsudo ufw status verbose
もう表示されなくなるはずです 80/TCP または 443 と 許可 出典: どこでも.
4. Cloudflare‑UFW スクリプトを実行する
bashsudo /usr/local/bin/cloudflare-ufw.sh
このスクリプトの機能:
- から最新のCloudflare IPv4およびIPv6アドレス範囲を取得します
https://www.cloudflare.com/ips-v4そして.../ips-v6. - ポート80および443に対して許可する既存のUFWルールをすべて削除します
どこでも. - 新しいものを追加します
許可規則 ただ ポート80(HTTP)および443(HTTPS)における各Cloudflare IP範囲について。. - 必要に応じてUFWを再読み込みし、新しいルールを直ちに有効にします。.
完了したら、以下を確認してください:
bashsudo ufw status verbose
次のような行がいくつか表示されるはずです:
textアクション宛先
-- ------ ----
80/tcp ALLOW 173.245.48.0/20
80/tcp ALLOW 103.21.244.0/22
...
443 ALLOW 173.245.48.0/20
443 ALLOW 103.21.244.0/22
...
ポート80および443については、それ以外のすべてのIPアドレスは暗黙的に拒否されます。.
5. cron を使って毎日の更新を自動化する
CloudflareはいつでもIPアドレス範囲を変更する可能性があります。ファイアウォールの設定を最新の状態に保つため、スクリプトを毎日(例:午前3時)実行するようにスケジュール設定してください。.
ルートユーザーのcrontabを編集します:
bashsudo crontab -e
プロンプトが表示されたら、お好みのエディタを選択してください(例:, ナノ).
末尾に次の行を追加してください:
text0 3 * * * /usr/local/bin/cloudflare-ufw.sh >> /var/log/cloudflare-ufw.log 2>&1
これは次のように動作します:
- サーバー時間の毎日午前3時にスクリプトを実行します。.
- 出力とエラーを
/var/log/cloudflare-ufw.log監査のため。.
エディタを保存して終了します。.
6. cronジョブを確認する
確認のためにrootユーザーのcrontabを表示します:
bashsudo crontab -l
新しい行が表示されるはずです。.
必要に応じて、強制的に直ちに実行し、ログを確認してください:
bashsudo /usr/local/bin/cloudflare-ufw.sh
sudo tail -n 20 /var/log/cloudflare-ufw.log
7. 継続的なメンテナンス
いつでも手動でルールを更新するには:
bashsudo /usr/local/bin/cloudflare-ufw.sh
ログを確認するには:
bashsudo less /var/log/cloudflare-ufw.log
万が一、「どこでも許可」に戻す必要が生じた場合(本番環境では推奨されません):
bashsudo ufw delete allow from any to any port 80 proto tcp sudo ufw delete allow from any to any port 443 proto tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp
この設定により、UFWファイアウォールは常に現在のCloudflare IP範囲からのHTTP/HTTPSトラフィックのみを受け入れるようになります。これにより、攻撃対象領域を大幅に縮小しつつ、Cloudflare経由でのサイトへのアクセス性を確保できます。.
コメントを残す