CloudflareのIPアドレスを使用してUFWルールを自動更新する方法

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経由でのサイトへのアクセス性を確保できます。.

このページは役に立ちましたか?

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です