Настройка SSH для защиты от массового bruteforce

#1 2021.11.19 10:11:45

0

В данной статье рассмотрим базовый метод защиты SSH от массовой bruteforce-атаки. Под массовой bruteforce-атакой в данном случае подразумевается не целенаправленный подбор пароля, именно к вашему SSH, а обширный захват диапазона серверов, для последующего выявления из оного неустойчивых к подбору пары login-password.

Основными особенностями массовой bruteforce-атаки SSH, являются обширное сканирование диапазонов IP на открытый порт 22 и использование в качестве имени пользователя и пароля, часто употребляемые (например, root:passwd123, admin:server123 и т.д.).

Чтобы посмотреть статистику из log-файлов неудачных попыток авторизации по SSH у Вас на сервере, введите команду:

cat /var/log/secure* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c

Img


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

1. Если Вы не используете для авторизации часто употребляемые имена пользователя, такие как root, admin, administrator, user и т.п. и используете для авторизации сложный пароль, то сразу можете переходить ко второму пункту. Чтобы сменить пароль на более сложный, введите команду:

passwd #your_login#

где #your_login# — Ваше имя пользователя.
При вводе нового пароля, пароль не отображается, курсор будет находится на одном месте.

Зайдем на сервер через SSH, создадим нового пользователя и зададим ему пароль, для этого введем команды:

adduser #newuser#
passwd #newuser#


где #newuser# — Ваше новое имя пользователя, не используйте в качестве имени пользователя часто употребляемые, неплохой вариант ваш_никadmin (например, foxadmin, useralex, rootidler).

2. После этого заходим через SSH с новым логином и паролем. И открываем конфигурацию деймона SSH (sshd_config) командой:

vi /etc/ssh/sshd_config

После чего Вы должны увидеть примерно такое содержимое:

Img


Строки, начинающиеся с # являются закомментированными.

Чтобы защитить SSH от массового bruteforce, раскомментируйте и измените, либо добавьте следующие параметры sshd_config файла:
a) port — порт, на котором SSHD принимает и обслуживает соединения. Расскоментируйте (удалите перед началом строки #) и измените стандартное значение 22, на любое другое от 1024 до 65536, кроме зарезервированных — список зарезервированных портов, например:

port 2022

 LOGIN писал(а) 
Чтобы удалить # и изменить значение port 22, нажмите сначала на клавиатуре i, после редактирования необходимой строки нажмите клавишу ESC


b) LoginGraceTime — время ожидания регистрации пользователя в системе. Если пользователь, не успел войти в систему в течении отведенного данной директивой времени, сеанс обрывается. Уменьшим это значение:

LoginGraceTime 1m

c) PermitRootLogin — разрешить пользователю root вход через протокол SSH. Изменим на no.

PermitRootLogin no

d) AllowUsers — разрешенные для входа через протокол SSH имена пользователей разделенные пробелом. Здесь вместо #your_login# указываем новое созданное имя пользователя.

AllowUsers #your_login#

e) MaxAuthTries — количество попыток входа в систему за один сеанс. При достижении максимально разрешенного числа попыток, сеанс обрывается.

MaxAuthTries 2

В итоге мы получим:

port 2022
LoginGraceTime 1m
PermitRootLogin no
AllowUsers #your_login#
MaxAuthTries 2


В этой статье мы закончим настройку SSH для защиты от массового bruteforce. После редактирования sshd_config, нажимаем на клавиатуре :, снизу появляется строка и далее вводим в ней wq и нажимаем клавишу Enter. При этом все сделанные изменения сохранятся.

Img


 LOGIN писал(а) 
Если Вы что-то сделали не так (например, нечаянно что-то удалили), для выхода без сохранения используйте вместо комбинации клавиш wq, клавиши q!


После завершения настройки SSH, перезапустим деймон командой:

service sshd restart

Теперь при подключении через протокол SSH, используйте новый порт 2022 (или тот который Вы указали в настройках) вместо стандартного порта 22.