Начальная настройка сервера ubuntu

Введение

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

Вход в систему под именем Root

Первоначально стоит проверить внешний IP-адрес сервера и данные доступа — пароль для подключения по SSH или, в случае подключения root-пользователя, закрытый ключ.

Подключаемся к серверу, авторизуясь под root-пользователем, используя команду:

ssh root@ip_сервера

В случае успешного подключения, на экране появится приветствие и основные сведения о системе.

Настройка Ubuntu Server после установки

Обновление системы

После установки сервера следует провести обновление всех его компонентов (ubuntu server настройка), так как установленные пакеты могут быть не последней версии и для обеспечения безопасности системы стоит провести обновление до последних версий.

Сперва обновим список доступных пакетов:

apt update

Проверим список доступных обновлений:

apt list --upgradable

В случае, если нужно обновить конкретный пакет используем:

apt install название_пакета

Если надо обновить все доступные пакеты используем:

apt upgrade

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

Создание пользователя

Поскольку root-пользователь является Linux администратором с широкими привилегиями, использовать авторизацию под root-ом на постоянной основе считается небезопасным.
Поэтому рекомендуем создать другого пользователя с root-правами.
Для этого в терминале выполните команду:

adduser имя пользователя

Далее нужно будет заполнить поле пароль и при потребности другую дополнительную информацию. Если вы не желаете заполнять эти поля нажмите Enter.
Предоставление привилегий администратора подразумевает доступ пользователя к команде sudo — используется перед командой, которую следует выполнить на правах администратора.
Затем, для того чтобы предоставить новому пользователю привилегии администратора, добавим его в группу sudo, команда выполняется с-под root-пользователя:

usermod -aG sudo имя пользователя

Как результат, вы можете авторизоваться под обычным пользователем и при необходимости выполнить команду как суперпользователь, используя sudo перед каждой командой.

Настройка брандмауэра ufw

Установка брандмауэра
Сервер Ubuntu использует брандмауэр UFW, чтобы разрешить трафик и подключения к ограниченному количеству сервисов. Используя его, есть возможность настроить базовый брандмауэр.
UFW (Uncomplicated Firewall) – утилита для управления iptables.
Каждое приложение регистрируют свой профиль при установке UFW. Эти профили позволяют UFW по имени управлять приложениями.

Для примера, OpenSSH (сервис, отвечающий за подключение к серверу)

Вы можете проверить это, выполнив команду:

ufw app list
Output
Available applications:
OpenSSH

Убедимся, что SSH-соединение разрешено:

ufw allow OpenSSH

Активировать брандмауэр можно выполнив:

ufw enable

Введите “y” и кликните ENTER. Можно увидеть, что SSH-соединения разрешены, путем ввода:

ufw status
Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

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

Проверка доступа к новому пользователю

Далее, перед тем как покинуть систему, стоит обязательно проверить что имеете возможность авторизоваться в систему, используя команду sudo в сессии вашего пользователя по SSH.
Настоятельно рекомендуем оставаться в системе как root, пока не убедитесь что доступ разрешен. В случае, если возникнут трудности, будет возможность устранить проблему и внести правки с привилегиями администратора.
Подключение с помощью SSH возможно двумя способами: пароль или SSH-ключи.
Дефолтный способ подключения по SSH, после установки, по паролю.
Если вы планируете использовать способ по аутентификации SSH ключ, то нужно сгенерировать приватный и публичный ключи.

Генерация SSH ключа

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

cd

чтобы перейти в домашнюю папку пользователя, с которого будет происходить генерация.
Чтобы сгенерировать ключи используйте следующую команду:

ssh-keygen -t rsa -f .ssh/myserver

Опция

-f .ssh/myserver

— указание пути сохранения ключа Если её не использовать, то SSH-keygen сохранит ключ в файл по-умолчанию .ssh/id_rsa

Опционально можете ввести дополнительный пароль для ключей, если в этом нет потребности нажмите Enter.

Добавление публичного SSH ключа на сервер

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

Использовать для этого можно два способа.

Первый способ: ssh-copy-id
На устройстве, где производили генерацию ключей выполните:

ssh-copy-id -i .ssh/myserver.pub имя_пользователя@ip_сервера

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

ssh -i .ssh/myserver имя_пользователя@ip_сервера

опция

-i .ssh/myserver

— указание на путь к ключу, к которому следует подключаться (надо подключаться, если при генерации задавали нестандартный путь).
Второй способ: Вручную (команды выполняются из-под созданного пользователя)
В корне созданного пользователя создайте каталог .ssh и задайте права.

mkdir ~/.ssh
chmod 700 .ssh

Внутри каталога .ssh создайте файл authorized_keys. Например, мы использовали для этого редактор vim:

