Настройка VPS с нуля на Ubuntu сводится к нескольким обязательным шагам: обновить систему, создать отдельного пользователя с правами sudo, настроить вход по SSH-ключу и запретить вход по паролю, включить firewall, установить веб-сервер, PHP и базу данных, выпустить SSL-сертификат и настроить резервное копирование. На всё это у подготовленного человека уходит 1–2 часа. Ниже — пошаговая инструкция для Ubuntu 22.04 и 24.04 LTS с командами, которые можно копировать.

Что подготовить до начала
Перед настройкой у вас должны быть:
- Сам VPS с установленной Ubuntu LTS. Для одного сайта на CMS на старте хватает 1–2 vCPU, 2 ГБ памяти и 20–40 ГБ NVMe. Подходящие варианты — и ; конфигурации и цены уточняйте на сайтах провайдеров.
- IP-адрес сервера и пароль root — их присылает провайдер после создания сервера.
- Домен, A-запись которого вы направите на IP сервера. Зарегистрировать домен можно, например, в .
- SSH-клиент: в macOS и Linux — встроенный терминал, в Windows 10/11 — встроенный OpenSSH в PowerShell.
Если пока не уверены, что вам нужен именно VPS, прочитайте статью Виртуальный хостинг или VPS.
Шаг 1. Первое подключение и обновление системы
Подключитесь к серверу под root:
ssh root@IP_СЕРВЕРА
При первом подключении подтвердите отпечаток ключа сервера, введите пароль. Затем обновите список пакетов и установленное ПО:
apt update && apt upgrade -y
Сразу установите часовой пояс, чтобы логи и задания по расписанию были в понятном времени:
timedatectl set-timezone Europe/Moscow
Шаг 2. Отдельный пользователь вместо root
Работать постоянно под root опасно: одна ошибочная команда может повредить систему, а логин root — первая цель ботов. Создайте пользователя и дайте ему права администратора:
adduser admin
usermod -aG sudo admin
Вместо admin можно выбрать любое имя — лучше не очевидное.
Шаг 3. Вход по SSH-ключу
SSH-ключ надёжнее любого пароля. На своём компьютере (не на сервере) создайте пару ключей, если её ещё нет:
ssh-keygen -t ed25519 -C "my-laptop"
Скопируйте публичный ключ на сервер:
ssh-copy-id admin@IP_СЕРВЕРА
Проверьте, что вход по ключу работает: ssh admin@IP_СЕРВЕРА должен пустить вас без пароля учётной записи.
Запрет входа по паролю и под root
Откройте конфигурацию SSH:
sudo nano /etc/ssh/sshd_config
Установите параметры:
PermitRootLogin no
PasswordAuthentication no
В Ubuntu часть настроек может переопределяться файлами в каталоге /etc/ssh/sshd_config.d/ — проверьте, что там нет PasswordAuthentication yes. Перезапустите службу:
sudo systemctl restart ssh
Важно: не закрывайте текущую сессию, пока не проверите вход по ключу в новом окне терминала. Если что-то пошло не так, вы сможете вернуть настройки. В крайнем случае у большинства провайдеров есть консоль VNC в панели управления.

