Как использовать PAM для ограничения отказавших попыток входа в систему IP?

Вы не собираетесь располагать надежное самообнаружение. Машина может зарегистрироваться "да, я, кажется, здесь", но она не сможет зарегистрироваться, если это будет выключено или полностью подвешенное, поскольку это будет, ну, в общем, выключено или полностью подвешено. Также можно проверить, что веб-сервер работает локально и смог бы зарегистрировать сетевое отключение электричества, которое влияет на все, что сервер видит (путем запроса объектов от внешнего мира с libcurl или просто отсылки запросов ping), но Вы не сможете обнаружить более прекрасный гранулярный отказ, который останавливает апача, являющегося видимым к внешнему миру.

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

Править:

Согласно обсуждению в комментариях, присоединенных к Вашему вопросу, существует много инструментов, которые позволяют машине контролировать свое собственное состояние, а также (или вместо других). Я использую collectd (найденный в Debian и репозиториях стандарта Ubuntu, и вероятно столь же легкий овладеть в других дистрибутивах) для сбора данных по загрузке ЦП, загрузке ввода-вывода, использованию памяти и многим другим переменным и немного измененной версии этого cgi сценария для рисования графиков получающихся наборов данных. Полезный для контроля причуд как необъяснимый CPUD загружают увеличение я замеченный VMware, которого VMs налагают (который уходит, после того как Вы перезагружаете VM, только для медленного подъема назад снова). Существует много подобных инструментов, таким образом, необходимо смочь найти тот, который работает близко к тому, как Вы хотите его также. collectd имеет много встроенных плагинов, и можно записать собственное в C, жемчуге или просто сценарии оболочки при необходимости в чем-то, что не является там как стандарт.

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

5
задан 4 June 2012 в 17:26
3 ответа

Хотя PAM может быть полезен для ограничения скорости входа в систему и установки блокировок ( как заблокировать учетную запись пользователя linux после определенных неудачных попыток ), лучший инструмент для обработки количества попыток из один и тот же IP-адрес должен заблокировать его от сетевого трафика из-за множества последовательных попыток.

Итак, для этого ответ - не модуль PAM. Вместо этого используйте fail2ban .

3
ответ дан 3 December 2019 в 01:04

Существует модуль PAM, который позволяет вам вести черный список, который называется Автоматический черный список PAM ( pam_abl ). До недавнего времени он не обновлялся какое-то время, но у него появился новый сопровождающий, который снова активно работал над ним.

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

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

Я запускаю команду для добавления заблокированного хоста в ipset, который я настроил в моем брандмауэре.


Вот как я обрабатываю блокировку из PAM в брандмауэр:

В /etc/pam.d/sshd :

auth       include      system-remote-login
auth       required     pam_abl.so config=/etc/security/pam_abl.conf

В файле pam_abl.conf :

host_clr_cmd=ipset del blacklist %h; logger clear host %h
host_blk_cmd=ipset add blacklist %h; logger block host %h

Сразу добавить хост, который не соответствует критериям blocked добавлен в список ipset, который я заблокировал в iptables. Вы также можете напрямую удалить хост в iptables следующим образом:

host_blk_cmd=iptables --append INPUT --source %h --jump DROP; logger block host %h

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

s от повторного прохождения через брандмауэр.

s от повторного прохождения через брандмауэр.

3
ответ дан 3 December 2019 в 01:04

Я рекомендую пошатывание ваших решений по безопасности. Безопасность лучше всего реализуется в Layers, а наличие одного решения означает, что у вас будет Single Point of Failure.

Fail2Ban, как уже говорилось выше Джеффом Ферландом, является хорошим решением для первого шага. Он будет отслеживать ваши лог файлы на наличие признаков атаки грубой силы, и может быть настроен на общее прослушивание против PAM.

Но что произойдет, если этот лог файл будет утерян? права изменятся? если целевой лог файл изменится? если fail2ban разобьется? если обновление изменит способ, которым вы собираетесь работать? шаблон регексов должен быть обновлен? что произойдет, если диск или раздел назначения лог-файла переполнится? fail2ban становится бесполезным.


  • Введение libpam_shield

Существует PAM модуль с именем pam_shield. он не только более эффективен (работает непосредственно на уровне логина), но и использует базу данных быстрого доступа, которая может сохраняться при перезагрузках. Она использует меньше памяти и не требует запущенной службы, которая может выйти из строя. pam_shield также можно настроить для работы с таблицей маршрутизации, а также IPTables.

Как и в случае с Fail2Ban, вы указываете период времени, в течение которого хост будет считаться баном. вы указываете максимальное количество попыток, которое может сделать удалённый хост, и период времени, в течение которого он будет банироваться.

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

Вот ссылка на страницу руководства по конфигурационным файлам: shield.conf


  • Introduction pam_tally2

Вы также можете рассмотреть возможность блокировки pam_tally2 учетной записи конкретного пользователя.

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

это особенно полезно на общем сервере, когда атака исходит "изнутри", когда вы не можете заблокировать локальный хост (т.е. 127.0.0.1).

Надеюсь, это поможет! Я понимаю, что первоначальная запись немного устарела, но очень важно реализовать безопасность послойно... и охватить все ваши базы! нет пакета, который вы можете "просто установить", чтобы сделать вашу систему безопасной. даже Fail2Ban .

6
ответ дан 3 December 2019 в 01:04

Теги

Похожие вопросы