Как отслеживать неудачные попытки входа по SSH?

134

Я хотел бы узнать, пытался ли кто-нибудь войти в систему с помощью грубой силы на моем сервере Ubuntu 12.04 через SSH. Как я могу узнать, проводились ли такие мероприятия?

Иван
источник

Ответы:

150

Все попытки входа в систему регистрируются на /var/log/auth.log.

1. Фильтр для брутфорс интерактивных SSH логинов

Откройте терминал и введите ниже; если она длиннее 1 страницы, вы сможете прокручивать ее вверх и вниз; введите qдля выхода:

grep sshd.\*Failed /var/log/auth.log | less
  • Вот реальный пример одного из моих VPS:

    18 августа, 11:00:57 izxvps sshd [5657]: сбой пароля для пользователя root из порта 95.58.255.62 38980 ssh2
    18 августа, 23:08:26 izxvps sshd [5768]: сбой пароля для пользователя root из порта 91.205.189.15 38156 ssh2
    18 августа, 23:08:30 izxvps sshd [5770]: сбой пароля ни для кого из порта 91.205.189.15 38556 ssh2
    18 августа, 23:08:34 izxvps sshd [5772]: сбой пароля для неверной звездочки пользователя из порта 91.205.189.15 порт 38864 ssh2
    18 августа, 23:08:38 izxvps sshd [5774]: сбой пароля для недопустимого пользователя sjobeck с порта 91.205.189.15 39157 ssh2
    18 августа, 23:08:42 izxvps sshd [5776]: сбой пароля для пользователя root из порта 91.205.189.15 39467 ssh2
    

2. Проверьте наличие неудачных подключений (т. Е. Не было попытки входа в систему, может быть сканер портов и т. Д.):

Используйте эту команду:

grep sshd.*Did /var/log/auth.log | less
  • Пример:

    5 августа 22:19:10 izxvps sshd [7748]: не получено идентификационной строки от 70.91.222.121
    10 августа 19:39:49 izxvps sshd [1919]: не получил идентификационную строку от 50.57.168.154
    13 августа, 23:08:04 izxvps sshd [3562]: не получил идентификационную строку от 87.216.241.19
    17 августа 15:49:07 izxvps sshd [5350]: не получено идентификационной строки от 211.22.67.238
    19 августа 06:28:43 izxvps sshd [5838]: не получил идентификационную строку от 59.151.37.10
    

Как уменьшить количество неудачных попыток входа в систему

  • Попробуйте переключить ваш SSH на нестандартный порт из стандартного 22
  • Или установите скрипт автоматического запрета, такой как fail2banУстановить fail2ban .
иш
источник
4
Какой уровень безопасности вы получаете при переключении порта SSH (разве они не могут просто сканировать вас, как вы упомянули), и стоит ли этот незначительный юзабилити-удар для легитимных пользователей?
Ник Т
8
@NickT оказывается достаточно, чтобы значительно уменьшить количество попыток входа в систему. Там, где я делал тысячи попыток в неделю / день, пока у меня не было ни одной за последний месяц, просто переключив порт.
AntoineG
2
Я думаю, что запрещение входа в систему с паролем может помочь тоже.
Люк М
2
я знаю, что это Ubuntu, просто хотел упомянуть, что в некоторых системах, таких как centos, путь к файлу/var/log/secure
lfender6445
Некоторые системы обращаются к журналу с помощьюsystemctl -eu sshd
alecdwm
72

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

Если у вас есть общедоступный SSH-сервер, вам нужно решение, которое срабатывает  задолго до того, как вас могут взломать.

Я настоятельно рекомендую fail2ban. Их вики говорят, что это делает лучше, чем я.

Fail2ban сканирует файлы журналов (например /var/log/apache/error_log) и блокирует IP-адреса, которые показывают вредоносные признаки - слишком много сбоев паролей, поиск эксплойтов и т. Д. Обычно Fail2Ban затем используется для обновления правил брандмауэра, чтобы отклонять IP-адреса в течение заданного периода времени, хотя любой Произвольные другие действия (например, отправка электронной почты или извлечение лотка CD-ROM) также могут быть настроены. Из коробки Fail2Ban поставляется с фильтрами для различных сервисов (apache, curier, ssh и т. Д.).

Получить защиту от него так же просто, как sudo apt-get install fail2ban.

По умолчанию, как только у кого-то есть три неудачные попытки, его IP получает пятиминутный бан. Такая задержка, по сути, останавливает попытку перебора SSH, но это не разрушит ваш день, если вы забудете свой пароль (но вы все равно должны использовать ключи!)

Оли
источник
6
Почему это называется не банить?
Pacerier
9
@Pacerier Хорошо по некоторой аналогии, ошибка входа в систему приводит к (2) бану.
Себи
2
Bwahaha, Вы сделали мой день @Pacerier, я никогда не думал об этом как о буквальном "отказе от запрета".
adelriosantiago
1
Я думаю, что это должно быть отредактировано, чтобы удалить «особенно» из первого предложения. Это проблема , только если у вас слабый пароль. Надежные пароли не могут быть взломаны ни при каких обстоятельствах, и единственная причина, препятствующая попыткам пользователей - это снизить нагрузку на сервер.
Абхи
Абсолютно согласен. В любом случае все будет хорошо, чтобы предотвратить высокую нагрузку на сервер. Я видел попытки по скоростям на миллисекунды
Диего Андрес Диас Эспиноза