Рейтинг:1

SSHD: разница между "соединение закрыто..." и "отключено от..." в файле журнала

флаг es

Служба sshd на моем сервере Ubuntu постоянно подвергается атакам из-за различных IP-адресов и идентификаторов пользователей.

Согласно с /var/log/auth.log файл, существует три разных типа сбоев из-за неизвестного идентификатора и IP-адреса:

  • Отключено от недействительного пользователя...
  • Соединение закрыто недействительным пользователем...
  • Соединение закрыто пользователем xxx.xxx.xxx.xxx

В чем разница между тремя? Предполагает ли что-либо из них успешный (неавторизованный) вход в систему? особенно последний...

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

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

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

Рейтинг:1
флаг bd

Сообщения:

Отключено от недействительного пользователя
Соединение закрыто недействительным пользователем

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

Вместо этого неудачная попытка с существующим именем пользователя будет регистрироваться как:

Соединение закрыто аутентифицирующим пользователем 

Успешный вход будет зарегистрирован как:

Принятый открытый ключ для

Сообщение:

Соединение закрыто пользователем <ipaddress>

(без упоминания пользователя) указывает на подключение к ssh-порту вашего сервера, где не было предпринято никаких попыток аутентификации, т.е. на самом деле войти в систему. Обычно это сканирование для сбора открытых портов ssh и версии сервера ssh, которую они используют для поиска серверов с известными уязвимостями. Поскольку повторение такой попытки не увеличивает риск, для фейл2бан чтобы заблокировать их.

Рейтинг:1
флаг il

По соглашению с @tilman-schmidt, всего несколько центов с моей стороны (относительно fail2ban и т. д.)...

Люди OpenSSH постоянно меняют поведение ведения журнала, поэтому он может не учитываться fail2ban по умолчанию (это также зависит от того, где происходит отключение, например.на этапе предварительной аутентификации или после ввода имени пользователя, а также какие методы аутентификации разрешены в вашем sshd, а также при поведении «нарушителя»).

Я бы хотя бы установил LogLevel VERBOSE в sshd_config, как описано в /etc/fail2ban/filter.d/sshd.conf

Также обратите внимание на этот ответ на аналогичный вопрос - https://unix.stackexchange.com/questions/662946/fail2ban-regex-help-for-banning-sshd-connection-attempts/663002#663002

не раньше, чем через 24 часа, злоумышленники переключились на ротацию сотен уникальных IP-адресов.

Это никак не связано с использованием fail2ban — сканеры, найдя прослушиватель sshd, «опубликовали» его в каком-то из своих списков, чтобы можно было начать более глубокое сканирование (например, с распределенными ботнетами). Это печальная участь любого сервера с открытыми портами наружу.

Вы можете попробовать изменить порт ssh на что-то другое, но это просто избежит половины скриптовых детишек (если вы запретите попытки сканирования портов) и, по сути, вообще не панацея. Но вы можете резко сократить количество злоумышленников хотя бы на короткое время, до нескольких месяцев. Что может определенно помочь, так это включить bantime.increment в fal2ban (для джейла sshd или по умолчанию).

fail2ban, похоже, не признает повторные попытки, которые приводят к закрытию соединения

Это не совсем правильно. Вы должны установить режим = агрессивный за sshd тюрьма в тюрьма.местный чтобы позволить fail2ban рассмотреть любые виды «атак» (не только проблемы аутентификации), также происходящие с помощью сканеров портов и подобных DoS-вещей.

И вы можете увидеть, что именно найдет fail2ban с вашим текущим фильтром с помощью этой команды (примечание совпало в последней строке результата):

fail2ban-regex /var/log/auth.log 'sshd [режим = агрессивный]'
codechimp avatar
флаг es
Спасибо за предложения по `fail2ban`. Я знаю, что это не вина `fail2ban`. При смене порта это неплохая идея, за исключением того, что у меня есть другие порты ssh, которые им еще предстоит найти. Я бы предпочел, чтобы они просто стучали по тому, что уже нашли.

Ответить или комментировать

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