Защита на Вашия VPS: първите пет минути
Нов сървър в интернет бива сканиран в рамките на минути от ботове, които опитват пароли. С тези стъпки ще бъдете далеч пред тях. Изпълнете ги като root или със sudo. След това е по-добре да работите със собствен потребител със sudo и да изключите влизането като root, вижте Собствен потребител със sudo в ръководството за VPS.
1. Актуализиране на всичко и включване на автоматичните актуализации
- Ubuntu и Debian:
apt update && apt upgrade -y, след товаapt install -y unattended-upgradesиdpkg-reconfigure -plow unattended-upgrades. - AlmaLinux и Rocky Linux:
dnf upgrade -y, след товаdnf install -y dnf-automaticиsystemctl enable --now dnf-automatic-install.timer.
Проверете дали това наистина работи. В Ubuntu и Debian направете пробно изпълнение с unattended-upgrade --dry-run --debug, а в /var/log/unattended-upgrades/ ще видите какво е актуализирано. Новото ядро започва да работи едва след рестартиране: ако съществува файлът /var/run/reboot-required, рестартирайте Вашия VPS в спокоен момент. Вижте Актуализации и автоматични актуализации.
2. Влизане с ключ, без пароли
Първо поставете Вашия SSH ключ на сървъра (вижте Влизане във Вашия VPS чрез SSH) и проверете дали влизането с ключа работи. След това създайте собствен файл с настройки /etc/ssh/sshd_config.d/00-eigen.conf със следните редове:
PasswordAuthentication no KbdInteractiveAuthentication no
Не ги поставяйте в самия /etc/ssh/sshd_config: файловете в sshd_config.d имат предимство, а в Ubuntu 50-cloud-init.conf отново включва паролите там. Вашият 00-eigen.conf е преди него и има предимство. Проверете с sshd -t (не извежда нищо, ако всичко е наред) и sshd -T | grep -i passwordauthentication (трябва да покаже no). След това рестартирайте SSH с systemctl restart ssh (AlmaLinux и Rocky: systemctl restart sshd). Дръжте текущата си сесия отворена, докато не проверите във втори прозорец, че все още можете да влезете.
3. Защитна стена
- Ubuntu и Debian:
apt install -y ufw, след товаufw allow OpenSSH, при нуждаufw allow 80,443/tcpза уебсайт, иufw enable. - AlmaLinux и Rocky Linux: firewalld вече е инсталиран. Например
firewall-cmd --permanent --add-service=http --add-service=httpsиfirewall-cmd --reload.
Винаги оставяйте SSH (порт 22) отворен, в противен случай ще заключите себе си отвън. След това проверете с ufw status verbose, че правилата Ви са налице и за IPv6 (правила с (v6)).
ports: - "5432:5432"), заобикалят ufw и firewalld и следователно са достъпни отвън, дори ако защитната Ви стена не ги разрешава. Публикувайте само това, което наистина трябва да е публично, а останалото на 127.0.0.1. Винаги проверявайте отвън. Вижте Docker и защитната стена: безопасно публикуване на портове и Кои услуги слушат на Вашия VPS и какво е достъпно отвън?.4. Fail2ban срещу опити за отгатване
apt install -y fail2ban или dnf install -y epel-release && dnf install -y fail2ban, след това systemctl enable --now fail2ban. По подразбиране той блокира IP адреси, които твърде често опитват грешна парола. В Debian 12 добавете в /etc/fail2ban/jail.local под [sshd] и backend = systemd и инсталирайте python3-systemd, в противен случай наблюдението на SSH няма да стартира. Debian 13 и Ubuntu правят това автоматично.
5. Snapshot като предпазна мрежа

Направете snapshot в екрана на Вашия VPS, преди да правите големи промени. Ако нещо се обърка, ще го възстановите с едно кликване. Вижте Snapshots и архивни копия на Вашия VPS.
Оставете qemu-guest-agent
Програмата qemu-guest-agent е инсталирана по подразбиране. С нея можете да зададете нова root парола в екрана на VPS и да виждате използването на диска. Не я премахвайте.
Подробно обяснение с екранни снимки: Изключване на влизането с парола и като root и fail2ban срещу опити за отгатване в ръководството за VPS.
Искате ли да научите повече? Преминете безплатния курс VPS и администриране на Linux сървъри, урок 2.2 Безопасна настройка на SSH сървъра или урок 10.4 Финална проверка: преглед на Вашия сървър.
