Настройка сервера с нуля занимает около двух часов и состоит из восьми обязательных шагов: обновить пакеты, завести отдельного пользователя вместо root, перевести вход по SSH на ключи, закрыть лишние порты файрволом, добавить swap-файл, выставить часовой пояс, поднять мониторинг и настроить бэкапы. Порядок именно такой: каждый следующий шаг опирается на предыдущий, а переделывать машину с работающим сайтом заметно дороже. Стартовые тарифы, на которых чаще всего разворачивают такую конфигурацию, собраны в каталоге VPS — там 44 провайдера с ценами от 59 ₽/мес.
Материал написан для тех, кто впервые оплатил виртуальный сервер и получил письмо с IP-адресом и паролем root. Внутри — команды с объяснением, что каждая делает, таблица тайминга по шагам, сравнение стартовых тарифов на 03.09.2026 и разбор ошибок, из-за которых новички теряют доступ к собственной машине.
Что приходит в письме от хостера и что проверить в первые пять минут
После оплаты провайдер выдаёт четыре вещи: IP-адрес машины, логин (почти всегда root), пароль и номер порта SSH — обычно 22/TCP. В панели провайдера есть и веб-консоль: аварийный вход через браузер, который работает, даже когда SSH сломан.
Проверьте, какая операционная система реально установлена: в панели заказа легко промахнуться мимо нужного образа. Если планируете идти по этой статье дословно, берите свежий LTS-выпуск. LTS — это версия с долгой поддержкой: обновления безопасности для неё выходят около пяти лет. Подборка предложений есть в разделе VPS с Ubuntu.
Дальше посмотрите на ресурсы. Тариф за 139 ₽/мес с 0,5 ГБ памяти и тариф за 593 ₽/мес с 2 ГБ памяти настраиваются одинаково, но на первом обязателен swap. Запишите объём RAM — он понадобится на шестом шаге.

Обновление пакетов: первая команда после входа
Образ, из которого развернули вашу машину, собирали месяц или три назад. За это время в системных библиотеках нашли уязвимости, и часть из них уже эксплуатируют автоматические сканеры. Поэтому первое, что делают на свежем сервере, — подтягивают обновления.
В Debian и Ubuntu это две команды: apt update обновляет список доступных пакетов из репозиториев, apt upgrade -y ставит новые версии без лишних вопросов. Пишут их обычно одной строкой: apt update && apt upgrade -y. Двойной амперсанд означает «выполняй вторую команду, только если первая завершилась без ошибок».
apt update && apt upgrade -y
На чистой системе процесс занимает от 1 до 5 минут и скачивает 100–300 МБ. Если обновилось ядро, выполните reboot — сервер поднимется за 20–40 секунд. В системах на базе RHEL (это Red Hat Enterprise Linux и её бесплатные родственники — Rocky, AlmaLinux) ту же задачу решает команда dnf upgrade -y.
Отдельный пользователь вместо root
Учётная запись root может всё: удалить систему, переписать конфиги, выключить сеть. Одна опечатка в команде — и машины нет. Вторая проблема серьёзнее: имя root известно заранее, поэтому боты подбирают к нему пароль круглосуточно. На новом сервере с открытым портом 22/TCP за сутки набегает несколько тысяч неудачных попыток входа — это обычный фон.
Решение — завести обычного пользователя и работать под ним, повышая права только там, где это нужно. Команда adduser deploy создаёт пользователя с именем deploy и спрашивает пароль; поля вроде «Full Name» можно пропустить, нажав Enter. Затем usermod -aG sudo deploy добавляет его в группу sudo — это право временно выполнять команды от имени администратора, дописывая sudo в начало строки.
adduser deploy
usermod -aG sudo deploy
Не закрывайте текущее окно терминала. Откройте второе, войдите новым пользователем и проверьте, что sudo whoami отвечает root. Только после этого первое окно можно закрывать: иначе рискуете остаться без рабочей сессии для отката.
SSH-ключи вместо пароля и запрет парольного входа
Пароль из восьми символов перебирается за разумное время, а SSH-ключ — нет: это пара файлов, где приватная половина остаётся на вашем компьютере, а публичная лежит на сервере. Сервер шлёт клиенту случайную задачу, клиент подписывает её приватным ключом — и вход происходит без передачи секрета по сети.
Ключ создаётся на вашей машине, а не на сервере, командой ssh-keygen -t ed25519. Алгоритм ed25519 даёт короткий ключ и работает быстрее классического RSA на 2048 бит. Затем ssh-copy-id deploy@ваш-IP копирует публичную половину в файл ~/.ssh/authorized_keys на сервере.
ssh-keygen -t ed25519
ssh-copy-id deploy@203.0.113.10
Когда вход по ключу заработал, в файле /etc/ssh/sshd_config меняют две строки: PasswordAuthentication no отключает пароли совсем, PermitRootLogin no запрещает вход под root. После правки нужен systemctl restart ssh. Подробный разбор конфига с примерами есть в отдельном руководстве о том, как настроить SSH на VPS.
Файрвол: какие порты оставить открытыми
Файрвол — это фильтр, который решает, до каких портов сервера можно достучаться извне. По умолчанию на свежей машине открыто всё, что слушает какая-либо программа, включая служебные вещи, которые вы не собирались показывать интернету: базу данных на 3306/TCP, кеш на 6379/TCP, тестовый веб-сервер на 8080/TCP.
В Ubuntu и Debian удобнее всего утилита ufw — надстройка над низкоуровневыми правилами ядра с человеческим синтаксисом. Логика простая: сначала запрещаем весь входящий трафик, потом точечно открываем нужное. Правило ufw default deny incoming закрывает вход, ufw default allow outgoing оставляет серверу право самому ходить в сеть за обновлениями.
ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Порт 22/TCP открывают всегда и первым — иначе команда ufw enable отрежет вас от машины прямо посреди сессии. Правило ufw allow OpenSSH как раз и открывает этот порт: ufw знает службу по имени. Порты 80 и 443 нужны сайту: первый для обычного HTTP, второй для HTTPS. Если сайта на сервере не будет, эти два правила не добавляйте. Проверить результат можно командой ufw status numbered: она покажет список правил, любое из которых удаляется через ufw delete номер.

