Как защитить SSH-сервер: хитрости, которые работают на 100%
Практичные советы по надёжной защите SSH-сервера от взлома и несанкционированного доступа.

Как защитить SSH-сервер: хитрости, которые работают на 100%
SSH — ваш надёжный страж, но даже у крепостей бывают слабые места. Представьте: каждую секунду тысячи ботов стучатся в порт 22, как назойливые продавцы. Пора сменить замки и спрятать дверь!
Смените порт — и 90% атак испарится
Порт 22 — это как оставлять ключи под ковриком. Переход на 2222 или 4822 мгновенно отсечёт большинство автоматических атак.
Просто сделайте вот что:
- Откройте конфиг:
sudo nano /etc/ssh/sshd_config
- Найдите строку
Port 22
и замените на любой свободный порт. - Перезапустите SSH:
sudo systemctl restart sshd
Маленькая деталь: не забудьте проверить брандмауэр! Иначе ваш новый порт останется крепостью без дверей.
Ключи вместо паролей: ваш цифровой отпечаток пальца
Пароли? Это вчерашний день. Ключи Ed25519 — это как супер-секретный шифр, который невозможно подделать.
Настройка за 3 шага:
- Создайте ключ (и да, добавьте фразу-пароль!):
ssh-keygen -t ed25519 -a 100
- Скопируйте его на сервер:
ssh-copy-id -p 2222 user@server_ip
- Навсегда заблокируйте пароли в
/etc/ssh/sshd_config
:PasswordAuthentication no
Совет от параноика: храните приватный ключ в надёжном месте. Потеряете — и придётся пробиваться на свой сервер как хакер!
Port knocking: дверь, которая появляется по волшебству
Зачем показывать дверь, если можно сделать её невидимой? Port knocking — это как секретный стук в определённой последовательности.
- Установите
knockd
:sudo apt install knockd
- Настройте "волшебную" последовательность (например, 7000, 8000, 9000):
[openSSH] sequence = 7000,8000,9000 command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 2222 -j ACCEPT
Теперь ваш SSH-сервер "проснётся" только после правильного стука:
knock server_ip 7000 8000 9000
Осторожно: если забудете последовательность — сами окажетесь по ту сторону двери!
Фильтрация по IP: только для своих
Если сервер должен быть доступен только с определённых адресов, iptables — ваше оружие:
iptables -A INPUT -p tcp --dport 2222 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -j DROP
Добавьте защиту от bruteforce.Пусть злоумышленники получают тайм-аут:
iptables -A INPUT -p tcp --dport 2222 -m recent --name ssh --update --seconds 60 --hitcount 3 -j DROP
Экстра-уровни защиты
Root? Нет, не слышал
Закройте доступ для root — даже если злоумышленник получит ключ, он не станет королём:
PermitRootLogin no
Двухфакторка: двойная броня
Добавьте Google Authenticator — пусть воруют не только ключ, но и ваш телефон!
sudo apt install libpam-google-authenticator
google-authenticator
Fail2ban: автоматический охранник
Настройте бан после трёх попыток — пусть злоумышленники идут искать лёгкие цели:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 1h
Следите за обновлениями
Старый SSH — это как дырявый зонт в ливень. Обновляйтесь!
Главное правило: безопасность — это не пункт назначения, а бесконечный путь. Начните с ключей и нестандартного порта, затем добавьте port knocking или двухфакторку. Чем больше слоёв — тем крепче ваша цифровая крепость!