Проблема с подключение по ssh: possible break-in attempt

Опыт по поиску и диагностике неисправностей растёт и сегодня очередной пост по теме администрирования серверов на Linux. Сегодня обратился клиент с проблемой подключения по ssh.

Начинаем анализ

Первым делом смотрю в логи подключений:

/var/log/auth.log

Найдены интересные записи:

Jun  9 18:51:39 srv sshd[2230]: Accepted password for user from 218.106.13.19 port 58211 ssh2
Jun  9 18:54:46 srv sshd[2221]: Address 218.106.13.19 maps to net13.218.106.13.19.tmn.ittelec.ru, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

С этого адреса и происходит попытка подключения у клиента. Здесь я вижу, что ssh-сервер делает попытку преобразовать ip-адрес в dns-запись, которая завершается неудачей, и ssh-сервер помечает это соединение как попытку перебора пароля. Fail2ban - это инструмент, который отслеживает в log-файлах попытки обратится к сервисам, таким, как SSH, FTP, SMTP, Apache и другим, и если находит постоянно повторяющиеся неудачные попытки с одного и того же IP-адреса или хоста, fail2ban блокирует дальнейшие попытки с этого IP-адреса/хоста. То есть, возьмем наш случай. Если в лог-файле появляется запись с выражением “POSSIBLE BREAK-IN ATTEMPT!”, то fail2ban блокирует ip-адрес на 10 минут. Блокировка адреса логируюется в файл /var/log/fail2ban.log:

2015-06-09 18:54:47,973 fail2ban.actions: WARNING [ssh] Ban 118.106.13.19

Время попыток подключения и блокировки совпадает до минуты.

Решение

Существую два пути:

  • принудительно на сервере производить сопоставление ip-адреса и имени, добавив запись в файл /etc/hosts
  • или выключить преобразование DNS в пакете ssh

Первый вариант хорош при статическом адресе для ssh-клиента, а второй - при динамическом. Принято решение выключить DNS. Открываю файл

/etc/ssh/sshd_config

в конец файла добавляю строку:

UseDNS no

И перезапускаю ssh:

service ssh restart