Все статьи
Руководства

Первая настройка VPS на Ubuntu и Debian: безопасность за 15 минут

Коротко

Сразу после запуска VPS обновите систему, создайте пользователя с sudo, настройте вход по SSH-ключу и запретите вход по паролю и под root, включите файрвол UFW и fail2ban. Это 15 минут работы, после которых перебор паролей, которым боты атакуют любой сервер в интернете, перестаёт быть угрозой.

Главное
  • Первая настройка VPS на Ubuntu или Debian занимает около 15 минут: обновление системы, пользователь с sudo, вход по SSH-ключу, запрет входа по паролю и под root, файрвол UFW и fail2ban.
  • Вход по паролю и под root на Linux-сервере отключают файлом /etc/ssh/sshd_config.d/00-hardening.conf с PasswordAuthentication no и PermitRootLogin no - и только после того, как вход по SSH-ключу проверен.
  • Файрвол UFW включают только после правила ufw allow OpenSSH, иначе UFW оборвёт текущую SSH-сессию; порты 80 и 443 открывают, только если на сервере будет сайт.
  • На Debian 12 журнал SSH пишется только в systemd, поэтому fail2ban для защиты SSH настраивают с параметром backend = systemd.
  • На VPS с 2 ГБ памяти swap-файл на 2 ГБ страхует процессы от падения при кратком пике нагрузки, но не заменяет оперативную память.

Шаг 1. Подключитесь к серверу

IP-адрес и пароль root показаны в панели в разделе «Мои серверы» и в Telegram-боте. Подключитесь из терминала - на macOS, Linux и в Windows 10/11 клиент SSH уже встроен (клиенты, ключи и типичные ошибки разобраны в руководстве по подключению по SSH):

bash
ssh root@IP_СЕРВЕРА

Шаг 2. Обновите систему

Образ системы собран раньше, чем вышли последние исправления безопасности, поэтому первым делом установите все обновления:

bash
apt update && apt upgrade -y

Шаг 3. Создайте своего пользователя

Работать постоянно под root опасно: любая ошибка выполняется с полными правами. Создайте пользователя (ниже - deploy, имя любое) и дайте ему sudo:

bash
adduser deploy
usermod -aG sudo deploy

Шаг 4. Настройте вход по SSH-ключу

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

bash
ssh-keygen -t ed25519
ssh-copy-id deploy@IP_СЕРВЕРА

В Windows PowerShell команды ssh-copy-id нет - то же самое делает такая строка:

PowerShell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh deploy@IP_СЕРВЕРА "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Проверьте, что ssh deploy@IP_СЕРВЕРА пускает без пароля. Только после этого переходите к следующему шагу.

Шаг 5. Запретите вход по паролю и под root

Настройки кладём отдельным файлом в sshd_config.d: на Ubuntu там может лежать файл облачной инициализации, который снова разрешает пароли, а файл с префиксом 00- читается первым и выигрывает. sshd -t проверяет конфигурацию до перезапуска:

bash
sudo tee /etc/ssh/sshd_config.d/00-hardening.conf > /dev/null <<'EOF'
PasswordAuthentication no
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl restart ssh

Шаг 6. Включите файрвол UFW

Разрешите SSH до включения файрвола, иначе он закроет и вашу сессию. Порты 80 и 443 откройте, только если на сервере будет сайт:

bash
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status

Шаг 7. Поставьте fail2ban

fail2ban блокирует адреса, с которых идут неудачные попытки входа. На Debian 12 журнал SSH пишется только в systemd, поэтому в настройке указан backend = systemd:

bash
sudo apt install -y fail2ban python3-systemd
sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF'
[sshd]
enabled = true
backend = systemd
EOF
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

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

Пакет unattended-upgrades сам ставит исправления безопасности каждый день. Установите его и подтвердите включение в появившемся диалоге:

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

Шаг 9. Добавьте swap на небольшом тарифе

На конфигурации с 2 ГБ памяти файл подкачки страхует от падения процессов при кратком пике нагрузки. Он не заменяет память: если swap используется постоянно, стоит взять тариф побольше.

bash
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Запустите сервер за 2 минуты

AMD Ryzen 9, NVMe и защита от DDoS в Германии, Финляндии и Польше. Оплата криптовалютой или картой.

Заказать сервер

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

Под каким пользователем выдаётся VPS?

Linux-серверы Tihost выдаются под root, Windows Server - под Administrator. Пароль показан в панели и в боте, его можно сменить кнопкой «Сменить пароль».

Что делать, если я заблокировал себе доступ по SSH?

Откройте «Консоль (VNC)» на странице сервера в панели: это экран сервера в браузере, SSH для неё не нужен. Войдите и исправьте настройки SSH или файрвола.

Нужен ли fail2ban, если вход по паролю отключён?

При отключённом входе по паролю fail2ban уже не критичен, но полезен: снижает шум в журналах и нагрузку от перебора, а также защищает другие сервисы, если вы добавите для них правила.

Нужно ли менять порт SSH?

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

Как подключиться к VPS по SSH из Windows?

В Windows 10 и 11 клиент OpenSSH встроен: откройте PowerShell и выполните ssh root@IP_СЕРВЕРА, подставив адрес сервера из панели. Ключи, PuTTY и частые ошибки подключения разобраны в руководстве по SSH.