Как да защитите SSH на Linux VPS

От Инженерен екип на ONIE · Актуализирано 12 ноември 2026 г. · 2 мин. четене

Публичният VPS получава автоматизирани опити за вход в рамките на минути след включването си. Тези стъпки значително затрудняват атаките срещу SSH. Написани са за Ubuntu или Debian; ако още не сте създали сървър, можете да наемете Linux VPS и да започнете от чисто изображение. Дръжте текущата SSH сесия отворена, докато не тествате новите настройки от втори прозорец.

1. Създайте обикновен потребител с sudo

adduser deploy
usermod -aG sudo deploy

2. Използвайте SSH ключове вместо пароли

На вашия компютър:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Влезте веднъж с ключа, за да потвърдите, че работи, преди да изключите паролите.

3. Изключете вход с парола и вход като root

Създайте /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Проверете синтаксиса и презаредете услугата. Услугата се нарича ssh на Ubuntu и Debian и sshd на системи, базирани на RHEL:

sudo sshd -t && sudo systemctl reload ssh

Отворете втори терминал и влезте отново. Едва след това затворете старата сесия.

4. Включете защитна стена

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Отворете само портовете, които са ви необходими, например 80 и 443 за уеб сървър. Можете също да ограничите SSH до вашия собствен IP адрес с правило в защитната стена в облачната конзола.

5. Блокирайте повтарящите се неуспешни опити с Fail2ban

sudo apt install -y fail2ban

Създайте /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Инсталирайте автоматично актуализациите за сигурност

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Допълнителни опции

  • Смяната на SSH порта намалява шума в логовете, но сама по себе си не е мярка за сигурност.
  • Защитете частния ключ с парола и съхранявайте резервно копие на сигурно място.
  • Преглеждайте входовете с last и sudo journalctl -u ssh --since today.
  • Направете снимка на състоянието, след като сървърът е конфигуриран, за да можете да възстановите чиста изходна точка.

Ако сте заключени навън, използвайте конзолата в браузъра от облачния панел, за да влезете и поправите конфигурацията. Нашето ръководство за DDoS защита описва следващия слой защита.

Често задавани въпроси

Безопасно ли е да изключите root входа?

Да, ако първо създадете sudo потребител и потвърдите, че ключът му работи. Административните команди можете да изпълнявате с sudo.

Нужен ли ми е Fail2ban, ако използвам само ключове?

Не е задължителен. Когато входът с парола е изключен, атаката с груба сила не може да успее, но Fail2ban намалява шума в логовете и натоварването.

Какво става, ако загубя SSH ключа си?

Използвайте конзолата в облачния панел, за да влезете, добавете новия публичен ключ в ~/.ssh/authorized_keys и премахнете стария.

Източници и допълнително четене

Още ръководства за VPS