Установка sshguard в 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