Есть ли модуль PAM для поиска DNSBL?
Я перечислял оставшиеся проблемы безопасности на одном из моих внутренних рабочих серверов, когда пришел к выводу, что чего-то, что могло бы быть невероятно полезным, не хватало в моем исходном репозитории операционных систем.
Я искал модуль PAM, который сравнивает IP-адрес удаленного хоста с черным списком DNS (DNSBL).
Мой пример использования таков... В то время как IDS Software может ответить после обнаружения зонда, сканирования уязвимостей или атаки методом перебора -
некоторые услуги (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.
Спасибо
3 ответа
Я не знаю о таком модуле. Ваш второй вопрос (почему) будет требовать ответов, основанных, главным образом, на мнениях, поскольку я не могу придумать каких-либо определенных причин, почему такой модуль PAM не мог существовать.
Ниже приведены конструктивные соображения, которые я определил при оценке осуществимости:
- Скорость: не должен останавливать логины, чтобы хек и обратно. ssh + PAM уже находятся в плохом состоянии, когда дело доходит до задержек DNS при настройках по умолчанию. Я бы сказал, что DNS-запросы к каждому серверу должны выполняться параллельно, чтобы избежать наложения таймаутов друг на друга.
- Повторные попытки плохие: использование библиотеки C для поиска DNS - это нормально, если повторные попытки считаются подпадающими под
/etc/resolv.conf
, Если повторные попытки DNS реализованы, модуль не должен использовать библиотеку C для поиска DNS. Конечным результатом будут вложенные повторные операции. - Пропуск частных диапазонов IP: пространство RFC1918 (и аналогичное) всегда должно проходить бесплатно, поскольку бесполезно передавать эту информацию в DNSBL.
- Вопросы блокировки: что происходит, когда весь DNS недоступен? Модуль всегда терпит неудачу при входе в систему, за исключением частного IP? Это должно быть задокументировано.
- Генерируйте ошибки журнала, если вы вызваны в
auth
стек.auth
стек используется для аутентификации. Этот модуль не используется для аутентификации. Решения, которые обходятauth
стек (аутентификация по SSH-ключу, аутентификация по GSSAPI и т. д.) будет блокировать модуль, если пользователь поместит его туда.
Я сам скорее парень из Redhat, но я давно задумывался о подобном модуле. Хороший вопрос. Я не видел модуль, чтобы справиться с этим.
Что касается публикации программного обеспечения, это может помочь.
Мне никогда не везло с основными репозиториями, но у rpmforge (теперь repoforge) есть несколько довольно простых способов принять участие. Посмотреть здесь.
Для Debian / Ubuntu я не видел ни одного большого стороннего хранилища. Все они, кажется, являются специфическими для продукта. Мои вещи никогда не казались вполне подходящими, и я никогда не мог оправдать свой собственный публичный репозиторий.
Я обычно оставлял все, что нужно для упаковки, для производных от Debian, сидя на github.
Вы можете реализовать это без особых проблем, но это плохая идея.
Во-первых, давайте вспомним, что такое PAM: это система для обработки пользовательских логинов. Аутентификация, авторизация, учет и т. Д.
Итак, где это предложение падает:
- Это замедлит законный вход в систему. Как правило, замедление будет незаметным, так как поиск DNS не занимает так много времени, но может занять несколько секунд или просто тайм-аут. Что вы делаете, когда это происходит? Вы отказываете законному пользователю?
- Что еще более важно, он будет полностью блокировать законные входы в систему, даже когда все работает отлично. У многих пользователей есть несчастье быть на динамических IP-адресах, и они могут сами быть на пронизанном вредоносным ПО компьютере, который участвует в ботнете, вызывая включение IP-адреса в DNSBL, или недавно ему был назначен IP-адрес, который DNSBL в списке, хотя они сами чистые.
Существует множество способов справиться с атаками грубой силы на различные сервисы, наиболее часто используемым из которых является fail2ban, но это предложение выглядит как очень плохая идея.