Что нового

Установка и настройка сервера Ubuntu 24

  • Автор Автор Guru
  • Дата публикации Дата публикации
  • Посл. обновление Обновлено
  • Время чтения статьи Время чтения статьи 6 мин чтения
В этой статье я расскажу основные шаги установки и базовой настройки Ubuntu 24: установка, обновление системы, создание пользователя с правами sudo, настройку SSH-доступа, конфигурацию фаервола и установку необходимого программного обеспечения. Эти действия помогут подготовить сервер к дальнейшей работе и снизить потенциальные риски безопасности.

Саму систему берем тут

Содержание

Установка​


загрузившись с образа мы видим опции загрузки:

ubuntu 24 install 1.png


Здесь уже выбрано по умолчанию, то что нужно Try or Install Ubuntu Server

Нажимаем Enter

Далее нам предлагают выбор языка:
ubuntu 24 install 2.png



оставляем по умолчанию английский. Нажимаем Enter

Далее выбор клавиатуры, оставляем по умолчанию английский.

Кратко почему английский!
Английский является языком системы и команд, поэтому лучше сразу работать на английском дабы сформировать правильную привычку.

ubuntu 24 install 3.png



Нажимаем Done

Далее, варианты установки. Я выбираю minimized - минимальный дистрибутив. Отмечаем его клавишей пробел. И нажимаем Done. Все остальное ставить будем сугубо по потребностям.

ubuntu 24 install 4.png


Далее настройка сети

Здесь условно я выделю два базовых сценария настройки:

1. автоконфигурация по DHCP, выглядит так, это для домашнего тестового сервера можно использовать. Если этого достаточно нажимаем Done
2. ручная настройка сети

ubuntu 24 install 5.png



для этого выбираем первую строчку с eth > Edit IPv4
ubuntu 24 install 7.png



Выбираем Manual
ubuntu 24 install 8.png



И вписываем данные полученные от провайдера:

1772110672253.png


Обычно известны:
ip адрес
шлюз
dns


Кратко что где
Поле Subnet это подсеть, узнаем у провайдера или тут зная ip, заходим пишем свой ip в поиск и получаем точно подсеть
Поле Address это наш ip
Поле Gateway это шлюз
Поле Name servers это dns, можно указать как провайдерские так и другие публичные гугла или яндекса, обычно две штуки через запятую
Search domians не указываю так как в моем случае публичный сервер

Указывайте, если:
  • есть локальный DNS-сервер (Pi-hole, свой BIND, роутер с dnsmasq и т.д.), и в нём настроены короткие имена хостов.
  • в сети используются имена вида имя_хоста.локальный_домен (например, home.lan, internal.company, lab.local, домен Active Directory и т.п.).
  • нужно чтоб работали команды типа ping nas, ssh printer, ssh db01 без указания полного имени.

Теперь нажимаем save

1772110898738.png


и далее Done


Далее выбор прокси, не указываем, жмём Done

ubuntu 24 install 11.png
просто нажимаем Done

Далее выбор "зеркала"

1772105891754.png


Так же, оставляю по умолчанию, Done

1772105998510.png



и сразу подтверждаем Continue

Далее нам предлагают разметку диска

1772106085183.png



Несмотря на скромный размер 25 GB все равно зададим разделы руками

Выбираем Custom storage layout

1772106195685.png



И нажимаем Done

Выбираем free > Add GPT Partition

1772106760492.png



Указываем разделу /boot 512M ext4 файловая система (Format) и нажимаем Create

1772106836891.png



Аналогично выделим 4 гигабайта для swap (форумула простая swap = ram)

1772107605658.png

  • Swap (своп) — это область подкачки, то есть место на диске, которое операционная система использует как «виртуальную память», когда не хватает оперативной памяти (RAM).
    Проще говоря:когда RAM заполняется, система временно переносит менее используемые данные в swap, освобождая оперативную память для активных процессов.
  • Его размер должен зависеть от объёма RAM и характера нагрузки
    RAMРекомендуемый swap
    до 2 ГБ2× RAM
    2–8 ГБ≈ равен RAM
    8–32 ГБ4–8 ГБ
    32+ ГБ2–4 ГБ или вообще без swap (по ситуации)
Все остальное место отдаем под root /

1772107695348.png



Ничего не указывая выбираем Create
Итог получаем такой:

1772107741775.png


Нажимаем Done и подтверждаем Continue

1772107788005.png


Далее указываем имя, сервер и пароль

1772107872599.png

Если у вас публичный сервер можно указать домен, я во всех ситуациях указываю localhost на этом этапе. При необходимости в дальнейшем поменяем.

Далее нам предлагается обновление, пропускаем (Skip) и нажимаем Continue

1772108121294.png


Далее установка Openssh server, без него не сможем подлючиться к серверу по ssh

1772108280221.png


Тут несколько вариантов может быть, вход по ключу и или по логину и паролю. В данном примере у нас будет вход только по логину и паролю.

Отмечаем install ssh и нажимаем Done

