Первичная настройка VPS на Ubuntu: с чего начать
Запустить на сервере одной командой (сначала проверьте содержимое скрипта ниже):
curl -sSL https://cp.lv/scripts/pervichnaya-nastrojka-vps-ubuntu.sh | sudo bash…или через wget:
wget -qO- https://cp.lv/scripts/pervichnaya-nastrojka-vps-ubuntu.sh | sudo bashСодержимое скрипта pervichnaya-nastrojka-vps-ubuntu.sh:
#!/usr/bin/env bash
# Первичная настройка Ubuntu: обновления, пользователь+sudo, таймзона, ufw
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
NEWUSER=deploy
TIMEZONE=Europe/Riga
# 1. Обновление системы (неинтерактивно)
sudo apt-get update -y
sudo apt-get upgrade -y
# 2. Создать пользователя без интерактивных вопросов и выдать sudo
if ! id "$NEWUSER" &>/dev/null; then
sudo adduser --disabled-password --gecos "" "$NEWUSER"
fi
sudo usermod -aG sudo "$NEWUSER"
# 3. Часовой пояс
sudo timedatectl set-timezone "$TIMEZONE"
# 4. Базовый фаервол (сначала SSH, иначе потеряете доступ!)
sudo apt-get install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable
sudo ufw status verbose
echo "Готово: система обновлена, создан $NEWUSER с sudo, таймзона $TIMEZONE, ufw включён."
echo "Не забудьте задать пароль пользователю: sudo passwd $NEWUSER"
Первое, что нужно сделать на новом VPS с Ubuntu, — обновить пакеты, создать отдельного пользователя с правами sudo, задать часовой пояс и включить базовый фаервол. Ниже — точная последовательность команд, которую можно выполнить за 10 минут.
Шаг 1. Подключитесь под root
После создания сервера вы получаете IP-адрес и пароль (или ключ) root. Подключитесь по SSH:
ssh root@ВАШ_IP
Шаг 2. Обновите систему
Обновите список пакетов и установите доступные обновления. Это закрывает известные уязвимости в уже установленном ПО.
apt update
apt upgrade -y
Иногда для установки нового ядра требуется перезагрузка:
reboot
Шаг 3. Создайте нового пользователя
Работать под root постоянно небезопасно. Создайте отдельного пользователя — команда запросит пароль и опциональные данные.
adduser deploy
Замените deploy на любое имя. Задайте надёжный пароль.
Шаг 4. Выдайте права sudo
Добавьте пользователя в группу sudo, чтобы он мог выполнять административные команды:
usermod -aG sudo deploy
Проверьте, что права работают. Перезайдите под новым пользователем и выполните:
su - deploy
sudo whoami
Если в ответ вернулось root — права выданы корректно.
Шаг 5. Настройте часовой пояс
По умолчанию сервер часто стоит в UTC. Логи и cron-задачи будут удобнее, если задать нужный пояс:
sudo timedatectl set-timezone Europe/Riga
Проверьте результат:
timedatectl
Посмотреть список доступных зон:
timedatectl list-timezones | grep Europe
Шаг 6. Включите базовый фаервол
В Ubuntu есть удобная утилита ufw. Разрешите SSH, HTTP и HTTPS, затем включите фаервол:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Проверьте статус и открытые порты:
sudo ufw status verbose
Важно: сначала разрешите SSH, только потом включайте ufw, иначе рискуете потерять доступ к серверу.
Шаг 7. Настройте вход по SSH-ключам
Ключи надёжнее пароля. На своём компьютере сгенерируйте пару (если её нет) и скопируйте публичный ключ на сервер:
ssh-keygen -t ed25519
ssh-copy-id deploy@ВАШ_IP
После этого можно отключить вход по паролю в /etc/ssh/sshd_config — подробности в отдельном гайде по SSH-ключам.
Чек-лист базовой настройки
| Задача | Команда | Зачем |
|---|---|---|
| Обновление | apt update && apt upgrade |
Закрыть уязвимости |
| Пользователь | adduser deploy |
Не работать под root |
| Права sudo | usermod -aG sudo deploy |
Административные команды |
| Часовой пояс | timedatectl set-timezone |
Корректные логи |
| Фаервол | ufw enable |
Ограничить порты |
| SSH-ключи | ssh-copy-id |
Безопасный вход |
Частые вопросы
Нужно ли перезагружать сервер после apt upgrade?
Только если обновилось ядро или системные библиотеки. Проверить можно командой ls /var/run/reboot-required — если файл существует, перезагрузка рекомендуется.
Можно ли удалить пользователя root?
Нет, root удалять нельзя — это системная учётная запись. Достаточно ограничить вход под root по SSH через PermitRootLogin no в sshd_config.
Что делать, если забыл выдать sudo и вышел из root?
Подключитесь заново под root или через KVM-консоль в панели управления сервером и повторите usermod -aG sudo.
Обязательно ли ставить фаервол?
Крайне желательно. Даже базовые правила ufw снижают поверхность атаки, закрывая лишние порты.
Итог
После этих шагов у вас безопасный старт: система обновлена, есть отдельный пользователь с sudo, задан часовой пояс и включён фаервол. Дальше можно ставить веб-сервер, базы данных и приложения.
Нужен сервер для практики? Посмотрите VPS на Linux, выберите тариф в разделе аренда VPS или закажите Администрирование серверов, если настройку удобнее доверить специалистам.
