Вступ
При створенні нового сервера Ubuntu вам необхідно виконати ряд важливих кроків щодо конфігурації в межах базового налаштування. Ці дії допоможуть підвищити рівень безпеки та зручності роботи з сервером і послужать міцним фундаментом для подальших кроків.
Крок 1 — Вхід з привілеями root
Для роботи з віддаленим сервером вам потрібно знати його публічну IP-адресу. Також вам знадобиться пароль користувача root, і якщо ви встановили ключ SSH для аутентифікації, вам знадобиться публічний ключ для облікового запису root.
Якщо ви ще не підключалися до сервера, виконайте вхід в систему як користувач root, використовуючи наступну команду (замініть виділену частину на публічний IP-адрес вашого сервера):
ssh root@your_server_ip
При першому підключенні прийміть попередження про аутентифікацію хоста. Якщо ви використовуєте аутентифікацію за паролем, вкажіть пароль root для входу в систему. Якщо ви використовуєте ключ SSH з захистом за фразою-паролем, можливо, вам буде запропоновано ввести фразу-пароль першого разу при використанні ключа в кожній сесії.
Детальніше про root
Користувач root — це користувач з правами адміністратора в середовищі Linux, який має дуже широкий набір привілеїв. Через такий широкий набір привілеїв облікового запису root не рекомендується користуватися регулярно. Це пов'язано з тим, що частина можливостей, отриманих за допомогою облікового запису root, включає можливість внесення дуже руйнівних змін, навіть якщо це відбувається ненавмисно.
На наступному кроці ми налаштуємо новий обліковий запис користувача з обмеженими привілеями для щоденного використання. Пізніше ми розкажемо про те, як отримати розширені привілеї лише тоді, коли вони нам необхідні.
Крок 2 — Створення нового користувача
Після входу в систему з правами root ми готові додати новий обліковий запис користувача. У майбутньому ми увійдемо за допомогою цього нового облікового запису, а не з правами root.
У цьому прикладі створюється новий користувач з ім'ям sammy, але ви повинні замінити це ім'я на те, яке вам подобається:
adduser sammy
Вам буде запропоновано відповісти на кілька запитань, починаючи з пароля облікового запису.
Введіть надійний пароль і введіть за бажанням будь-яку додаткову інформацію. Це робити необов'язково, і ви можете натиснути ENTER у будь-якому полі, яке ви хочете пропустити.
Крок 3 — Надання адміністративних прав
Тепер у нас є новий обліковий запис користувача зі стандартними правами. Однак іноді може знадобитися виконання адміністративних завдань.
Щоб не виходити зі стандартного облікового запису і не входити в систему з обліковим записом root, ми можемо налаштувати так званого суперкористувача або додати привілеї root для стандартного облікового запису. Це дозволить нашому звичайному користувачеві запускати команди з правами адміністратора, вказавши слово sudo перед кожною командою.
Щоб додати ці права для нового користувача, нам потрібно додати користувача до групи sudo. За замовчуванням у Ubuntu користувачі, які належать до групи sudo, можуть використовувати команду sudo.
Використовуючи права root, запустіть цю команду, щоб додати нового користувача до групи sudo (замініть виділене ім'я користувача на нового користувача):
usermod -aG sudo sammy
Тепер, коли ви увійдете в систему зі стандартним користувачем, ви можете ввести sudo перед командами, щоб виконати дії з правами суперкористувача.
Крок 4 — Налаштування базового брандмауера
Сервери Ubuntu можуть використовувати брандмауер UFW для перевірки того, що з'єднання дозволяються лише для певних служб. Ми можемо легко налаштувати базовий брандмауер за допомогою цього додатка.
Додатки можуть реєструвати свої профілі в UFW після встановлення. Ці профілі дозволяють UFW керувати цими додатками за їхнім іменем. OpenSSH, служба, що дозволяє підключатися до нашого сервера зараз, має профіль, зареєстрований в UFW.
Щоб переглянути це, ви можете ввести наступну команду:
ufw app list
Output
Available applications:
OpenSSH
Ми повинні переконатися, що брандмауер дозволяє підключення SSH, щоб ми могли ввійти наступного разу. Щоб дозволити ці з'єднання, ви можете ввести наступне:
ufw allow OpenSSH
Після цього ми можемо активувати брандмауер за допомогою наступної команди:
ufw enable
Введіть y і натисніть ENTER, щоб продовжити. Щоб перевірити, що з'єднання SSH дозволяються, введіть наступне:
ufw status
Output
Status: activeTo Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Оскільки брандмауер зараз блокує всі з'єднання, окрім SSH, якщо ви встановите і налаштуєте додаткові служби, вам потрібно буде змінити налаштування брандмауера, щоб дозволити вхідний трафік. Дізнатися про деякі загальні операції UFW можна в нашому керівництві Основи UFW.
Крок 5 — Активація зовнішнього доступу для стандартного користувача
Тепер, коли у нас є стандартний користувач для щоденного використання, необхідно переконатися, що ми можемо використовувати SSH безпосередньо для цього користувача.
Примітка. Допоки ви не переконалися, що ви можете увійти в систему та використовувати sudo з новим користувачем, ми рекомендуємо не виходити з облікового запису root. Таким чином, якщо у вас виникнуть проблеми, ви зможете виправити їх і внести необхідні зміни в якості root.
Процес налаштування доступу SSH для нового користувача залежить від того, чи використовує обліковий запис з правами root на сервері пароль або ключі SSH для аутентифікації.
Якщо обліковий запис root використовує аутентифікацію за допомогою пароля
Якщо ви увійшли в обліковий запис root за допомогою пароля, тоді для SSH активована аутентифікація за допомогою пароля. Ви можете використовувати SSH для нового користувача, запустивши новий сеанс терміналу та використавши SSH з новою назвою:
ssh sammy@your_server_ip
Після введення пароля для звичайного користувача ви зможете увійти. Якщо вам потрібно запустити команду з правами адміністратора, введіть sudo перед кожною командою наступним чином:
sudo command_to_run
Вам буде запропоновано використовувати пароль звичайного користувача при використанні sudo вперше для кожної сесії (і періодично після цього).
Для підвищення рівня безпеки вашого сервера ми дуже рекомендуємо налаштувати ключі SSH замість використання аутентифікації за допомогою пароля. Дотримуйтесь інструкцій з налаштування ключів SSH в Ubuntu з нашого посібника, щоб дізнатися, як налаштувати аутентифікацію на основі ключів.
Якщо обліковий запис root використовує аутентифікацію за допомогою ключа SSH
Якщо ви увійшли в обліковий запис root за допомогою ключів SSH, тоді аутентифікація за допомогою пароля для SSH вимкнена. Вам потрібно буде додати копію вашого локального відкритого ключа до файлу ~/.ssh/authorized_keys нового користувача для успішного входу.
Оскільки ваш відкритий ключ вже доданий до файлу ~/.ssh/authorized_keys облікового запису root на сервері, ми можемо скопіювати структуру цього файлу та каталогу для нашого нового користувача в поточній сесії.
Найпростіший спосіб скопіювати файли з правильними правами власності та дозволами — скористатися командою rsync. Вона буде копіювати каталог .ssh користувача root, зберігатиме дозволи та змінить власників файлів, все це в одній команді. Обов'язково змініть виділені нижче частини відповідно до імені вашого стандартного користувача:
Примітка. Команда rsync використовує джерело та призначення, закінчуючи слешем, в іншому випадку, ніж ті, що мають цього слеша не мають. При використанні rsync нижче переконайтеся, що директорія джерела (~/.ssh) не містить завершальний слеш (переконайтеся, що ви не використовуєте ~/.ssh/).
Якщо ви помилково додаєте завершальний слеш до команди, rsync буде копіювати вміст каталогу ~/.ssh облікового запису root в домашній каталог користувача sudo замість копіювання всієї структури каталогу ~/.ssh. Файли будуть знаходитися у неправильному місці, і SSH не зможе їх знайти та використовувати.
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Тепер відкрийте нову сесію терміналу на вашому локальному комп'ютері та використайте SSH з вашим новим ім'ям користувача:
ssh sammy@your_server_ip
Ви повинні увійти в новий обліковий запис без використання пароля. Якщо вам потрібно запустити команду з правами адміністратора, введіть sudo перед кожною командою наступним чином:
sudo command_to_run
Вам буде запропоновано використовувати пароль звичайного користувача при використанні sudo вперше для кожної сесії (і періодично після цього).
Що далі?
Тепер у вас є надійна основа для вашого сервера. Ви можете переходити до встановлення програмного забезпечення, яке потрібне на вашому сервері.