Sshguard/ru

— Article description::это система предотвращения вторжений, которая разбирает логи сервера, определяет подозрительную активность и затем использует системный межсетевой экран, чтобы блокировать IP-адреса злонамеренных подключений. sshguard написан на C, поэтому он не нагружает систему.

Как это работает
sshguard является простой службой, которая постоянно отслеживает изменения в одном или нескольких файлах лога. Она разбирает события, которые демоны посылают в случае неудавшихся попыток входа в систему, а затем, с помощью обновлений правил межсетевого экрана, блокирует любые дальнейшие попытки от данных подключений.

Несмотря на название, sshguard разбирает не только логи SSH. Он также поддерживает многие почтовые системы, а также некоторые системы FTP. Полный список поддерживаемых устройств можно найти на сайте программы.

Emerge
Установите :

Additional software
Depending on the init system and the desired firewall backend to be used by sshguard, additional software may be required to be emerged in order for sshguard to block malicious actors.

More information on various supported backends can be found by reading the setup manpage:

iptables
Также удостоверьтесь, что пакет установлен и используется в качестве системного межсетевого экрана. Во время написания данной статьи, sshguard еще не поддерживал.

Более детальная информация по использованию и настройке IPtable может быть найдена в соответствующей статье.

nftables
When nftables are being used as the system firewall:

Подготовка межсетевого экрана
Когда блокирует какого-либо злонамеренного пользователя (блокируя его IP-адрес), он будет использовать цепочку.

Подготовьте цепочку и удостоверьтесь, что она вызывается при обнаружении новых входящих соединений:

Then verify that the appropriate path to the iptables backend library is set in :

Просмотр лог-файлов
Основная идея sshguard в том, что администратор указывает приложению отслеживаемые файлы логов через параметры командной строки. Как такового файла конфигурации для sshguard не существует.

В Gentoo параметры лучше всего определять в файле :

Убедитесь в том, что файлы логов доступны пользователю, от имени которого работает sshguard.

OpenRC
Чтобы sshguard запускался при старте системы, добавьте его в уровень запуска default, после чего запустите его:

systemd
Use systemd's conventional way to enable it, and then start it:

Занесение хостов в черный список (blacklist)
Когда используется черный список, после серии неудачных попыток IP-адрес атакующего будет заблокирован перманентно. Черный список подгружается после каждой загрузки, а также будет расширятся новыми записями в процессе работы. добавляет туда новые адреса, после превышения порога "злоупотребления".

Адреса из черного списка никогда не выходят из него (не разрешаются) снова.

Чтобы задействовать черный список, создайте соответствующий каталог и файл:

While defining a blacklist it is important to exclude trusted IP networks and hosts in a whitelist.

To enable whitelisting, create an appropriate directory and file:

The whitelist has to include the loopback interface, and should have at least 1 IP trusted network f.e. 192.0.2.0/24.

Добавьте файл blacklist в конфигурацию и измените переменную SSHGUARD_OPTS :

Перезапустите, чтобы изменения вступили в силу:

File '/var/log/auth.log' vanished while adding!
При запуске, sshguard показывает следующую ошибку:

Такая ошибка (путь до файл может быть различным) происходит, когда целевой файл не доступен в системе. Убедитесь, что он создан, или измените конфигурацию sshguard так, чтобы не следить за этим файлом.

На системах с OpenRC и syslog-ng, следующего дополнения к может хватить:

Перезагрузите конфигурацию, чтобы изменения вступили в силу:

Внешние ресурсы
Документация по sshguard дает всю необходимую информацию для дальнейшей настройки приложения.