Я сомневаюсь, следует ли мне использовать аутентификацию по ключу при входе в SSH или просто использовать fail2ban + ssh (вход в систему root отключен).
Безопасен ли fail2ban или лучше просто сгенерировать ключи и настроить их на всех моих клиентских машинах, которым необходимо подключиться к ssh?
Я считаю его стабильным продуктом и считаю его безопасным. В качестве дополнительной меры предосторожности я бы добавил ваш исходный IP-адрес в ignoreip
директива в jails.conf
чтобы убедиться, что вы не блокируете себя.
Поскольку он анализирует журналы ssh, необходимо будет установить сеанс TCP, поэтому подмена исходных IP-адресов и получение правильных номеров последовательностей TCP для создания своего рода вариации обратного рассеяния кажется маловероятным.
Использование клавиш поверх этого тоже неплохая идея. Другие варианты, которые помогают, - это перенос ssh на нестандартный IP, использование «недавнего» модуля iptables или просто решение, что вам все равно, пытаются ли люди взломать пароли. Видеть эта ошибка сервера пост для получения дополнительной информации об этом.
Каждый раз, когда я когда-либо реализовывал denyhosts или fail2ban в производственной среде, он создавал гарантированный поток билетов запросов на разблокировку, запросов сброса пароля, запросов на изменение настроек или управления белым списком, и, как правило, просто людей, которые отказываются входить в систему. разбираться в вещах и больше полагаться на системных администраторов в том, что они могут сделать сами.
Это не техническая проблема ни с одним из инструментов как таковых, но если число ваших пользователей исчисляется десятками или больше, это будет заметным скачком в рабочей нагрузке службы поддержки и разочарованием пользователей.
Кроме того, проблема, которую они решают, заключается в том, что они снижают риск атак грубой силы при входе в систему через ssh. Честно говоря, риск этого невероятно мал, если у вас есть хотя бы умеренно приличная политика паролей.
Я использую уже несколько лет, и, по крайней мере, это хорошая защита от скрипачей.
Отсутствие корневого входа в систему, плюс довольно длинные и случайные пароли, fail2ban и, возможно, другой порт, для большинства из нас достаточно безопасны.
Конечно, ssh-ключи намного лучше с точки зрения безопасности.
Я использовал denyhosts на нескольких моих производственных и непроизводственных серверах, и он отлично работает (у меня были проблемы с синхронизацией демонов, поэтому я не использую его сейчас, но, возможно, он снова работает нормально).
Это не только делает вашу систему более безопасной, но и помогает вам вести более чистые журналы и просто не допускать попадания нежелательных людей на экраны входа в систему ...
Я уже некоторое время использую Fail2Ban, и совсем недавно я видел распределенные попытки взлома моего SSH-сервера. Такими темпами они никогда не добьются успеха, но я слежу за этим.
Они просматривали словарь, каждый IP-адрес пытается дважды, после того, как эти попытки терпят неудачу, другой IP-адрес делает то же самое и т. Д. Я подумал о запрете IP-адресов, которые пытаются использовать неизвестные имена пользователей x раз. Но пока что я получил несколько тысяч различных IP-адресов, пытающихся войти; и меня беспокоит, что даже если я заблокирую их все, их все равно будет.