Далее идет предложение устновки дополнительных опций

1772111208155.png


ничего не отмечаем нажимаем Done

И процесс установки пошел

1772108420024.png


По завершении установки, мы увидим

1772109329941.png


Нажимаем тут Reboot Now

На этом установка подходит к концу
Если будет ошибка Failed unmounting cdrom.mount - /cdrom

Это означает, что система не смогла отмонтировать виртуальный CD-ROM при завершении установки или перезагрузке

1772109447632.png


Просто нажимаем Enter. На этом установка завершена.

После установки сервера на базе Ubuntu 24 важно выполнить первичную настройку, чтобы обеспечить стабильную, безопасную и удобную работу системы. Правильно сконфигурированный сервер — это основа для размещения сайтов, приложений, баз данных и других сервисов.

Подключение к серверу по SSH​

На Linux открываем терминал и пишем
Bash:
ssh guru@192.145.97.139
где guru это созданный нами пользователь, если вы не создавали пользователя, а уже получили готовый сервер, то в качестве логина будет root
192.145.97.139 ip адрес сервера
@ это разделитель
(Это стандартный синтаксис почти всех SSH-клиентов (и на Linux, и на Windows, и на macOS). Он пришёл из очень старых сетевых протоколов (ещё из времён rlogin и finger в 80-х), и до сих пор используется везде)
на вопрос Are you sure you want to continue connecting (yes/no/[fingerprint])? пишем yes
далее вводим пароль
и мы зашли

1772121236654.png

теперь нужно переключится в root, для этого пишем
Bash:
sudo -s
вводим пароль пользователя guru и мы становимся root

1772121654140.png


знак $ это права пользователя, знак # это права root

На windows открываем командную строку и пишем как и выше ssh guru@192.145.97.139 и далее все аналогично.
Если на windws не удалось подключение к серверу, веротяно нет OpenSSH Client

Пошаговый алгоритм для Windows 10​


Шаг 1: Проверьте и установите OpenSSH Client (если ещё не стоит)​

  1. Нажмите Win + I → открой Параметры (Settings).
  2. Перейдите в ПриложенияПриложения и возможности (Apps → Apps & features).
  3. Прокрутите вниз и нажмите Дополнительные компоненты / Управление дополнительными компонентами (Manage optional features / Optional features).
  4. Нажмите Добавить компонент / Добавить возможность (Add a feature).
  5. В поиске введите OpenSSH или OpenSSH Client.
  6. Если видно OpenSSH Client в списке:
    • Если установлен — просто пропустите.
    • Если не установлен — выберите его → Установить / Добавить (Install / Add). Установка займёт 20–60 секунд, интернет нужен только в этот момент.
Альтернативно через PowerShell (быстрее):
  • Запустите PowerShell от имени администратора (правой кнопкой на Пуск → Windows PowerShell (администратор)).
  • Проверьте наличие:
    Bash:
    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'


  • Если State = Installed — готово.
  • Если NotPresent — установите:
    Bash:
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

  1. Нажмите Win + I — откроются Параметры (Settings).
  2. Перейдите в раздел ПриложенияДополнительные возможности (Apps → Optional features).(В некоторых сборках: СистемаДополнительные возможности или прямо поиск по «Дополнительные возможности»).
  3. Нажмите Просмотреть возможности / Добавить возможность / Добавить компонент (View features / Add a feature — кнопка обычно вверху).
  4. В строке поиска введите OpenSSH или OpenSSH Client.
  5. Найдите пункт OpenSSH Client:
    • Если он уже в списке установленных — переходите к шагу 2.
    • Если нет — поставьте галочку / выберите его → нажмите Далее / Установить / Добавить (Install / Add).
  6. Подождите 20–90 секунд (иногда требует интернет для загрузки пакета). Перезагрузка не нужна.

Альтернатива через PowerShell (если GUI неудобно):
  • Запустите PowerShell от имени администратора (правой кнопкой на Пуск → Windows PowerShell (администратор) или Terminal (администратор)).
  • Проверьте наличие:
    Bash:
    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'


  • Если State = Installed — готово.
  • Если NotPresent — установите:
    Bash:
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Альтернативный вариант использовать PuTTY: бесплатный SSH и Telnet-клиент
Берем тут или здесь
Запускаем в окне в поле Host name or Ip пишем наш ip порт 22 по умолчанию и нажимаем Open
вводим логин, вводим пароль и входим

На этом процесс подключения по ssh завершен.

Обновление списка доступных пакетов​

Делаем обновление
Bash:
apt update && apt upgrade
И даём подтверждение Y

Установка некоторых полезных инструментов​

Ставим net-tools
Bash:
apt install net-tools

netstat был заменён более быстрым, современным и мощным инструментом ss (из пакета iproute2, который установлен по умолчанию).
iproute2 позволяет давть команду
Bash:
ss -ltnup

а netstat позволяет давать команду
Bash:
netstat -ltnup

Ставим htop удобный монитор процессов
Bash:
apt install htop

