Первичная настройка сервера Ubuntu
Эта пошаговая инструкция поможет вам легко настроить удалённый сервер на Ubuntu 24.04. Она особенно пригодится начинающим администраторам, работающим на Windows.
Описанные ниже шаги представляют собой оптимальную базу для надёжной и безопасной работы сервера. Правильная первичная настройка особенно важна: от неё зависит стабильность, защищённость и дальнейшая масштабируемость вашей системы. В дальнейшем вы сможете развивать конфигурацию, добавляя веб-сервер, базу данных, Docker и другие сервисы. Однако именно эти действия остаются фундаментом первичного развёртывания любого Ubuntu-сервера.
1. Подключение к серверу
Нажмите сочетание клавиш Win + X, чтобы открыть меню быстрых
инструментов Windows. Выберите Windows PowerShell и подключитесь
к серверу, выполнив команду (замените ip_adres на IP-адрес вашего
сервера):
ssh root@ip_adres
При первом подключении система может запросить подтверждение подлинности сервера. Введите yes, чтобы добавить его ключ в
список доверенных.
После ввода пароля вы попадёте в оболочку сервера, работая от имени суперпользователя root.
⚠️ Будьте особенно внимательны, выполняя команды под root. У этого пользователя нет ограничений, поэтому любая ошибка
может повлиять на работу всей системы. Когда я сам только начинал в этом разбираться, я гуглил каждую команду перед
выполнением. Поэтому ниже я буду приводить подробный разбор команд для вашего удобства.
2. Обновление системных пакетов
Обновление системных пакетов — один из первых и важных шагов при настройке нового сервера. По сути, вы устанавливаете свежие «заплатки», улучшения и исправления безопасности, которые могли выйти после выпуска установочного образа или последнего обновления.
apt update && apt upgrade -y
apt update— обновляет список доступных пакетов и их версий из репозиториев.apt upgrade— устанавливает последние версии уже установленных пакетов.&&— логический оператор: вторая команда выполняется только если первая завершилась успешно.-y— автоматически подтверждает действия во время установки обновлений.
3. Генерация SSH-ключей на клиенте (Windows)
SSH (Secure Shell) — это протокол безопасного удалённого подключения. Он шифрует трафик и позволяет управлять сервером так, чтобы ваши данные не могли перехватить. В Ubuntu SSH-сервер обычно установлен и запущен по умолчанию.
Использовать SSH-ключи значительно безопаснее, чем простой пароль: подобрать ключ невозможно без огромных вычислительных ресурсов. Ключ состоит из двух файлов: открытого (его можно публиковать) и закрытого (его нельзя никому передавать). Под «клиентской машиной» здесь понимается ваш локальный компьютер под Windows.
Откройте новое окно PowerShell и выполните команду:
ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-keygen— создаёт пару криптографических ключей.-t ed25519— выбирает тип ключа. Ed25519 — современный, быстрый и безопасный алгоритм. Он предпочтительнее RSA в 2024–2025 году.-C "your_email@example.com"— комментарий (подпись к ключу). Позволяет потом понять, где и для чего ключ был создан.
После запуска команды программа спросит, где сохранить ключи. Windows подскажет пример пути, например C:\Users\username\.ssh\id_ed25519,
но важно: путь нужно ввести вручную полностью, даже если вы хотите использовать вариант по умолчанию.
Обратите внимание на важный момент: SSH автоматически использует только ключи с именами по умолчанию (id_ed25519, id_rsa). Если вы зададите другое
имя файла, например C:\Users\username\.ssh\server1_key, этот ключ не будет использован автоматически, и при подключении
сервер снова запросит пароль. В таком случае ключ необходимо явно указывать при подключении или прописывать в SSH-конфиге
(конфиг будем настраивать в шаге №7). Поэтому на начальном этапе рекомендуется либо оставить стандартное имя ключа,
либо сразу настроить SSH-конфиг для работы с кастомным именем.
После выбора пути система предложит создать парольную фразу (passphrase). Это дополнительная защита: если она вам не нужна, просто нажмите Enter два раза. Итогом выполнения команды станут два файла:
- Открытый (public) ключ с расширением
.pub. - Закрытый (private) ключ без расширения.
4. Создание нового пользователя с правами sudo — суперпользователя
Использовать учётную запись root для повседневной работы не рекомендуется — это небезопасно. Гораздо правильнее создать
отдельного пользователя и дать ему возможность выполнять нужные команды с правами root через sudo.
Создание пользователя
sudo useradd -m -s /bin/bash -G sudo username
useradd— команда создаёт нового пользователя. Она добавляет запись о пользователе в системные файлы, назначает ему идентификатор (UID), группы и создаёт нужные параметры учётной записи.-m— создаёт домашнюю директорию для пользователя.-s— устанавливает Bash как оболочку по умолчанию.-G sudo— добавляет пользователя в группуsudo, что позволяет выполнять команды с повышенными правами.username— имя создаваемого пользователя (замените на своё).
Установка пароля
passwd username
После ввода команды система попросит дважды ввести новый пароль для пользователя. Убедитесь, что вы запомнили его или сохранили в безопасном месте.
Подключение нового пользователя
Выйдите из текущей сессии root и войдите под новым пользователем:
ssh username@ip_adres
Введите пароль, который вы задали на предыдущем шаге. Теперь вы работаете под новой учётной записью — это безопаснее,
чем выполнять все действия под root, но при необходимости вы всё так же можете использовать sudo для выполнения команд с
повышенными правами.
5. Настройка SSH для нового пользователя
Чтобы новый пользователь мог подключаться к серверу без ввода пароля, необходимо перенести ранее сгенерированный SSH-ключ (из шага №3) в его учётную запись на сервере.
Создайте директорию .ssh для нового пользователя:
mkdir .ssh
mkdir— команда создаёт папку, в которой будут храниться ключи SSH для нового пользователя.
Копирование публичного ключа на сервер
Откройте сгенерированный файл с расширением .pub любым текстовым редактором и скопируйте его содержимое.
На сервере откройте файл authorized_keys командой:
nano .ssh/authorized_keys
nano— запускает простой текстовый редактор прямо в терминале. Он позволяет просматривать и изменять файлы.
Вставьте туда скопированный открытый ключ и сохраните изменения комбинацией Ctrl + X → Y → Enter.
Убедитесь, что ключ скопирован, например, командой:
cat .ssh/authorized_keys
-
cat— выводит содержимое файла в терминал. Если вы видите свой публичный ключ, значит всё прошло успешно, новый пользователь сможет входить по SSH.
Проверка подключения по ключу
Теперь выйдите из текущей сессии и повторите вход:
ssh username@ip_address
Если всё сделано правильно, вход будет осуществлён без запроса пароля (или с запросом парольной фразы для приватного ключа, если вы её задали).
6. Отключение входа пользователю root и по паролю
После того как новый пользователь успешно настроен и может входить на сервер по SSH-ключу, можно перейти к усилению безопасности. На этом этапе мы ограничим способы входа, чтобы минимизировать риск несанкционированного доступа.
Мы сделаем две важные вещи:
- Запретим прямой вход под
root, чтобы никто не смог войти под суперпользователем. - Отключим вход по обычному паролю, оставив единственный способ аутентификации — SSH-ключи, которые значительно безопаснее.
⚠️ Важно! Прежде чем продолжить, обязательно убедитесь, что вы уже можете входить под новым пользователем по SSH-ключу. Если отключить вход по паролю слишком рано и что-то окажется настроено неверно, доступ к серверу может быть полностью потерян:
Редактирование sshd_config
Все настройки SSH находятся в конфигурационном файле /etc/ssh/sshd_config. Сейчас мы изменим параметры, которые
отвечают за вход под root и использование пароля.
Откройте конфигурационный файл:
sudo nano /etc/ssh/sshd_config
Внутри найдите строки, отвечающие за аутентификацию, и измените их следующим образом:
PermitRootLogin yes→PermitRootLogin no— отключает возможность входа подroot.PasswordAuthentication yes→PasswordAuthentication no(при необходимости раскомментируйте строку) — запрещает вход по паролю, оставляя только аутентификацию по ключам.- После внесения изменений сохраните файл комбинацией
Ctrl + X→Y→Enter.
Перезапуск SSH
После изменения настроек SSH необходимо перезапустить службу, чтобы новые параметры вступили в силу:
sudo service ssh restart
После перезапуска прямой вход под root будет заблокирован, а вход по паролю отключён. Теперь сервер должен принимать подключения только по SSH-ключам.
Обязательно проверьте результат. Если сервер продолжает принимать пароль, это означает, что настройки SSH переопределяются. В этом случае выполните дополнительную проверку и настройку по инструкции.
7. Опционально: упрощение SSH-подключений
Если вы часто работаете с разными серверами или просто хотите меньше печатать, можно настроить локальный SSH-конфиг на вашей клиентской машине (Windows). Это позволит подключаться по коротким алиасам вместо длинных команд.
Создайте или отредактируйте файл C:\Users\username\.ssh\config и добавьте в него запись:
Host myserver
HostName server_ip
User username
IdentityFile путь_к_ключу
Host myserver— имя, которое вы будете использовать при подключении.HostName— IP-адрес вашего сервера.User— имя пользователя, под которым выполняется вход.IdentityFile— путь к вашему приватному ключу (например,C:\Users\username\.ssh\id_ed25519).
После этого подключение сводится всего к одной команде:
ssh myserver
8. Настройка брандмауэра (UFW)
Чтобы защитить сервер от нежелательных подключений извне, стоит включить брандмауэр. На базовом уровне проще всего
использовать UFW (Uncomplicated Firewall) — это удобная надстройка над iptables, которая позволяет быстро и понятно управлять
сетевыми правилами.
Наша задача на этом этапе — оставить доступным только SSH, а всё остальное закрыть.
Установка UFW
UFW устанавливается как обычный пакет Ubuntu и после этого становится доступен для настройки:
sudo apt install ufw
Настройка и включение UFW
Сначала разрешим вход по SSH. Этот шаг критически важен: если включить UFW без разрешённого SSH, вы потеряете доступ к серверу:
sudo ufw allow ssh
Теперь включаем брандмауэр:
sudo ufw enable
С этого момента входящий трафик будет блокироваться по умолчанию, а разрешены будут только те подключения, которые вы указали в правилах, в нашем случае SSH.
Проверяем, что фаервол активен
sudo ufw status
Ожидаемый результат (пример):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Заключение
🏁 Поздравляю! Базовая настройка сервера Ubuntu успешно выполнена.
Вы прошли через ключевые этапы, которые формируют фундамент безопасной и стабильной работы системы:
- Подключение к серверу.
- Обновление системных пакетов.
- Генерация SSH-ключей на клиенте (Windows).
- Создание нового пользователя с безопасным уровнем доступа.
- Настройка SSH для нового пользователя.
- Отключение входа под root и входа по паролю для усиления безопасности.
- Настройка локального SSH-конфига, чтобы упростить подключение к серверу.
- Настройка брандмауэра (UFW)
Далее вы сможете развивать конфигурацию в зависимости от задач: устанавливать веб-сервер (Nginx/Apache), разворачивать базы данных (MySQL/PostgreSQL), настраивать Docker или другие сервисы.
Удачи в дальнейшей работе!