OffshoreVps
Безопасность25 сент. 20269 мин чтенияАвтор: команда OffshoreVps

Как защитить новый Linux VPS за 15 минут

Чек-лист «скопировал и вставил» для свежего VPS на Ubuntu или Debian: SSH-ключи, пользователь без прав root, брандмауэр, fail2ban, автоматические обновления и базовый мониторинг.

Новый VPS с публичным IP-адресом начинает получать автоматические попытки входа уже через несколько минут. Ничего личного: боты просто сканируют все адреса. Несколько базовых шагов останавливают почти всё это. Этот чек-лист рассчитан на свежий сервер с Ubuntu 24.04 или Debian 12/13 и занимает около пятнадцати минут.

Окно терминала на VPS с командами для защиты нового VPS, начиная с «apt update && apt full-upgrade -y»
Примерно такие команды вы будете выполнять на своём сервере в этом руководстве.

1. Сначала обновите всё

apt update && apt full-upgrade -y
reboot

Войдите снова после перезагрузки. Всегда начинайте с полностью обновлённой системы.

2. Создайте пользователя без root

Постоянная работа под root делает опасной любую опечатку. Создайте обычного пользователя с правами sudo:

adduser deploy
usermod -aG sudo deploy

3. Настройте ключи SSH

На своём компьютере создайте пару ключей, если её нет, и скопируйте публичную часть на сервер:

ssh-keygen -t ed25519 -C "my-vps"
ssh-copy-id deploy@YOUR_SERVER_IP

Откройте второй терминал и убедитесь, что можете войти как deploy по ключу, прежде чем продолжать. Не закрывайте исходный сеанс, пока не убедитесь.

4. Отключите вход по паролю и под root

Отредактируйте конфигурацию демона SSH:

sudo nano /etc/ssh/sshd_config.d/99-hardening.conf

Добавьте эти строки в файл:

PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3

Проверьте синтаксис и перезагрузите конфигурацию:

sudo sshd -t && sudo systemctl reload ssh

5. Включите брандмауэр

UFW — самый простой вариант. Сначала разрешите SSH, затем включите брандмауэр:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp   # only if you run a web server
sudo ufw enable
sudo ufw status verbose

Открывайте порты только для служб, которые вы действительно запускаете. Всё остальное по умолчанию закрыто.

Шаги этого руководства по порядку: 1. 1. Сначала обновите всё; 2. 3. Настройте SSH-ключи; 3. 5. Включите брандмауэр; 4. 6. Добавьте fail2ban; 5. 8. Проверьте, что слушает порты; 6. Что делать дальше
Шаги этого руководства по порядку.

6. Добавьте fail2ban

Fail2ban следит за логами и временно банит адреса, которые постоянно не проходят вход.

sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Настройки по умолчанию для SSH разумны. Поскольку вы уже отключили пароли, это в основном уменьшает шум в логах и пустую нагрузку на CPU.

7. Включите автоматические обновления безопасности

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Это автоматически устанавливает патчи безопасности. Иногда перезагружайтесь ради обновлений ядра или позвольте инструменту делать это в тихий час.

8. Проверьте, что слушает порты

sudo ss -tulpn

Всё, что слушает на 0.0.0.0 неожиданно для вас, стоит проверить. Службы только для локального использования (базы данных, кэши, панели администратора) должны слушать на 127.0.0.1.

9. Базовый мониторинг и резервные копии

  • Просматривайте логи с помощью journalctl -u ssh --since today время от времени.
  • Проверяйте ресурсы с помощью htop и df -h, чтобы переполненный диск или неуправляемый процесс не застали вас врасплох.
  • Делайте резервные копии. Делайте снимок сервера перед крупными изменениями и храните копию вне сервера для всего, что нельзя воссоздать.

Что делать дальше

Теперь ваш сервер взломать гораздо труднее, чем настроенный по умолчанию. Дальше обновляйте ПО, запускайте каждую службу от отдельного непривилегированного пользователя и открывайте только необходимое. Если нужен приватный туннель до сервера, хорошим следующим шагом станет наше руководство по настройке WireGuard.

Частые вопросы

Что сделать в первую очередь на новом VPS?

Обновите пакеты, создайте пользователя без прав root, перейдите на SSH-ключи, отключите вход по паролю и включите брандмауэр.

Стоит ли менять порт SSH?

Это уменьшает шум в журналах, но не является настоящей защитой. Гораздо важнее ключи и брандмауэр.