Назад | Перейти на главную страницу

есть ли модуль PAM для поиска DNSBL?

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

Я искал Модуль PAM, который проверяет IP-адрес удаленного хоста на соответствие Черный список DNS (DNSBL).

Мой вариант использования таков ... Хотя Программное обеспечение IDS может ответить после обнаружения зондирование, сканирование уязвимостей или атака методом перебора-

некоторые услуги (i.e. Apache2, proFTPd, Sendmail, SpamAssassin) включать DNSBL модуль или функция, которые помогают значительно уменьшить количество машин, которые могут участвовать в атаке. он делает это, блокируя известные зараженные или зомби-машины, общедоступные прокси и узлы ретрансляции выхода TOR (например).

Другие, насколько мне известно, нет. Dovecot/Saslauthd не включают такую ​​функциональность. Они часто становятся целью атака грубой силой в моей сети. эти услуги по-прежнему покрываются системой IDS, но страдают от большинства атак.

С модулем PAM, который проверяет IP удаленного хоста во время аутентификации на соответствие DNSBL ... эффективно ВСЕ сервисы могут иметь этот дополнительный уровень устойчивости к распределенной атаке грубой силы или зондированию (ограничивая возможные машины, которые могут быть использованы в указанной атаке)

Мне интересно, существует ли существующий модуль PAM для этой цели? а если нет, то почему разработчики этого не заметили?

Это был бы невероятно простой модуль, который (на мой взгляд) мог бы послужить великой цели ..

На данный момент я написал сценарий, который взаимодействует с PAM (через модуль «pam_exec.so»). По какой-то причине это не работает (просто приводит к сбою BASH). Когда у меня будет возможность, я планирую попробовать вместо него модуль "pam_script.so" ..

Я бы хотел написать для этого модуль PAM, но не уверен, насколько сложно поместить часть программного обеспечения в репозитории Debian или Ubuntu.

Спасибо

Я сам больше люблю redhat, но давно задумывался о подобном модуле. Хороший вопрос. Я не видел модуля для этого.

Что касается программного обеспечения для публикации, это может помочь.

Мне никогда не везло с основными репозиториями, но у rpmforge (теперь repoforge) есть несколько довольно простых способов принять участие. Посмотреть здесь.

Для debian / ubuntu я не видел ни одного большого стороннего репозитория. Все они кажутся специфичными для продукта. Мои материалы никогда не подходили, и я не мог оправдать запуск собственного публичного репозитория.

Я был склонен просто оставлять все, что нужно, для деривативов debian с исходным кодом на github.

Мне не известен такой модуль. Ваш второй вопрос (почему) будет требовать ответов, которые в основном основаны на мнении, поскольку я не могу придумать каких-либо окончательных причин, почему такой модуль PAM не мог существует.

Ниже приведены соображения по дизайну, которые я определил при оценке осуществимости:

  • Скорость: Должен не задерживать входы в систему и обратно. ssh + PAM уже в плохом месте когда дело доходит до задержек DNS в конфигурациях по умолчанию. Я бы даже сказал, что DNS-запросы к каждому серверу должны выполняться параллельно, чтобы избежать наложения таймаутов друг на друга.
  • Повторные попытки плохи: Использование библиотеки C для поиска DNS нормально, если считается, что повторные попытки относятся к сфере компетенции /etc/resolv.conf. Если повторные попытки DNS реализованы, модуль не должен используйте библиотеку C для поиска DNS. Конечным результатом будут вложенные операции повтора.
  • Пропуск частных диапазонов IP-адресов: RFC1918 (и аналогичные) пространство всегда должно получать бесплатный проход, так как передавать эту информацию в DNSBL бесполезно.
  • Замечания по блокировке: Что происходит, когда весь DNS недоступен? Всегда ли модуль не выполняет вход в систему, за исключением частного IP? Это должно быть задокументировано.
  • Создавать ошибки журнала, если вы вызываете в auth стек. В auth стек используется для аутентификации. Этот модуль не используется для аутентификации. Решения в обход auth стек (SSH-ключ аутентификации, GSSAPI auth и т. д.) отключит модуль, если пользователь поместит его туда.

Вы могли бы реализовать это без особых проблем, но это плохая идея.

Во-первых, давайте вспомним, что такое PAM: это система для обработка логинов пользователей. Аутентификация, авторизация, учет и др.

Итак, где это предложение падает, это:

  1. Так и будет замедлить законный вход в систему. Как правило, замедление будет незаметным, так как поиск DNS занимает не так много времени, но он жестяная банка займет несколько секунд или просто полностью отключится. Что вы будете делать, когда это произойдет? Вы отказываетесь от законного пользователя?
  2. Важнее, Так и будет полностью заблокировать легитимные логины, даже если все работает отлично. Многие пользователи имеют несчастье находиться на динамических IP-адресах, и они могут сами находиться на зараженном вредоносным ПО компьютере, который участвует в ботнете, в результате чего IP-адрес будет указан в DNSBL, или им недавно был назначен IP-адрес, который есть в списке DNSBL, хотя сами они чистые.

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