Початкове налаштування серверу ubuntu

Вступ

При першому запуску серверу Ubuntu 18 знадобляться важливі базові налаштування для забезпечення надійної та зручної роботи. У цьому мануалі ви дізнаєтесь які дії необхідні, щоб домогтися подібного результату.

Вхід в систему під ім’ям Root

Спочатку потрібно перевірити зовнішню IP-адресу сервера і дані доступу – пароль для підключення по SSH або, в разі підключення root-користувача, закритий ключ.

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

ssh root@ip_сервера

У разі успішного підключення, на екрані з’явиться привітання і основні відомості про систему.

Налаштування 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 username @ ip_сервера

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

Перевіряємо можливість підключення до серверу без паролю:

ssh -i .ssh/myserver username@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 username@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 після встановлення ми виконали основні необхідні маніпуляції, для подальшого встановлення ПЗ.