применение
Bash:
htop

Cтавим редактор vim

Bash:
apt install vim


Настройка баш​


Bash:
vi ~/.bashrc

Добавить или заменить
нажимаем клавишу i
Код:
HISTSIZE=100000
HISTFILESIZE=200000
export HISTTIMEFORMAT="%h %d %H:%M:%S "
PROMPT_COMMAND='history -a'
export HISTIGNORE="ls:ll:history:w:htop:pwd"

нажимаем ESC и пишем :wq! нажимаем Enter

Применим
Bash:
source ~/.bashrc

СтрокаЧто делает
HISTSIZEСколько команд хранить в памяти сессии
HISTFILESIZEМаксимальный размер файла ~/.bash_history
HISTTIMEFORMATФормат времени при выводе history
PROMPT_COMMAND='history -a'Сразу писать каждую команду в файл
HISTIGNOREКакие команды вообще не сохранять



Настройка времени​


Выставляем время

Bash:
timedatectl set-timezone Europe/Moscow

проверяем что получилось

Bash:
timedatectl

Для получения всех часовых поясов введи
Bash:
timedatectl list-timezones

Для автоматической синхронизации вримени используется лёгкий демон systemd-timesyncd

Включить/проверить:


Bash:
# Включаем синхронизацию (если выключена)
sudo timedatectl set-ntp true

# или то же самое, но более явно
sudo systemctl enable --now systemd-timesyncd

проверка
Bash:
timedatectl status


Вывод должен быть прмиерно таким

Если System clock synchronized: yes и NTP service: active — всё отлично, время будет синхронизироваться автоматически.

Добавляем пользователя с правами sudo​

Bash:
sudo adduser --gecos "" devuser && sudo usermod -aG sudo devuser

--gecos "" — пропускает вопросы о полном имени и т.д.
Задаем пароль и готово

Настройка SSH​


Здесь важно сделать минимум:

1. Сменить порт
2. Явно запретить вход root

Bash:
vi /etc/ssh/sshd_config

нажимаем клавишу i
Закомментируем строку Include /etc/ssh/sshd_config.d/*.conf
Я сторонник того чтоб все было в одном конфиге
просто добавим перед знак #

Далее раскомментируем строку Port 22 убрав знак # и меняем порт 22
Теперь у нас будет Port 3022

Далее находим строку
#PermitRootLogin prohibit-password
И меняем её на
PermitRootLogin no
Под ней пишем
PasswordAuthentication yes
И найдем строку Subsystem sftp /usr/lib/openssh/sftp-server
и закомментируем её #Subsystem sftp /usr/lib/openssh/sftp-server

В данный момент sftp не нужен
нажимаем ESC и пишем :wq! нажимаем Enter

Перед перезапуском ssh проверим фаервол

В Ubuntu 24 используется UFW

Вводим
Bash:
ufw status verbose

Если получаем в ответ ufw: command not found или Status: inactive все хорошо

Если же он работает тогда надо изменить порт и в нем

Разрешаем новый порт

Bash:
ufw allow 3022/tcp

Проверяем
Bash:
ufw status numbered

Убедились, что правило с портом 3022/tcp появилось и стоит выше, чем правило, которое может блокировать (если есть deny по умолчанию).

Теперь перезапускаем ssh
Bash:
systemctl restart ssh.socket
Через минуту пробуем подключение с новым портом.

если все хорошо удаляем старый порт

Bash:
ufw delete allow 22/tcp

Настройка фаервола​


В моем случае у меня минимальный дистрибутив, только что установленый и никакого фаервола нет.

Значит ставим. Публичный серевер без фаервола = безопасность прощай.

Bash:
apt install ufw -y

Проверяем
Bash:
ufw --version

ответ должен быть такой
HTML:
ufw 0.36.2
Copyright 2008-2023 Canonical Ltd.

Далее набор команд c # комментами
Bash:
# Разрешаем SSH (очень важно, если подключение по SSH!)
ufw allow 3022/tcp

# Политики по умолчанию
ufw default deny incoming  # запрещаем все входящие подключения кроме правила выше
ufw default allow outgoing # разрешаем все исходящие подключения

# Включаем фаервол
ufw enable

Проверяем
Bash:
ufw status verbose

должно быть
HTML:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
3022/tcp                   ALLOW IN    Anywhere
3022/tcp (v6)              ALLOW IN    Anywhere (v6)

На этом настройка фаервола закончена


.
  • Мне нравится
Реакции: Sindbad
Об авторе
Guru
Василий, cистемный админ /gnu/linux/windows/macos/mikrotik/troubleshooter, создатель сайта
Интересуюсь всем что делает инфраструктуру надёжной
Открыт к общению и проектам, написать мне можно через форму или в личном сообщении

Комментарии

Информация о статье

Автор
Guru
Время чтения статьи
6 мин чтения
Просмотры
560
Комментарии
2
Посл. обновление

Поделиться этой статьёй

Назад
Верх