Защита от Брутфорса SSH в Linux

Сетевая видимость — повод для атак. Проблемой является перебор паролей, в том числе и для SSH.

Защититься от этого можно по-разному:

1) Используя возможности настройки демона SSH

2) Пакетный фильтр

3) Специальные приложения

4) Port knocking

▪Измените 22-й порт на 2002-й, если это возможно. Вносим запись в /etc/ssh/sshd_config:

Port 2002

▪В случаях, когда невозможно изменить порт, можно ограничить доступ к SSH определенными пользователями или группами. Это можно сделать с помощью параметров AllowUsers, AllowGroups, DenyUsers и DenyGroups в файле sshd_config. Логину также можно указать IP или подсеть. Например, можно разрешить доступ пользователю admin и user, при этом последний может подключаться только с одного IP.

AllowUsers admin user@192.168.0.1

▪Еще один действенный вариант защиты от перебора – использование для аутентификации сертификатов.

Например, запретим вход по SSH по паролю для пользователя root, разрешив всем остальным:

# всем разрешаем доступ по паролю

PasswordAuthentication yes

# root будет использовать только сертификат

match user root

PasswordAuthentication no

KbdInteractiveAuthentication no

▪Используя TCP Wrapper, также можем ограничить доступ к любому сервису только с определенных IP, для этого следует лишь прописать в файл /etc/hosts.allow или /etc/hosts.deny нужное правило. Разрешим в /etc/hosts.allow доступ только с нужной подсети:

sshd : 192.168.1.0/24 : allow

Или в /etc/hosts.deny:

sshd : ALL : deny

sshd : ALL EXCEPT 192.168.1.0/24 : allow

▪Пакетный фильтр позволяет очень точно задавать параметры соединений, отбрасывая ненужные пакеты. С его помощью легко ограничить доступ к 22-му порту только определенным адресам. Пример:

iptables -A INPUT -s !192.168.0.1 -p tcp -m tcp --dport 22 ↵

-j REJECT —reject-with icmp-port-unreachable

▪Fail2ban и Sshguard - специальные утилиты, которые помогают защитить систему от подозрительных действий. Эти программы фильтруют пакеты по портам и IP-адресам и блокируют подозрительные IP-адреса, используя iptables или TCP Wrapper.

Fail2ban был создан для защиты SSH, но сейчас он может быть настроен для использования с различными приложениями. Принцип работы очень прост - демон периодически проверяет журналы на наличие записей о подозрительной активности и блокирует подозрительные IP-адреса.

По умолчанию Fail2ban защищает только SSH, но может быть настроен для контроля нескольких сервисов одновременно. Все события отображаются в журнале fail2ban.log и могут быть отправлены по электронной почте.

В Ubuntu и Debian устанавливается командой:

$ sudo apt-get install fail2ban

▪Все настройки производятся в нескольких файлах, размещенных в каталоге /etc/fail2ban. В fail2ban.conf хранятся параметры запуска самого демона, в jail.conf описываются контролируемые сервисы (внутри секции SSH).

[ssh]

enabled = true

port = 22

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

▪Фильтры и действия настраиваются в файлах в подкаталогах filter.d и action.d. Файлы по умолчанию имеют расширение .conf и их лучше не изменять, включая jail.conf. Лучше все изменения делать в файле с расширением .local (например, jail.local), который переопределяет настройки из первого файла и сохраняет их при обновлении. Для проверки работы фильтра можно использовать утилиту fail2ban-regex.

Мы в телеграме!

Life-Hack [Жизнь-Взлом]/Хакинг

241 пост2.7K подписчика

Добавить пост

Правила сообщества

Просьба уважать друг друга.