Защита от Брутфорса 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 подписчика
Правила сообщества
Просьба уважать друг друга.