Шаг 4. Firewall и защита от перебора
В Ubuntu есть простой firewall UFW. Разрешите SSH и веб-трафик, остальное закройте:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
Порядок важен: сначала разрешите SSH, потом включайте firewall, иначе потеряете доступ.
Установите fail2ban — он блокирует IP-адреса, с которых идёт подбор паролей:
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
Включите автоматическую установку обновлений безопасности:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
Подробнее о защите сервера — в статье Безопасность VPS.
Шаг 5. Веб-сервер, PHP и база данных
Для большинства сайтов на PHP оптимальна связка nginx + PHP-FPM + MariaDB или MySQL. Установите её из стандартных репозиториев Ubuntu:
sudo apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl -y
Версия PHP будет той, что входит в выпуск Ubuntu (8.1 в 22.04, 8.3 в 24.04). Проверьте, что службы запущены:
systemctl status nginx
systemctl status mariadb
Защита базы данных
Запустите встроенный мастер, который удалит тестовую базу и анонимных пользователей:
sudo mysql_secure_installation
Затем создайте базу и отдельного пользователя для сайта:
sudo mysql
CREATE DATABASE site_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site_user'@'localhost' IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON site_db.* TO 'site_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Конфигурация сайта в nginx
Создайте каталог сайта и файл конфигурации /etc/nginx/sites-available/example.ru:
server {
listen 80;
server_name example.ru www.example.ru;
root /var/www/example.ru;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}
Путь к сокету PHP-FPM зависит от версии: посмотрите его командой ls /run/php/. Включите сайт и проверьте конфигурацию:
sudo mkdir -p /var/www/example.ru
sudo chown -R www-data:www-data /var/www/example.ru
sudo ln -s /etc/nginx/sites-available/example.ru /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Шаг 6. SSL-сертификат Let’s Encrypt
Когда A-запись домена указывает на сервер, выпустите бесплатный сертификат через certbot:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.ru -d www.example.ru
Certbot сам пропишет сертификат в конфигурацию nginx и настроит перенаправление на HTTPS. Автопродление работает через системный таймер; проверить его можно командой:
sudo certbot renew --dry-run
Типичные ошибки при выпуске сертификата разобраны в статье SSL на VPS: Let’s Encrypt.

Шаг 7. Резервное копирование
Сервер без бэкапов — это риск потерять сайт целиком. Минимальная схема: ежедневный дамп базы данных и архив файлов, которые копируются за пределы сервера. Пример дампа базы:
mysqldump --single-transaction site_db | gzip > /backup/site_db_$(date +%F).sql.gz
Копирование на другой сервер или хранилище через rsync:
rsync -az /backup/ user@backup-server:/backups/site/
Добавьте эти команды в скрипт и запускайте по расписанию через cron. Многие провайдеры также предлагают снапшоты сервера — включите их как дополнительный уровень защиты. Как построить надёжную схему, описано в статье Стратегия бэкапов на VPS.
Итоговый чек-лист
| Задача | Зачем | Готово, если |
|---|---|---|
| Обновление системы | Закрыть известные уязвимости | apt upgrade не предлагает обновлений |
| Пользователь с sudo | Не работать под root | Вход под новым пользователем работает |
| SSH-ключ, запрет паролей | Защита от подбора | Вход по паролю отклоняется |
| UFW и fail2ban | Закрыть лишние порты | ufw status показывает только 22, 80, 443 |
| nginx, PHP, MariaDB | Работа сайта | Тестовая страница открывается |
| SSL | HTTPS и доверие браузеров | Сайт открывается по https без предупреждений |
| Бэкапы | Восстановление после сбоя | Копия проверена восстановлением |
Совет: записывайте всё, что делаете на сервере, в простой текстовый файл — команды, пути, пароли храните в менеджере паролей. Через полгода это сэкономит часы, а при передаче сервера другому специалисту станет готовой документацией.

Частые вопросы
Какую версию Ubuntu выбрать?
Выбирайте последнюю LTS-версию, которую поддерживает ваша CMS и провайдер. LTS-выпуски получают обновления безопасности годами, промежуточные версии — около девяти месяцев.
Может, проще поставить панель управления?
Панель упрощает рутину: создание сайтов, баз, сертификатов. Но базовую безопасность — ключи, firewall, обновления — всё равно стоит настроить вручную. Сравнение панелей — в статье Панель управления сервером.
Нужно ли менять порт SSH?
Это уменьшает шум в логах от ботов, но не заменяет вход по ключу. Если меняете порт, сначала разрешите новый порт в UFW.
Сколько ресурсов съедает сама система?
Ubuntu Server без графики с nginx, PHP-FPM и MariaDB в простое занимает несколько сотен мегабайт памяти. Основное потребление — процессы PHP и база при работе сайта.
Итог
Базовая настройка VPS — это обновления, отдельный пользователь, SSH-ключи, firewall, веб-сервер с PHP и базой, SSL и бэкапы. Выполнив эти шаги, вы получите безопасную основу для сайта. Если не хотите разбираться сами — поможем подобрать и настроить сервер под ключ: смотрите услугу аренда сервера и хостинга.
В статье есть партнёрские ссылки: если вы зарегистрируетесь по ним, студия получит вознаграждение, для вас цена не меняется.

