Записи в /etc/hosts.deny игнорируются – несоответствие имени хоста/адреса

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

В моем /etc/hosts.deny перечислены несколько доменов известных сканеров/ботов, которые не имеют добрых намерений или, по крайней мере, вызывают бессмысленный трафик, постоянно сканируя мой сервер.

Таким образом, одна строка там для примера выглядит так:

ALL : .privatelayer.com, .hdrn.nu, .internet-census.org, .internet-albedo.net, .onyphe.net, .binaryedge.ninja, .censys-scanner.com, .internet-measurement.com, .internettl.org, .shodan.io, .inspici.com, 88.149.177.205, .hadrian.io

Но теперь, когда я посмотрел в /var/log/auth.log, я могу найти записи такого типа

warning: /etc/hosts.deny, line 18: host name/address mismatch: 141.255.166.90 != hostedby.privatelayer.com

Более того, IP 141.255.166.90 все еще имеет доступ к моему серверу, запись, кажется, не оказывает никакого эффекта.

И когда я проверяю этот IP, получаю следующий результат:

nslookup 141.255.166.90
90.166.255.141.in-addr.arpa     name = hostedby.privatelayer.com.

Так почему же он игнорирует мою запись “.privatelayer.com”? Разве эта запись не должна действовать как подстановочный знак и охватывать также “hostedby.privatelayer.com”?

Спасибо!

Я советую использовать межсетевые экраны, такие как iptables или firewalld.

Чтобы блокировать входящий трафик вместо добавления записей в hosts.deny.

Современные сервисы, такие как nginx, httpd или приложения на Node.js, не используют TCP Wrappers.

Файлы /etc/hosts.deny и /etc/hosts.allow являются частью TCP Wrappers (libwrap), которые работают только с сервисами, скомпилированными с поддержкой этой библиотеки, такими как:
sshd
vsftpd
telnetd
xinetd services

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

Вопрос, который вы задали, касается использования файлов /etc/hosts.deny и /etc/hosts.allow для управления доступом к вашему серверу. Это часть системы, известной как TCP Wrappers. Проблема, которую вы описали — это несоответствие в именах хостов (host name/address mismatch), что приводит к тому, что попытки заблокировать определенные домены и IP-адреса не работают должным образом.

Теория: Как работают TCP Wrappers

TCP Wrappers — это механизм для контроля доступа к интернет-сервисам, который работает на уровне приложений. Он контролирует доступ, основываясь на информации из файлов /etc/hosts.allow и /etc/hosts.deny. Основной задачей этих файлов является фильтрация входящих соединений, управляемых через библиотеки, поддерживающие TCP Wrappers.

1. Файл /etc/hosts.allow: Этот файл проверяется первым и содержит правила доступа для разрешённых хостов и доменов.

2. Файл /etc/hosts.deny: Проверяется вторым, он содержит правила для запрета доступа, если хост или домен не был разрешён в /etc/hosts.allow.

Однако существует ряд ограничений и нюансов, которые важно учитывать:

  • Поддержка только определённых демон-сервисов: Не все современные сервисы поддерживают TCP Wrappers. Например, веб-серверы, такие как Nginx или Apache, не используют эту технологию.

  • Проблемы с разрешением имён: Иногда может возникнуть ситуация, когда IP-адрес не совпадает с именем хоста, вероятно, из-за особенностей обратного разрешения DNS (reverse DNS lookup).

Пример: Разрешение доменных имён и проблема несоответствия

Ваш пример ‘ALL : .privatelayer.com’ предполагает использование подстановочного знака для блокировки всех поддоменов privatelayer.com. Но предупреждение в /var/log/auth.log указывает на несоответствие IP-адреса и доменного имени, что означает, что TCP Wrappers не может успешно выполнить обратное разрешение IP-адреса до ожидаемого доменного имени.

Ваш запрос nslookup возвращает "hostedby.privatelayer.com" для IP 141.255.166.90, что и вызывает этот конфликт. Это проблема, потому что механизм TCP Wrappers ожидает точное соответствие или успешный исход DNS-запроса.

Приложение: Рекомендации по управлению доступом

Учитывая актуальные проблемы и ограничения TCP Wrappers, в современных условиях лучше использовать более надёжные и гибкие решения:

  1. Используйте брандмауэры:

    • iptables или firewalld: Эти инструменты предоставляют более широкий контроль над входящим и исходящим трафиком. Вы можете настроить правила, которые будут блокировать трафик на базовом уровне обмена данными через сеть.
    • Например, для блокировки IP-адреса можно использовать:
      iptables -A INPUT -s 141.255.166.90 -j DROP
  2. Настройка на уровне приложений:

    • Некоторые серверные приложения, такие как Nginx и Apache, имеют свои собственные механизмы фильтрации. Это позволяет блокировать доступ по доменным именам и IP-адресам непосредственно в настройках сервиса.
  3. Мониторинг и логирование:

    • Важно отслеживать трафик, который приходит на ваш сервер, и анализировать логи для выявления подозрительных действий. Это позволяет своевременно реагировать на угрозы.
  4. Использование современных инструментов защиты:

    • Рассмотрите возможность использования более современных систем обнаружения и предотвращения вторжений (IPS/IDS).
  5. Обновление и поддержка всех сервисов:

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

Понимание этих рекомендаций и их применение поможет вам более эффективно защитить ваш сервер от нежелательного сетевого трафика и угроз.

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

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