vim ~/.ssh/authorized_keys

Поместите в него публичный ключ.
Нажмите Shift : для выхода из редактора, и x, для сохранения внесенных изменений, кликаем ENTER чтобы подтвердить действие.
Правим права для файла, чтобы разрешить доступ владельцу.
В терминале вводим команду:

chmod 600 ~/.ssh/authorized_keys

После внесенных изменений у вас будет возможность использовать SSH ключ для подключения к серверу.

Аутентификация по паролю

В новой сессии терминала подключаемся по SSH к созданному пользователю, выполняя команду:

ssh имя_пользователя@ip_сервера

И вводим пароль созданного пользователя.
Уточнение: для выполнения команды с правами администратора, требуется добавить sudo:

sudo команда

При первоначальном запуске команды sudo в новой сессии надо будет ввести пароль пользователя.

Пакетный менеджер snap

SNAP — пакет приложения Linux, который устанавливается на сервер без дополнительных зависимостей.
Snap-пакетами управляет демон snapd.
Для установки snapd используем:

root@server:~# apt install snapd

Отобразим список пакетов, которые были установлены при инсталляции:

root@server:~# snap list

Для установки пакета вводим:

root@server:~# snap install docker

Для удаления ненужных пакетов используем:

root@server:~# snap remove docker

Чтобы обновить все существующие пакеты:

root@server:~# snap refresh

Для обновления определенного пакета:

root@server:~# snap refresh docker

Узнать лог выполненных действий:

root@server:~# snap changes

Подключение swap раздела и настройка кеширования

SWAP — часть дискового пространства, которое используется сервером в случае исчерпания свободной оперативной памяти (RAM).

Проверим не подключен ли он:

root@server:~# swapon --show

или вторым способом:

root@server:~# free -h
total used free shared buff/cache available
Mem: 1.9G 168M 174M 3.1M 1.6G 1.6G
Swap: 0B 0B 0B

Если в значениях нули — то не подключен.

Если список пуст, создайте файл подкачки, например 2Gb.
Перед созданием проверим достаточно ли на сервере свободного дискового пространства:

df -h

Создаем файл размером 2GB

root@server:~# fallocate -l 2G /swapfile

Выставляем корректные права на файл:

root@server:~# sudo chmod 600 /swapfile

Обозначаем созданный файл как файл подкачки:

root@server:~# mkswap /swapfile

Активируем файл подкачки:

root@server:~# swapon /swapfile

Проверяем корректность активации:

root@server:~# swapon —show
root@server:~# free -h

Файл будет активен до перезагрузки сервера.
Чтобы файл оставался активным и после перезагрузки сервера проделаем следующее:

Создадим копию файла до изменений

cp /etc/fstab /etc/fstab_old

Потом выполним команду:

root@server:~# echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Далее оптимизируем настройки системы для работы с файлом подкачки:

По дефолту параметр vm.swappiness равен 60 (высчитывается как 100-60=40%), он отображает собой критическое значение, после которого данные будут сохраняться в swap.
То есть, исходя из формулы представленной выше, при использовании ОЗУ больше чем на 40%, данные будут кэшироваться в swap.
Этот параметр стоит устанавливать исходя из конфигураций сервера, на котором происходит настройка. Это значение можно изменять, в случае, если ОЗУ достаточно.

Проверяем текущее значение параметра:

cat /proc/sys/vm/swappiness

Уменьшаем его значение до 10:

root@server:~# sysctl vm.swappiness=10

В случае, если надо выполнить изменение в текущей сессии до перезагрузки сервера.
Если требуется сохранить изменения и после перезагрузки сервера, в конце файла /etc/sysctl.conf допишите строку:

vm.swappiness=10

Дополнительно подкорректируем настройки параметра

vfs_cache_pressure

, который отвечает за скорость удаления из кэша индексов. По умолчанию значение установлено 100.
Проверим текущее значение:

cat /proc/sys/vm/vfs_cache_pressure

Если к индексам довольно частое, это можно подкорректировать:

root@dedicated:~# sysctl vm.vfs_cache_pressure=50

— при необходимости установить ограничение до момента перезагрузки сервера

В конце файла

/etc/sysctl.conf

добавьте следующую строку:

vm.vfs_cache_pressure=50

— при необходимости добавить изменения на постоянной основе

Заключение

В этой статье настройка ubuntu server после установки мы выполнили основные необходимые манипуляции, для последующей установки ПО.

На нашем сайте вы можете выбрать самый быстрый TurboVPS-тариф с бесплатным администрированием 24/7 и ежедневными автоматическими бэкапами или выделенный сервер с высокой производительностью и быстрой памятью DDR4 — Intel® Xeon®