~3 минуты, Опубликовано 17.09.2024

Автоматическое обновление IP-Адресов Cloudflare в Nginx: Полное Руководство

Автоматическое обновление IP-Адресов Cloudflare в Nginx: Полное Руководство

Cloudflare — популярный сервис для защиты веб-сайтов от DDoS-атак, ускорения загрузки страниц и обеспечения безопасности. Если вы используете Cloudflare для вашего сайта, важно, чтобы ваш веб-сервер был настроен на правильное получение реальных IP-адресов пользователей, которые проходят через Cloudflare. В этой статье мы расскажем, как автоматизировать обновление IP-адресов Cloudflare в конфигурационном файле Nginx с помощью скрипта на bash.

Почему Важно Обновлять IP-Адреса Cloudflare

Cloudflare использует множество IP-адресов для предоставления своих услуг. Эти адреса могут меняться, и если ваш сервер не будет обновлять список IP-адресов, он может не корректно определять реальный IP-адрес клиента. Это может привести к проблемам с безопасностью и доступом.

Что Нам Потребуется

Для автоматизации процесса обновления IP-адресов Cloudflare нам понадобятся следующие инструменты:

  • Bash: для написания скрипта.
  • Cron: для планирования выполнения скрипта.
  • Nginx: веб-сервер, который мы будем настраивать.

Шаг 1: Создание Скрипта

Первый шаг — создание bash-скрипта, который будет скачивать текущий список IP-адресов Cloudflare и обновлять конфигурационный файл Nginx.

  1. Откройте терминал и создайте новый файл скрипта:
    sudo nano /usr/local/bin/update-cloudflare-ips.sh
  2. Вставьте в файл следующий код:
    #!/bin/bash
    
    # URL для получения IP-адресов Cloudflare
    CLOUDFLARE_IPS_URL="https://www.cloudflare.com/ips-v4"
    
    # Путь к файлу конфигурации Nginx
    NGINX_CONFIG_FILE="/etc/nginx/bx/maps/cloudflare.conf"
    
    # Создание или очистка конфигурационного файла
    echo "# CloudFlare IPs" > $NGINX_CONFIG_FILE
    
    # Загрузка IP-адресов и запись в конфигурационный файл
    curl -s $CLOUDFLARE_IPS_URL | while read ip; do
        echo "set_real_ip_from $ip;" >> $NGINX_CONFIG_FILE
    done
    
    # Добавление строки для заголовка
    echo "real_ip_header CF-Connecting-IP;" >> $NGINX_CONFIG_FILE
    
    # Проверка конфигурации Nginx
    if nginx -t; then
        # Перезагрузка Nginx для применения изменений
        systemctl reload nginx
        echo "Nginx configuration updated and reloaded successfully."
    else
        echo "Nginx configuration test failed. Please check the file: $NGINX_CONFIG_FILE"
        exit 1
    fi
    

     

  3. Сделайте скрипт исполняемым:
    sudo chmod +x /usr/local/bin/update-cloudflare-ips.sh

     

Шаг 2: Настройка Cron для Регулярного Выполнения

Теперь, когда у нас есть скрипт, его нужно настроить для регулярного выполнения, чтобы IP-адреса обновлялись автоматически.

  1. Откройте редактор crontab:
    sudo crontab -e
  2. Добавьте строку для ежедневного выполнения скрипта. Например, чтобы запускать скрипт каждый день в 3:00 ночи:
    0 3 * * * /usr/local/bin/update-cloudflare-ips.sh
  3. Сохраните изменения и выйдите из редактора.

Проверка и Отладка

После настройки скрипта и cron, убедитесь, что всё работает правильно:

  1. Запустите скрипт вручную, чтобы проверить его работу:
    sudo /usr/local/bin/update-cloudflare-ips.sh
  2. Проверьте конфигурацию Nginx:
    sudo nginx -t
  3. Просмотрите логи на наличие ошибок:
    • Логи Nginx:
      sudo tail -f /var/log/nginx/error.log
    • Логи Cron:
      sudo grep CRON /var/log/syslog

Заключение

Автоматическое обновление IP-адресов Cloudflare позволяет вашему серверу всегда иметь актуальный список IP-адресов, что критично для правильной работы защиты и обеспечения безопасности. Следуя описанным шагам, вы сможете настроить автоматическое обновление и поддерживать ваш сервер в актуальном состоянии.


Категории: