В этой статье я расскажу основные шаги установки и базовой настройки Ubuntu 24: установка, обновление системы, создание пользователя с правами sudo, настройку SSH-доступа, конфигурацию фаервола и установку необходимого программного обеспечения. Эти действия помогут подготовить сервер к дальнейшей работе и снизить потенциальные риски безопасности.
Саму систему берем тут
Содержание
загрузившись с образа мы видим опции загрузки:
Здесь уже выбрано по умолчанию, то что нужно Try or Install Ubuntu Server
Нажимаем Enter
Далее нам предлагают выбор языка:
оставляем по умолчанию английский. Нажимаем Enter
Далее выбор клавиатуры, оставляем по умолчанию английский.
Кратко почему английский!
Английский является языком системы и команд, поэтому лучше сразу работать на английском дабы сформировать правильную привычку.
Нажимаем Done
Далее, варианты установки. Я выбираю minimized - минимальный дистрибутив. Отмечаем его клавишей пробел. И нажимаем Done. Все остальное ставить будем сугубо по потребностям.
Далее настройка сети
Здесь условно я выделю два базовых сценария настройки:
1. автоконфигурация по DHCP, выглядит так, это для домашнего тестового сервера можно использовать. Если этого достаточно нажимаем Done
2. ручная настройка сети
для этого выбираем первую строчку с eth > Edit IPv4
Выбираем Manual
И вписываем данные полученные от провайдера:
Обычно известны:
ip адрес
шлюз
dns
Кратко что где
Поле Subnet это подсеть, узнаем у провайдера или тут зная ip, заходим пишем свой ip в поиск и получаем точно подсеть
Поле Address это наш ip
Поле Gateway это шлюз
Поле Name servers это dns, можно указать как провайдерские так и другие публичные гугла или яндекса, обычно две штуки через запятую
Search domians не указываю так как в моем случае публичный сервер
Указывайте, если:
Теперь нажимаем save
и далее Done
Далее выбор прокси, не указываем, жмём Done
просто нажимаем Done
Далее выбор "зеркала"
Так же, оставляю по умолчанию, Done
и сразу подтверждаем Continue
Далее нам предлагают разметку диска
Несмотря на скромный размер 25 GB все равно зададим разделы руками
Выбираем Custom storage layout
И нажимаем Done
Выбираем free > Add GPT Partition
Указываем разделу /boot 512M ext4 файловая система (Format) и нажимаем Create
Аналогично выделим 4 гигабайта для swap (форумула простая swap = ram)
Ничего не указывая выбираем Create
Итог получаем такой:
Нажимаем Done и подтверждаем Continue
Далее указываем имя, сервер и пароль
Если у вас публичный сервер можно указать домен, я во всех ситуациях указываю localhost на этом этапе. При необходимости в дальнейшем поменяем.
Далее нам предлагается обновление, пропускаем (Skip) и нажимаем Continue
Далее установка Openssh server, без него не сможем подлючиться к серверу по ssh
Тут несколько вариантов может быть, вход по ключу и или по логину и паролю. В данном примере у нас будет вход только по логину и паролю.
Отмечаем install ssh и нажимаем Done
Далее идет предложение устновки дополнительных опций
ничего не отмечаем нажимаем Done
И процесс установки пошел
По завершении установки, мы увидим
Нажимаем тут Reboot Now
На этом установка подходит к концу
Если будет ошибка Failed unmounting cdrom.mount - /cdrom
Это означает, что система не смогла отмонтировать виртуальный CD-ROM при завершении установки или перезагрузке
Просто нажимаем Enter. На этом установка завершена.
После установки сервера на базе Ubuntu 24 важно выполнить первичную настройку, чтобы обеспечить стабильную, безопасную и удобную работу системы. Правильно сконфигурированный сервер — это основа для размещения сайтов, приложений, баз данных и других сервисов.
где 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
далее вводим пароль
и мы зашли
теперь нужно переключится в root, для этого пишем
вводим пароль пользователя guru и мы становимся root
знак $ это права пользователя, знак # это права root
На windows открываем командную строку и пишем как и выше ssh guru@192.145.97.139 и далее все аналогично.
Если на windws не удалось подключение к серверу, веротяно нет OpenSSH Client
Альтернатива через PowerShell (если GUI неудобно):
Альтернативный вариант использовать PuTTY: бесплатный SSH и Telnet-клиент
Берем тут или здесь
Запускаем в окне в поле Host name or Ip пишем наш ip порт 22 по умолчанию и нажимаем Open
вводим логин, вводим пароль и входим
На этом процесс подключения по ssh завершен.
И даём подтверждение Y
netstat был заменён более быстрым, современным и мощным инструментом ss (из пакета iproute2, который установлен по умолчанию).
iproute2 позволяет давть команду
а netstat позволяет давать команду
Ставим htop удобный монитор процессов
применение
Cтавим редактор vim
Добавить или заменить
нажимаем клавишу
нажимаем
Применим
Выставляем время
проверяем что получилось
Для получения всех часовых поясов введи
Для автоматической синхронизации вримени используется лёгкий демон systemd-timesyncd
Включить/проверить:
проверка
Вывод должен быть прмиерно таким
Если System clock synchronized: yes и NTP service: active — всё отлично, время будет синхронизироваться автоматически.
--gecos "" — пропускает вопросы о полном имени и т.д.
Задаем пароль и готово
Здесь важно сделать минимум:
1. Сменить порт
2. Явно запретить вход root
нажимаем клавишу 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
Вводим
Если получаем в ответ ufw: command not found или Status: inactive все хорошо
Если же он работает тогда надо изменить порт и в нем
Разрешаем новый порт
Проверяем
Убедились, что правило с портом 3022/tcp появилось и стоит выше, чем правило, которое может блокировать (если есть deny по умолчанию).
Теперь перезапускаем ssh
Через минуту пробуем подключение с новым портом.
если все хорошо удаляем старый порт
В моем случае у меня минимальный дистрибутив, только что установленый и никакого фаервола нет.
Значит ставим. Публичный серевер без фаервола = безопасность прощай.
Проверяем
ответ должен быть такой
Далее набор команд c # комментами
Проверяем
должно быть
На этом настройка фаервола закончена
.
Саму систему берем тут
Содержание
Установка
загрузившись с образа мы видим опции загрузки:
Здесь уже выбрано по умолчанию, то что нужно Try or Install Ubuntu Server
Нажимаем Enter
Далее нам предлагают выбор языка:
оставляем по умолчанию английский. Нажимаем Enter
Далее выбор клавиатуры, оставляем по умолчанию английский.
Кратко почему английский!
Английский является языком системы и команд, поэтому лучше сразу работать на английском дабы сформировать правильную привычку.
Нажимаем Done
Далее, варианты установки. Я выбираю minimized - минимальный дистрибутив. Отмечаем его клавишей пробел. И нажимаем Done. Все остальное ставить будем сугубо по потребностям.
Далее настройка сети
Здесь условно я выделю два базовых сценария настройки:
1. автоконфигурация по DHCP, выглядит так, это для домашнего тестового сервера можно использовать. Если этого достаточно нажимаем Done
2. ручная настройка сети
для этого выбираем первую строчку с eth > Edit IPv4
Выбираем Manual
И вписываем данные полученные от провайдера:
Обычно известны:
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
и далее Done
Далее выбор прокси, не указываем, жмём Done
Далее выбор "зеркала"
Так же, оставляю по умолчанию, Done
и сразу подтверждаем Continue
Далее нам предлагают разметку диска
Несмотря на скромный размер 25 GB все равно зададим разделы руками
Выбираем Custom storage layout
И нажимаем Done
Выбираем free > Add GPT Partition
Указываем разделу /boot 512M ext4 файловая система (Format) и нажимаем Create
Аналогично выделим 4 гигабайта для swap (форумула простая swap = ram)
- Swap (своп) — это область подкачки, то есть место на диске, которое операционная система использует как «виртуальную память», когда не хватает оперативной памяти (RAM).
Проще говоря:когда RAM заполняется, система временно переносит менее используемые данные в swap, освобождая оперативную память для активных процессов. - Его размер должен зависеть от объёма RAM и характера нагрузки
RAM Рекомендуемый swap до 2 ГБ 2× RAM 2–8 ГБ ≈ равен RAM 8–32 ГБ 4–8 ГБ 32+ ГБ 2–4 ГБ или вообще без swap (по ситуации)
Ничего не указывая выбираем Create
Итог получаем такой:
Нажимаем Done и подтверждаем Continue
Далее указываем имя, сервер и пароль
Если у вас публичный сервер можно указать домен, я во всех ситуациях указываю localhost на этом этапе. При необходимости в дальнейшем поменяем.
Далее нам предлагается обновление, пропускаем (Skip) и нажимаем Continue
Далее установка Openssh server, без него не сможем подлючиться к серверу по ssh
Тут несколько вариантов может быть, вход по ключу и или по логину и паролю. В данном примере у нас будет вход только по логину и паролю.
Отмечаем install ssh и нажимаем Done
Далее идет предложение устновки дополнительных опций
ничего не отмечаем нажимаем Done
И процесс установки пошел
По завершении установки, мы увидим
Нажимаем тут Reboot Now
На этом установка подходит к концу
Если будет ошибка Failed unmounting cdrom.mount - /cdrom
Это означает, что система не смогла отмонтировать виртуальный CD-ROM при завершении установки или перезагрузке
Просто нажимаем Enter. На этом установка завершена.
После установки сервера на базе Ubuntu 24 важно выполнить первичную настройку, чтобы обеспечить стабильную, безопасную и удобную работу системы. Правильно сконфигурированный сервер — это основа для размещения сайтов, приложений, баз данных и других сервисов.
Подключение к серверу по SSH
На Linux открываем терминал и пишем
Bash:
ssh guru@192.145.97.139
192.145.97.139 ip адрес сервера
@ это разделитель
(Это стандартный синтаксис почти всех SSH-клиентов (и на Linux, и на Windows, и на macOS). Он пришёл из очень старых сетевых протоколов (ещё из времён rlogin и finger в 80-х), и до сих пор используется везде)
на вопрос Are you sure you want to continue connecting (yes/no/[fingerprint])? пишем yes
далее вводим пароль
и мы зашли
теперь нужно переключится в root, для этого пишем
Bash:
sudo -s
знак $ это права пользователя, знак # это права root
На windows открываем командную строку и пишем как и выше ssh guru@192.145.97.139 и далее все аналогично.
Если на windws не удалось подключение к серверу, веротяно нет OpenSSH Client
Пошаговый алгоритм для Windows 10
Шаг 1: Проверьте и установите OpenSSH Client (если ещё не стоит)
- Нажмите Win + I → открой Параметры (Settings).
- Перейдите в Приложения → Приложения и возможности (Apps → Apps & features).
- Прокрутите вниз и нажмите Дополнительные компоненты / Управление дополнительными компонентами (Manage optional features / Optional features).
- Нажмите Добавить компонент / Добавить возможность (Add a feature).
- В поиске введите OpenSSH или OpenSSH Client.
- Если видно OpenSSH Client в списке:
- Если установлен — просто пропустите.
- Если не установлен — выберите его → Установить / Добавить (Install / Add). Установка займёт 20–60 секунд, интернет нужен только в этот момент.
- Запустите 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
- Нажмите Win + I — откроются Параметры (Settings).
- Перейдите в раздел Приложения → Дополнительные возможности (Apps → Optional features).(В некоторых сборках: Система → Дополнительные возможности или прямо поиск по «Дополнительные возможности»).
- Нажмите Просмотреть возможности / Добавить возможность / Добавить компонент (View features / Add a feature — кнопка обычно вверху).
- В строке поиска введите OpenSSH или OpenSSH Client.
- Найдите пункт OpenSSH Client:
- Если он уже в списке установленных — переходите к шагу 2.
- Если нет — поставьте галочку / выберите его → нажмите Далее / Установить / Добавить (Install / Add).
- Подождите 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
Берем тут или здесь
Запускаем в окне в поле Host name or Ip пишем наш ip порт 22 по умолчанию и нажимаем Open
вводим логин, вводим пароль и входим
На этом процесс подключения по ssh завершен.
Обновление списка доступных пакетов
Делаем обновление
Bash:
apt update && apt upgrade
Установка некоторых полезных инструментов
Ставим 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)
На этом настройка фаервола закончена
.