Как защитить SSH-сервер с помощью SSHGuard: Практическое руководство

SSH (Secure Shell) — это один из самых популярных протоколов для удаленного доступа к серверам. Однако, он также является целью для злоумышленников, пытающихся взломать систему с помощью атак перебора паролей или других методов. В этой статье мы рассмотрим, как защитить SSH-сервер с помощью SSHGuard — мощного инструмента для автоматического обнаружения и блокировки подозрительной активности.


Что такое SSHGuard?

SSHGuard — это инструмент, который мониторит логи SSH и другие системные журналы в поисках подозрительных попыток подключений. Он способен блокировать IP-адреса, которые совершают множественные неудачные попытки аутентификации или пытаются использовать другие вредоносные методы. SSHGuard использует несколько стратегий для защиты от атак и легко интегрируется с различными системами firewall, такими как iptables, pf и другие.

Установка SSHGuard

Установка SSHGuard проста и доступна на многих дистрибутивах Linux, включая Найс ОС. Ниже представлен пример установки на системах, использующих apt или yum:

Для дистрибутивов на основе Debian/Ubuntu:


sudo apt update
sudo apt install sshguard
    

Для дистрибутивов на основе RHEL/CentOS/NiceOS:


sudo yum install epel-release
sudo yum install sshguard
    

После установки SSHGuard автоматически начнет мониторинг SSH-логов и будет блокировать подозрительные IP-адреса, исходя из предустановленных правил.

Настройка SSHGuard

После установки можно настроить SSHGuard для работы с различными системами фильтрации пакетов, а также определить параметры блокировки. Основные настройки находятся в файле конфигурации, обычно расположенном по адресу /etc/sshguard/sshguard.conf.

Пример конфигурации:


# Время блокировки IP-адреса после обнаружения подозрительной активности
BLOCK_TIME=1200

# Максимальное количество неудачных попыток перед блокировкой
THRESHOLD=10

# Включение логирования
LOGFILE=/var/log/sshguard.log
    

Параметр BLOCK_TIME определяет, на какое время (в секундах) IP-адрес будет заблокирован. THRESHOLD задает максимальное количество неудачных попыток перед блокировкой.

Интеграция SSHGuard с iptables

Для обеспечения максимальной безопасности можно настроить SSHGuard для работы с iptables, который будет блокировать вредоносные IP-адреса на уровне брандмауэра. Для этого убедитесь, что iptables установлен и настроен, а затем выполните следующие команды:


sudo iptables -N sshguard
sudo iptables -A INPUT -p tcp --dport 22 -j sshguard
    

Эти команды создают новую цепочку для SSHGuard и перенаправляют весь SSH-трафик (порт 22) через неё. Теперь SSHGuard будет автоматически добавлять подозрительные IP-адреса в iptables для блокировки.

Мониторинг и управление заблокированными IP

Чтобы просмотреть заблокированные IP-адреса, используйте команду iptables -L sshguard. Вы также можете вручную разблокировать IP-адрес, используя следующую команду:


sudo iptables -D sshguard -s <заблокированный_IP> -j DROP
    

Это позволяет вам гибко управлять заблокированными адресами и, при необходимости, разблокировать их вручную.

Дополнительные возможности SSHGuard

Помимо стандартных функций блокировки IP-адресов, SSHGuard поддерживает мониторинг различных протоколов, включая FTP, SMTP и POP3, что позволяет использовать его для защиты не только SSH, но и других сервисов. Это делает SSHGuard универсальным инструментом для серверов, которые обрабатывают несколько видов трафика.

Также SSHGuard предоставляет возможность настройки "белых списков" IP-адресов, что позволяет исключить некоторые адреса из блокировок, даже если они создают подозрительную активность. Это может быть полезно для внутренних сетей или доверенных хостов.

Как работать с белыми списками в SSHGuard

Чтобы добавить IP-адреса в белый список, необходимо отредактировать файл конфигурации и указать диапазоны IP-адресов, которые не должны быть заблокированы. Например:


# Добавляем IP в белый список
WHITELIST_FILE=/etc/sshguard/whitelist
    

Создайте файл /etc/sshguard/whitelist и добавьте туда IP-адреса, которые хотите исключить из автоматической блокировки:


# Пример файла whitelist
192.168.1.100
10.0.0.1
    

После этого SSHGuard больше не будет блокировать эти IP-адреса, даже если они сгенерируют подозрительную активность. Это важно для обеспечения гибкости при управлении сервером, где некоторые IP-адреса, например, офисных работников, могут иногда совершать множество неудачных попыток подключения.

Заключение

SSHGuard — это простой, но мощный инструмент для защиты SSH и других сервисов от атак. Благодаря легкой интеграции с iptables и поддержке других брандмауэров, он обеспечивает надежную блокировку подозрительных IP-адресов и предотвращает попытки несанкционированного доступа.

С использованием гибридного подхода, включающего мониторинг логов и управление правилами фильтрации, SSHGuard предлагает высокий уровень защиты, оставаясь при этом достаточно простым в настройке. Защитите свой сервер уже сегодня, установив SSHGuard и настроив его под свои нужды.

Не забывайте обновлять SSHGuard и другие компоненты системы безопасности, чтобы быть готовым к новым угрозам. Безопасность вашего SSH-сервера начинается с проактивной защиты, и SSHGuard — это один из лучших инструментов для этой цели.

Блог НАЙС ОС

Блог НАЙС ОС — это платформа для пользователей и разработчиков, где публикуются статьи, руководства и новости о мире Linux. Основное внимание уделено использованию, настройке и оптимизации ОС, а также обзору новых функций и технологий, доступных в дистрибутиве НАЙС ОС.