Swap-файл: страховка для сервера с 1 ГБ памяти
Когда оперативная память заканчивается, ядро Linux запускает механизм OOM Killer и принудительно закрывает самый прожорливый процесс. Обычно это как раз база данных или веб-сервер, то есть падает ровно то, ради чего машину и покупали. На тарифах с 0,5–1 ГБ RAM такое случается на ровном месте: хватает одного тяжёлого запроса или сборки проекта.
Swap — область на диске, которую система использует как медленное продолжение памяти. Он не заменяет RAM: чтение с диска в десятки раз медленнее. Зато вместо аварийного завершения процесса вы получаете временное замедление и время, чтобы разобраться. Swap создают четырьмя командами. fallocate -l 2G /swapfile резервирует на диске файл размером 2 ГБ, chmod 600 /swapfile закрывает его от других пользователей системы. Дальше mkswap /swapfile размечает файл как область подкачки, а swapon /swapfile включает его в работу.
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
| Оперативная память сервера | Рекомендуемый размер swap | Значение swappiness |
|---|---|---|
| 0,5 ГБ | 1 ГБ | 10 |
| 1 ГБ | 2 ГБ | 10 |
| 2 ГБ | 2 ГБ | 10 |
| 4 ГБ | 2 ГБ | 10 |
| 8 ГБ и больше | 1–2 ГБ или без swap | 1–10 |
Чтобы swap подключался после перезагрузки, допишите строку /swapfile none swap sw 0 0 в файл /etc/fstab. Значение swappiness из третьей колонки таблицы показывает, насколько охотно ядро пользуется свопом: шкала от 0 до 100. Параметр vm.swappiness=10 в файле /etc/sysctl.conf велит уходить в своп только под реальным давлением, а не заранее. По умолчанию там стоит 60, и для сервера это слишком рано.
Часовой пояс, имя хоста и автообновления безопасности
Машины у большинства хостеров стартуют в UTC — это всемирное время, от которого отсчитывают все часовые пояса. Разница с Москвой — 3 часа, и она портит жизнь при первом же разборе инцидента: в логах nginx одно время, в письмах пользователей другое, задания cron (это встроенный планировщик, который запускает команды по расписанию) срабатывают не тогда, когда вы ожидали. Лечится одной командой: timedatectl set-timezone Europe/Moscow. Проверить результат — timedatectl без аргументов.
Имя хоста меняют командой hostnamectl set-hostname web-01. Смысл появляется, когда серверов больше одного: осмысленное имя видно в приглашении терминала, и вы не выполните команду не на той машине.
Последняя мелочь этого шага — автоматические обновления безопасности. Пакет unattended-upgrades сам ставит критические патчи раз в сутки, не трогая версии приложений. Устанавливается через apt install unattended-upgrades, включается через dpkg-reconfigure -plow unattended-upgrades. Это единственный способ не забыть про обновления через 30 дней, когда первый энтузиазм пройдёт.
Защита от перебора паролей и лишнего шума в логах
Даже после перехода на ключи боты продолжают стучаться в порт 22/TCP. Сами по себе эти попытки безвредны, но они забивают логи и съедают процессорное время на тарифе с 1 ядром. Стандартное решение — fail2ban: служба читает журнал авторизации, считает неудачные попытки с одного адреса и временно блокирует его правилом файрвола.
Разумные значения для начала: maxretry = 3 — три промаха до бана, findtime = 600 — окно в 600 секунд, за которое эти промахи считаются, bantime = 3600 — блокировка на час. Настройки пишут не в jail.conf, а в отдельный файл jail.local: при обновлении пакета первый перезаписывается, второй остаётся нетронутым. Пошаговый разбор конфигурации есть в материале про настройку fail2ban.
Перенос SSH с порта 22/TCP на нестандартный, например 2222, убирает 90–99 % автоматического шума: массовые сканеры проверяют только стандартные порты. Если переносите порт, сначала добавьте правило ufw allow 2222/tcp, и только потом правьте конфиг SSH.
Мониторинг и бэкапы: два дела, которые откладывают зря
Мониторинг отвечает на вопрос «сервер жив?» быстрее, чем клиент напишет вам в мессенджер. Минимальный набор — внешняя проверка доступности сайта раз в 60 секунд с уведомлением в мессенджер и контроль трёх метрик изнутри: свободное место на диске, загрузка процессора и занятая память. Диск важнее всего: заполненный на 100 % раздел роняет и базу, и веб-сервер.
Бэкапы делятся на два уровня. Первый — снапшот у провайдера: полный слепок диска, который разворачивается обратно за несколько минут прямо из панели. Стоит он обычно 10–20 % от цены тарифа и спасает после неудачного обновления. Второй уровень — собственный архив файлов и дампов базы, который лежит вне этого сервера: у хостера может сгореть не только ваша машина.
Практическое правило: держать 7 ежедневных копий и 4 еженедельных, проверяя раз в месяц, что архив реально разворачивается. Схемы с cron, rsync и внешним хранилищем разобраны в руководстве о том, как настроить бэкапы VPS.
Пошаговый чек-лист первых двух часов
Если свести всё сказанное к последовательности действий, восемь шагов складываются в семь блоков команд: часовой пояс, защиту от перебора, мониторинг и бэкапы удобно сделать одним заходом в конце. Порядок принципиален в двух местах: файрвол включают только после того, как разрешён SSH, а парольный вход отключают только после того, как проверен вход по ключу. Остальные шаги можно переставлять.
- Войти по SSH под root, выполнить
apt update && apt upgrade -yи при обновлении ядра перезагрузиться. - Создать пользователя
adduser deploy, добавить его в группу sudo и проверить вход во втором окне терминала. - Сгенерировать ключ
ssh-keygen -t ed25519, залить его черезssh-copy-id, войти по ключу. - Выставить
PasswordAuthentication noиPermitRootLogin no, перезапустить службу SSH. - Включить ufw: сначала правило для SSH, затем 80 и 443 при необходимости, потом
ufw enable. - Создать swap нужного размера, прописать его в
/etc/fstab, задать swappiness 10. - Задать часовой пояс и имя хоста, установить fail2ban, подключить мониторинг и настроить бэкап.
| Шаг | Сколько занимает | Что будет, если пропустить |
|---|---|---|
| Обновление пакетов | 5–10 минут | Известные уязвимости остаются открытыми |
| Отдельный пользователь | 5 минут | Любая опечатка выполняется с правами root |
| SSH-ключи и запрет пароля | 15 минут | Тысячи попыток подбора пароля в сутки |
| Файрвол | 10 минут | База данных и служебные порты видны из интернета |
| Swap-файл | 5 минут | OOM Killer закрывает базу при пике нагрузки |
| Часовой пояс и имя хоста | 3 минуты | Логи и cron живут по UTC, разбор инцидентов усложняется |
| Мониторинг и бэкапы | 40–60 минут | О падении узнаёте от клиентов, откатиться некуда |
Сколько стоит сервер, на котором это разворачивают
Описанная конфигурация не требует мощной машины. Для одного небольшого сайта, телеграм-бота или тестового окружения хватает 1 ядра, 1 ГБ памяти и 10 ГБ диска. Ограничение здесь одно: на 0,5 ГБ RAM swap перестаёт быть рекомендацией и становится обязательным, иначе установка тяжёлого пакета уронит сервер.
| Провайдер | Стартовая цена | Конфигурация начального тарифа |
|---|---|---|
| Cloudcore | от 59 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe |
| Hosting-Russia | от 99 ₽/мес | Конфигурация зависит от выбранного тарифа |
| HostVDS | от 127 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe |
| RuVDS | от 139 ₽/мес | 1 ядро, 0,5 ГБ RAM, 10 ГБ HDD |
| Selectel | от 200 ₽/мес | 1 ядро, 1 ГБ RAM, 10 ГБ NVMe |
| AdminVPS | от 299 ₽/мес | 1 ядро, 1 ГБ RAM, 15 ГБ NVMe |
| Aéza | от 593 ₽/мес | 1 ядро, 2 ГБ RAM, 30 ГБ NVMe |
Данные проверены 03.09.2026.
Разброс от 59 до 593 ₽/мес объясняется тем, что входит в цену: тип диска, наличие снапшотов, скорость канала и техподдержка. Начинать разумно с тарифа за 130–300 ₽/мес. Актуальные предложения в нижнем ценовом сегменте собраны в разделе недорогих VPS.
Частые ошибки при настройке сервера
Почти все проблемы новичков сводятся к одному сценарию: человек меняет настройку доступа и закрывает единственное окно терминала, не проверив, что новый способ входа работает. Второй по частоте случай — установка панели управления поверх уже настроенного вручную сервера: панель переписывает конфиги веб-сервера и файрвола по-своему, и настройки конфликтуют.
- Включить ufw, не разрешив предварительно порт SSH, — доступ к серверу пропадает мгновенно.
- Отключить
PasswordAuthentication, ни разу не войдя по ключу в отдельной сессии. - Создать swap, но забыть строку в
/etc/fstab— после перезагрузки его нет. - Оставить пароль root вида qwerty123 «на пару дней» — этих дней хватает боту с избытком.
- Держать бэкапы на том же диске, что и сайт, и ни разу не проверить восстановление.
- Ставить панель управления после ручной настройки nginx и файрвола вместо чистой системы.
Частые вопросы
Сколько времени реально занимает настройка сервера с нуля? При работе по чек-листу и без сюрпризов — от 90 минут до 2 часов, из которых около часа уходит на мониторинг и бэкапы. Первые шесть шагов новичок проходит за 40–50 минут, если не отвлекаться на поиск команд.
Можно ли обойтись без отдельного пользователя и работать под root? Технически да, сервер будет работать. Но вы теряете защиту от собственной опечатки и оставляете ботам самую известную цель для перебора паролей. Переход на отдельного пользователя занимает 5 минут и окупается сразу.
Нужен ли swap, если на тарифе 4 ГБ памяти? Полезен, но уже не критичен: достаточно 2 ГБ swap при значении swappiness 10. Он сглаживает короткие пики при сборке проекта или обновлении базы, а в постоянной работе почти не используется.
Что делать, если я потерял доступ по SSH после правки конфига? Зайдите через веб-консоль в панели провайдера — она работает поверх виртуальной машины и не зависит от SSH. Оттуда верните прежнее значение в /etc/ssh/sshd_config и перезапустите службу командой systemctl restart ssh.
Обязательно ли менять порт SSH с 22 на другой? Нет, это гигиена, а не защита. Смена порта убирает 90–99 % автоматического шума в логах, но серьёзной атаке не мешает: ключи и fail2ban с блокировкой на 3600 секунд дают несопоставимо больший эффект.
Панель управления вроде ISPmanager заменяет ручную настройку? Частично: панель сама поднимает веб-сервер, базу, почту и SSL, но пользователей, ключи и бэкапы всё равно настраиваете вы. Ставить панель нужно на чистую систему сразу после обновления пакетов, до ручной правки конфигов.
Как понять, что сервера с 1 ГБ памяти уже не хватает? Смотрите на два признака: swap занят больше чем наполовину в обычном режиме и в системном журнале появляются записи OOM Killer. Оба означают, что пора переходить на тариф с 2–4 ГБ RAM.
Итог
Настройка нового сервера — это не творчество, а восемь повторяемых шагов, которые укладываются в два часа: обновление, отдельный пользователь, SSH-ключи, файрвол, swap, часовой пояс, мониторинг и бэкапы. Пройдя их один раз внимательно, вы получаете машину, которую можно спокойно оставить работать на месяцы, и понятную точку отката, если что-то сломается. Выбрать тариф под такую конфигурацию — от 59 ₽/мес за 1 ядро и 1 ГБ памяти — можно в каталоге VPS и VDS с фильтрами по цене, локации и типу диска.