Сайт не загружается, если политика цепочки input в Iptables установлена на DROP, несмотря на открытые порты.

Вопрос или проблема

Всем привет и с наступающим Новым годом,

Работаю на сервере, который управляет утилитарным сайтом среди других сервисов. Пытаюсь настроить файрвол:

root@vps-93cd9763:/etc# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     all  --  185.121.228.0/24     anywhere

185.121.228.0/24 — это откуда я подключаюсь к серверу через SSH.

Какие другие порты мне нужно открыть, чтобы сайт загружался? Потому что когда я возвращаю политику по умолчанию на ACCEPT, сайт загружается нормально.

Также есть NGINX, который выполняет внутреннюю переадресацию:

server {
    # Listen on ipv4
    listen 80;
    listen [::]:80;

    server_name _;

    # Redirect all insecure http:// requests to https://
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name _;

    root /var/www/html;
    index index.php index.html;

    include /etc/nginx/templates/misc.tmpl;
}

Любые идеи будут очень признательны!

Ответ или решение

Здравствуйте,

Судя по предоставленной информации, у вас возникают сложности с загрузкой веб-сайта при установке политики DROP в цепочке INPUT вашего iptables. Вы уже открыли основные порты для HTTP (80) и HTTPS (443), что правильно, так как NGINX использует их для обслуживания запросов. Однако сайт недоступен, что может указывать на несколько возможных проблем.

Возможные причины и рекомендации:

  1. Обмен криптографическими данными:

    • Уделите внимание тому, что ваш сервер обрабатывает SSL через порт 443. Проверьте, что сертификаты SSL/TSL настроены правильно и, возможно, получение обновлений с сервиса Let’s Encrypt осуществляется через соответствующие порты. Обычно это касается портов 80 и 443, но иногда используются дополнительные порты для автоматической проверки и обновления сертификатов.
  2. DNS и другие сетевые службы:

    • Если ваш сервер хостит DNS-записи (удаленные обновления или служебные записи), вам может потребоваться открыть дополнительные порты, связанные со служебными DNS-запросами (обычно UDP 53).
  3. Обработка перенаправления:

    • Ваша конфигурация NGINX содержит правило перенаправления с HTTP на HTTPS. Убедитесь, что это правильно обрабатывается и клиент имеет доступ к обоим портам (80 для перенаправления и 443 для окончательной загрузки).
  4. Шлюзы и межсетевые экраны:

    • Если применяется какой-либо файловый фильтр перед входом на ваш сервер, убедитесь, что он не блокирует необходимых портов или трафика.
  5. Прочие внутренние службы:

    • Возможно, ваше приложение или сайт использует внутренние API или сервисы, которые требуют открытых портов. Например, взаимодействие с базами данных может потребовать дополнительных открытых портов в локальной сети, если они не подразумеваются вашей первоначальной конфигурацией.

Решение проблемы:

  1. Лог-файлы:

    • Просмотрите соответствующие лог-файлы NGINX и логи системы, чтобы обнаружить дополнительные полезные сведения о причине отказа в обслуживании запросов.
  2. Диагностика через iptables:

    • Выполните команду iptables -nvL для более детального вывода правил о трафике и убедитесь, что неправильно трактованный трафик не блокируется.
  3. Мониторинг состояния:

    • Используйте утилиты, такие как netstat или ss, для мониторинга сетевых подключений и выявления активных прослушиваемых портов.

Учитывая сложность сетевых конфигураций, важно все действия проверять в тестовой среде перед внедрением в живую продуктивную систему. Если вышеуказанные шаги не помогут, возможно, стоит обратиться за консультацией к сетевому специалисту для более углубленного анализа конфигурации сетевых подключений.

С уважением,
Ваш ИТ консультант.

Оцените материал
Добавить комментарий

Капча загружается...