2 min read

SSHGuard + Port Knocking: двойная защита SSH от брутфорса

SSHGuard + Port Knocking: двойная защита SSH от брутфорса

Защита SSH от брутфорс-атак — критична для целостности сервера. Две связки инструментов — SSHGuard и Port Knocking — резко снижают число попыток несанкционированного доступа и дают многослойную защиту. Разберём настройку обоих на Ubuntu.

Зачем сочетать SSHGuard и Port Knocking

SSHGuard — как охранник у двери: замечает подозрительные попытки входа и банит нарушителей. Port Knocking — как секретное рукопожатие: сервер открывает дверь только при правильной последовательности «стуков».

Вместе они дают:

  • Защиту от брутфорса в реальном времени.
  • Скрытую точку входа — лишний слой скрытности.
  • Автоматическую блокировку вредоносных IP.
  • Гибкую интеграцию с фаерволом (UFW или iptables).

Настройка SSHGuard

SSHGuard следит за логами на предмет повторных неудачных попыток входа и автоматически банит IP-нарушителей.

1. Установка

sudo apt install sshguard

2. Включение и запуск сервиса

sudo systemctl enable --now sshguard.service

3. Конфигурация

Открой конфиг:

sudo nano /etc/sshguard/sshguard.conf

Ключевые параметры:

  • BACKEND — бэкенд фаервола (sshg-fw-nft-sets для nftables, sshg-fw-iptables для iptables).
  • LOGREADER — способ обработки логов.
  • THRESHOLD — число неудачных попыток до блокировки IP.
  • BLOCK_TIME — длительность блокировки (в секундах).
  • DETECTION_TIME — окно отслеживания неудачных попыток.
  • WHITELIST_FILE — путь к списку доверенных IP, которые никогда не блокируются.

После изменений перезапусти сервис:

sudo systemctl restart sshguard

Интеграция SSHGuard с фаерволом

Вариант 1 — SSHGuard + UFW

Укажи бэкенд:

/usr/libexec/sshguard/sshg-fw-nft-sets

Отредактируй правила UFW:

sudo nano /etc/ufw/before.rules

Добавь:

-A ufw-before-input -j SSHGUARD
-A ufw-before-output -j SSHGUARD
-A ufw-before-forward -j SSHGUARD

Перезапусти UFW:

sudo systemctl restart ufw

Вариант 2 — SSHGuard + iptables

Создай цепочку:

sudo iptables -N sshguard

Перенаправь SSH-трафик в неё:

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

Сохрани правила:

sudo apt install iptables-persistent
sudo iptables-save -f /etc/iptables/rules.v4

Посмотреть заблокированные IP:

sudo iptables -L sshguard -n

Белый список доверенных IP

Добавь безопасные адреса в:

/etc/sshguard/whitelist

Пример содержимого:

192.168.0.34
192.168.0.0/24
myhost.domain.com

Перезапусти SSHGuard:

sudo systemctl restart sshguard

Настройка Port Knocking

Port Knocking добавляет слой защиты — SSH-порт остаётся закрытым, пока не придёт строго определённая последовательность «стуков» по портам.

1. Установка knockd

sudo apt install knock-server

2. Управление сервисом

sudo systemctl start knockd
sudo systemctl enable knockd

3. Подготовка правил фаервола

Разреши уже установленные соединения:

iptables -A INPUT -i <interface> -m state --state ESTABLISHED,RELATED -j ACCEPT

Заблокируй новые по умолчанию:

iptables -A INPUT -j DROP

4. Конфигурация knockd

Открой конфиг:

sudo nano /etc/knockd.conf

Пример:

[options]
logfile = /var/log/knockd.log
interface = eth0

[openSSH]
sequence = 661,671,681
seq_timeout = 5
tcpflags = syn
cmd_timeout = 30
start_command = /sbin/iptables -I INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
stop_command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT

Перезапусти knockd:

sudo systemctl restart knockd

Подключение через Port Knocking

С клиента:

knock target.host 661 671 681
ssh [email protected]

Если последовательность совпала — SSH-порт временно откроется.


Итог

Связка SSHGuard + Port Knocking даёт многослойную защиту:

  • Брутфорс не пройдёт — за повторные неудачи IP сразу банится.
  • Атакующий даже не увидит открытый SSH-порт, пока не знает правильную последовательность стуков.
Совет по безопасности: обязательно дополни эти инструменты SSH-ключами, отключённым root-логином и актуальными правилами фаервола.

Начни с SSHGuard, добавь Port Knocking — и спи спокойно, зная, что двери сервера действительно под охраной.


Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email