Установка sshguard в Linux

Категория: Linux

Как установить sshguard в Arch Linux.

Чтобы усложнить  брутфорс пароля, ставим fail2ban или sshguard.

Сразу меняйте ssh-порт! Это избавит от вечно ломящихся ботов, хотя порт по-прежнему можно обнаружить.

sed -Ei 's|^#?Port [0-9]+|Port XXXX|g' /etc/ssh/sshd_config; grep ^Port /etc/ssh/sshd_config
sudo systemctl restart sshd |
| sudo service ssh restart

Fail2ban с задачами справляется, но на слабых VPS вызывает ощутимую нагрузку на CPU, так что ставим узкоспециализированный sshguard.

Установка sshguard:

sudo apt install sshguard -y
sudo pacman -S sshguard
sudo chmod +s $(which sshguard)  ## Разрешаем sshguard динамическое изменение iptables

По умолчанию sshguard защищает ssh порт, проверяя лог ошибок авторизации.

Смотрим заблоченные IP:

iptables -nvL sshguard

Можно указать свой IP в список исключения:

echo "XXX.XXX.XXX.XXX" | sudo tee -a /etc/sshguard/whitelist

Можно установить более жесткие правила блокировки (блочим на 1 час, помним 7 дней):

sed -Ei 's/^THRESHOLD=[0-9]+/THRESHOLD=15/' /etc/sshguard/sshguard.conf; grep ^THRESHOLD /etc/sshguard/sshguard.conf
sed -Ei 's/^BLOCK_TIME=[0-9]+/BLOCK_TIME=3600/' /etc/sshguard/sshguard.conf; grep ^BLOCK_TIME /etc/sshguard/sshguard.conf
sed -Ei 's/^DETECTION_TIME=[0-9]+/DETECTION_TIME=604800/' /etc/sshguard/sshguard.conf; grep ^DETECTION_TIME /etc/sshguard/sshguard.conf

Указываем список защищаемых портов при попытках брутфорса: 80,443 и ssh порт указанный в sshd_config.

* 80 и 443 желательно указать для усложнения работы злоумышленникам, чтобы с того же IP нельзя было сканировать запущенные сайты.

В итоге файл конфигурации /etc/iptables.rules получится примерно такой: https://glashkoff.com/wp-content/uploads/2019/01/iptables-616x369.png

Разрешите автозапуск sshguard и перезапустите сервис:

sudo systemctl enable sshguard
sudo systemctl restart sshguard
sudo systemctl status sshguard

Опционально настраиваем iptables:

## Создаем цепочку правил в iptables (iptables: Chain already exists)
sudo iptables -N sshguard

## Установим проверку всего входящего трафика
sudo iptables -A INPUT -j sshguard

## Указываем порты, на которых нужно проверять активность:
sudo iptables -A INPUT -m multiport -p tcp --destination-ports 22,80,443,XXX -j sshguard

По мере необходимости добавляем порты:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

Чтобы SSHGuard имел право доступа на динамическое изменение настроек iptables, выполните команду:

chmod +s $(which sshguard) ## /usr/sbin/sshguard


#ssh #sshguard #fail2ban #vps #secure

категория: Linux