Що робити одразу після придбання VPS: базове налаштування сервера
Замовивши віртуальний сервер у хостинг-провайдера, потрібно чітко розуміти, що робити після придбання VPS. Правильне базове налаштування VPS після придбання допоможе уникнути багатьох проблем, які можуть виникнути під час його експлуатації. Розглянемо, як увійти на VPS і виконати його перше налаштування самостійно, а також з’ясуємо, в яких випадках краще замовити адміністрування VPS-сервера у хостинг-провайдера.
Що потрібно отримати від провайдера
Одразу після придбання VPS ви отримуєте від провайдера лист із даними для доступу до віртуального сервера, що дозволяє негайно приступити до початкового налаштування VPS.
Надіслані дані зазвичай містять таку інформацію:
IP-адреса віртуального сервера. Це відповідає принципам організації роботи мережі, коли кожен вузол має бути прив’язаний до певної адреси. У деяких випадках доцільно замовити виділену IP-адресу для свого сервера, наприклад, якщо він використовуватиметься як проксі/VPN.
Дані облікового запису користувача. До таких даних традиційно належать логін (ім’я користувача) та пароль/SSH-ключ, які дозволяють увійти на VPS і виконувати будь-які дії від імені користувача root.
Дані панелі управління хостингом. Панель дозволяє налаштувати VPS-сервер за допомогою графічного інтерфейсу без необхідності використання веб-консолі. Це, наприклад, може бути корисно для адміністраторів-початківців — замовників послуги. Панель також може бути корисною й для досвідчених фахівців, які за потреби завжди можуть перейти до консолі безпосередньо з панелі. Зазвичай провайдери пропонують на вибір кілька панелей, серед яких можуть бути, наприклад, CPanel, WHM, Plesk або DirectAdmin.
Для входу в панель необхідне посилання у форматі:
https://*.*.*.*:port/
Тут *.*.*.* — IP-адреса VPS; port — адреса порту, яка залежить від використовуваної панелі. Наприклад, для DirectAdmin вказується значення 2222, для WHM — 2087, для CPanel — 2083.
Нижче показано вікно входу в панель управління CPanel.
Тут у полі «Username» потрібно ввести логін, отриманий від провайдера, а в полі «Password» — пароль, після чого натиснути кнопку «Log in».
Перший вхід на сервер
Linux VPS
Найчастіше Linux VPS керується через консоль по захищеному каналу SSH. Щоб виконати початкове налаштування VPS після придбання, слід підключитися до VPS за протоколом SSH із графічного інтерфейсу користувача (GUI) та виконати такі дії:
- Встановити на своєму комп’ютері SSH-клієнт (PuTTy, SecureCRT, ZOC);
- Запустити клієнт і ввести такі дані (див. скріншот нижче):
- Ім’я сервера або його IP-адресу;
- Номер порту — за замовчуванням використовується 22-й порт;
- Вказати тип з’єднання — SSH;
- За необхідності можна зберегти сесію, натиснувши у вікні клієнта кнопку «Зберегти» у правій частині вікна.
- Натиснути кнопку «Відкрити» і у вікні, що з’явилося, ввести свій логін та пароль.
Якщо вхід має здійснюватися за допомогою SSH-ключа, то в цьому випадку пароль вводити не потрібно, але слід попередньо завантажити файл із ключем у форматі ppk (PuTTy Private key).
Щоб увійти на VPS за допомогою ключа, необхідно:
- Запустити клієнт PuTTy;
- Розгорнути меню SSH у лівій частині вікна, що відкрилося (див. скріншот нижче);
- Розгорнути в ньому підменю Auth і вибрати розділ Credentials;
- У правій частині вікна знайти блок Public-key authentication і навпроти поля Private key file for authentication натиснути кнопку Browse, щоб завантажити файл закритого SSH-ключа;
- Коли файл буде завантажено, натиснути кнопку Open для початку сеансу SSH.
У разі, якщо підключення до сервера здійснюється з командного рядка Linux або оболонки PowerShell, команда підключення матиме такий вигляд:
$ ssh user_vps@server_ip
Тут user_vps — ваш логін, server_ip — адреса віртуального сервера, отримана від провайдера.
Під час першого підключення SSH попередить, що раніше ви не підключалися до цього сервера, і запропонує зберегти його відбиток (fingerprint). Для підтвердження збереження відбитка слід ввести слово Yes у місці розташування курсора. Це забезпечить захист від підключення до підробленого сервера у разі підміни або атаки типу MITM. При цьому ваш сервер отримає статус довіреного вузла.
Відбиток буде збережено у файлі:
~/.ssh/known_hosts
Якщо вхід здійснюється за допомогою SSH-ключа, то в команді необхідно вказати його розташування. Це можна зробити за допомогою опції -i:
$ ssh -i /path/to/private_key user_vps@server_ip
Тут /path/to/private_key — шлях до файлу закритого SSH-ключа на вашому комп'ютері.
У наступному розділі буде наведено послідовність кроків щодо створення та використання SSH-ключів, щоб можна було входити на VPS за допомогою ключа.
Windows VDS
Послідовність кроків для підключення до Windows VDS залежатиме від типу ОС, встановленої на пристрої, що підключається. Але в будь-якому випадку для підключення використовуватиметься канал RDP. Наведемо порядок дій під час підключення з Windows, Linux та Mac OS.
Підключення з Windows
У цій ОС є вбудований RDP-клієнт. Використаємо його для підключення. При цьому послідовність дій буде такою:
- Відкрити вікно запуску програм, натиснувши комбінацію клавіш Win+R;
- У полі Open вікна, що з’явилося, ввести mstsc.exe та натиснути ОК;
- У полі Computer нового вікна ввести IP-адресу вашого VPS та натиснути кнопку Connect знизу (див. скріншот);
- Ввести логін і пароль, отримані раніше від хостинг-провайдера, і натиснути ОК;
- Під час входу на VPS з’явиться вікно з повідомленням про помилку сертифіката; встановити прапорець навпроти опції «Більше не виводити запит...» і натиснути ОК.
Підключення з Linux
Для підключення через RDP у Linux потрібен RDP-клієнт. У якості клієнта можна використовувати, наприклад, Remmina для Ubuntu або будь-яку сторонню програму, наприклад, Rdesktop, яка для багатьох збірок доступна в репозиторіях стандартних пакетних менеджерів Linux. Наведемо приклад підключення до VDS для останнього варіанту.
Встановлюємо клієнтський додаток:
$ apt install rdesktop
Підключаємося до VDS Windows:
$ rdesktop -u user_vps *.*.*.*
Тут *.*.*.* — IP-адреса вашого сервера.
У разі, якщо програма відсутня в репозиторії, її можна завантажити за посиланням:
$ wget https://github.com/rdesktop/rdesktop/releases/download/v1.8.6/rdesktop-1.8.6.tar.gz
Підключення з Mac OS
У Mac OS відсутні вбудовані засоби для підключення через RDP, тому необхідно встановити RDP-клієнт, найкраще використовувати офіційний RDP-клієнт Microsoft Remote Desktop. Його можна завантажити з AppStore (див. скріншот).
Далі послідовність дій має бути такою:
- Запустити клієнт на своєму пристрої та на першому екрані вибрати «Add PC» для додавання нового підключення;
- Заповнити поля форми для нового підключення, як показано нижче, замінивши IP на адресу свого сервера, і натиснути Add;
- На головній сторінці додатка з’явиться збережене підключення (Windows 10), подвійне клацання по якому ініціює підключення до сервера;
- Під час підключення до сервера з’явиться повідомлення про невідомий сертифікат; його можна закрити, натиснувши кнопку «Continue»;
- Якщо все пройшло успішно, завантажиться робочий стіл Windows вашого VDS-сервера.
Збережене підключення виглядає так:
Зміна пароля та створення окремого користувача
Зміна пароля
За потреби завжди можна змінити свій пароль або пароль іншого користувача. Наприклад, щоб змінити пароль свого облікового запису, у терміналі можна ввести:
$ passwd
Утиліта запросить ввести поточний пароль, а також новий пароль із повторенням для підтвердження:
Changing password for user user_vps.Current password:New password:Retype new password:passwd: password updated successfully
При цьому слід мати на увазі, що символи під час введення не відображатимуться — це захист від злому.
Щоб змінити пароль іншого користувача, слід ввести в терміналі:
$ sudo passwd name_user
Здесь name_user – имя пользователя, для которого сменяется пароль.
Утилита запросит дважды ввести новый пароль:
New password:Retype new password:passwd: password updated successfully
Так само можна змінити пароль для користувача root:
$ sudo passwd root
При використанні наведеної команди немає необхідності входити в обліковий запис root.
Створення нового користувача
Після входу на сервер бажано одразу ж створити нового користувача з правами sudo, оскільки виконання операцій на сервері під обліковим записом root є небезпечним. Для цього у терміналі слід ввести:
$ adduser user_vps
Команда запросить пароль для нового користувача та його повторне введення, а також деяку додаткову інформацію (див. нижче).
New password:
passwd: password updated successfully
Changing the user information for user_vps
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
s the information correct? [Y/n] Y
Після перевірки та підтвердження введеної інформації клавішею Y на екрані з’явиться приблизно таке:
Adding new user `user_vps` to supplemental / extra groups `users`
Adding user `user_vps` to group `users`
Це означає, що користувач із ім’ям user_vps успішно створено та додано до групи users.
Щоб надати новому користувачеві адміністраторські права sudo, слід додати його до відповідної групи. Це можна зробити, наприклад, за допомогою такої команди:
$ usermod -aG sudo user_vps
Команда usermod змінює файли облікового запису відповідно до вказаних параметрів. Параметри a (додавання користувача до додаткової групи) та G (вказівка імені групи) завжди повинні використовуватися разом.
За необхідності можна одразу змінити робочий обліковий запис, ввівши команду:
$ su -l user_vps
При цьому у запрошенні командного рядка перед символом @ має з’явитися ім’я нового користувача.
Як налаштувати VPS-сервер для входу за допомогою SSH-ключа
Наведемо послідовність кроків, щоб ви знали, як увійти на VPS за допомогою SSH-ключа:
Згенерувати SSH-ключі (приватний і публічний). Для цього на локальному пристрої слід ввести в терміналі:
$ ssh-keygen -t rsa -b 4096 -C "user_email@site.com"
Тут параметр -t вказує тип ключа (RSA); параметр -b визначає його довжину в бітах; -C — задає коментар для ідентифікації ключа.
Команда створить публічний ключ з іменем id_rsa.pub та приватний (закритий) з іменем id_rsa, які за замовчуванням збережуться в каталозі:
~/.ssh/
Додати відкритий ключ на VPS-сервер. Це можна зробити вручну або в автоматичному режимі, що є кращим варіантом.
Для автоматичного додавання ключа введіть у терміналі локального пристрою таку команду:
$ ssh-copy-id user_vps@server_ip
У результаті утиліта ssh-copy-id виконає всі необхідні налаштування та збере файл ключа на сервері за адресою:
~/.ssh/authorized_keys
Після цього можна підключатися через SSH без введення пароля.
Налаштування SSH
Налаштуємо SSH на VPS-сервері. Це можна зробити за допомогою кількох конфігураційних файлів, вказавши потрібні значення параметрів:
$ sudo nano /etc/ssh/sshd_config
PasswordAuthentication no //заборона авторизації за паролемPermitEmptyPasswords no //заборона використання порожніх паролівPubkeyAuthentication yes //встановлення примусової авторизації за ключемPermitRootLogin no //заборона доступу rootPort 2222 //зміна порту на нестандартне значення
Наведемо налаштування, які дозволять не вводити в командному рядку під час кожного підключення ім’я користувача, IP-адресу та шлях до місця збереження ключа:
$ nano ~/.ssh/config
Host my_VPS HostName server_ip //вказуємо IP-адресу свого сервера User user_vps //реєструємо користувача VPS IdentitiesOnly yes IdentityFile ~/.ssh/id_rsa //розміщення приватного ключа Port 2222 //вказуємо свій порт
Тепер підключення до сервера можна буде здійснювати за допомогою команди:
$ ssh my_VPS
Нам залишається перезапустити службу, щоб нові значення параметрів набули чинності:
$ sudo systemctl restart sshd
Після цього можна приступати до роботи.
Оновлення ОС та пакетів
Підключаємося до сервера та вводимо в терміналі таку послідовність команд:
$ sudo apt update && sudo apt dist-upgrade -y && reboot
Перша команда оновлює індекс пакетів і готує систему до оновлення. Друга команда виконує безпечне оновлення пакетів, включаючи ядро Linux. Команда reboot перезавантажує систему, після чого ми знову входимо, але вже на оновлений сервер.
Налаштування імені хоста, часового поясу та базової мережі
Параметр Hostname
Hostname — це мітка будь-якого вузла, підключеного до мережі, яка використовується для його ідентифікації. Значення параметра може складатися як з одного, так і з декількох слів, розділених крапками. Змінити його можна як за допомогою панелі керування (веб-панелі), так і з командного рядка.
Щоб змінити hostname у веб-панелі, слід перейти до розділу налаштувань сервера та знайти параметр із назвою «Ім’я сервера», «Hostname» або подібною, залежно від типу панелі, і змінити його значення.
Щоб змінити hostname за допомогою командного рядка, спочатку бажано перевірити його поточне значення. Це можна зробити за допомогою команди:
$ hostnamectl
Або з параметром:
$ hostnamectl status
Значення hostname використовується сервісами електронної пошти під час заповнення відповідних полів, тому доцільно вказувати для нього доменне ім’я, зареєстроване в DNS і спрямоване на IP-адресу вашого VPS. При цьому воно має збігатися із записом PTR (Pointer Record) сервера. У всіх випадках, коли сервер має публічну IP-адресу, під час зміни hostname завжди має оновлюватися відповідний запис PTR.
Встановити значення hostname можна так:
$ hostnamectl set-hostname server.mydomain.com
Тут server.mydomain.com — нове значення параметра hostname.
Зміна часового поясу
У разі розміщення VPS в іншій країні актуальним стає питання синхронізації часу на сервері та локального часу, з якого здійснюється управління ним. Налаштувати часовий пояс можна як у веб-панелі, так і з командного рядка.
Для веб-панелі CPanel послідовність дій щодо зміни часового поясу буде такою:
- На головній сторінці послідовно вибрати: Server Configuration > Server Time;
- Клацнути на елементі Configure Timezone і з випадаючого списку вибрати потрібний часовий пояс (див. скріншот нижче);
- Натиснути кнопку Change Time Zone праворуч від поля для встановлення обраного поясу;
- Переконатися, що в полі Current Time відображається правильний час.
Щоб змінити часовий пояс із командного рядка через SSH, слід виконати наведені нижче кроки.
Увійти на сервер під обліковим записом root.
Дізнатися поточний час:
$ date
Видалити поточний часовий пояс:
$ rm -f /etc/localtime
Змінити директорію:
$ cd /usr/share/zoneinfo
Вивести список усіх доступних часових поясів:
$ ls -lF
Перейти до каталогу Europe та вивести список часових поясів для міст Європи:
$ cd ./Europe$ ls -lF
Змінити часовий пояс на потрібний (у нашому випадку — київський):
$ ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime
Для серверів часто встановлюється стандартний часовий пояс у форматі UTC (Всесвітній координований час). Для цього використовується команда:
$ timedatectl set-timezone UTC
Після завершення всіх налаштувань слід перезавантажити систему:
$ reboot
Налаштування DNS
Тепер необхідно налаштувати свій домен за допомогою DNS-записів. Для цього у реєстратора слід створити A-запис для site.com (ваш сайт) та www на VPS для IPv4. У разі наявності IPv6 додатково доведеться додати AAAA-записи.
Приклад налаштування для IPv4:
A @ → *.*.*.*
A www → *.*.*.*
Тут *.*.*.* – IPv4-адреса вашого VPS.
Процес оновлення DNS-записів може зайняти від 1 до 24 годин.
Встановлення необхідного ПЗ для виконання завдання
Ніколи не пізно додатково встановити програми, необхідні для роботи. Однак базовий набір ПЗ завжди має бути на сервері. Наведемо його приблизний перелік і продемонструємо процес встановлення.
Щоб встановити потрібні програми, слід ввести в терміналі:
$ sudo apt install -y curl nano git net-tools btop
Curl — утиліта для роботи з URL-адресами, яка дозволяє виконувати HTTP-запити безпосередньо з консолі. Може використовуватися для встановлення скриптів, завантаження файлів тощо.
Nano — текстовий редактор для роботи з конфігураційними файлами безпосередньо в терміналі.
Git — популярна система контролю версій, необхідна для веб-розробки.
Net-tools — повний набір інструментів для роботи з мережами, що включає netstat, ifconfig та інші добре відомі утиліти.
Btop — корисний інструмент для моніторингу ресурсів у реальному часі — RAM, CPU, мережа, дискові накопичувачі. Альтернатива htop та top.
Список складено з урахуванням того, що утиліта sudo для керування правами вже була встановлена раніше.
Все частіше стає корисним клієнт-серверний додаток Docker для роботи з контейнеризованими додатками. Встановити його не складно. Для цього слід запустити на VPS таку команду:
$ curl -fsSL https://get.docker.com | sudo sh
Перевірити правильність встановлення програми можна так:
$ docker --version
Якщо буде виведено поточну версію Docker Engine, значить, усе гаразд.
Базовий firewall
Спростити налаштування брандмауера нам допоможе утиліта Ufw (Uncomplicated Firewall), яка є надбудовою над стандартним брандмауером iptables.
Для початку встановимо утиліту Ufw:
$ sudo apt install ufw -y
Параметр -y встановить програму без будь-яких запитань, що особливо зручно для початківців.
Виконаємо базове налаштування правил, яке забезпечить базовий рівень безпеки.
Заблокуємо всі вхідні з’єднання:
$ sudo ufw default deny incoming
Дозволимо серверу ініціювати вихідні з’єднання:
$ sudo ufw default allow outgoing
Відкриємо стандартний SSH-порт для певної IP-адреси:
$ sudo ufw allow from <IP> to any port 22
Тут IP — адреса пристрою, з якого відбувається підключення до сервера.
Відкриємо порти для необхідних протоколів і сервісів:
$ sudo ufw allow 8000 // порт для веб-додатків
$ sudo ufw allow 80 // для протоколу HTTP$ sudo ufw allow 443 // для захищеного протоколу HTTPS
Після налаштування правил увімкнемо брандмауер:
$ sudo ufw enable
Перевірити правильність встановлених правил та стан брандмауера можна так:
$ sudo ufw status
У результаті можна отримати приблизно таке:
OutputStatus: active To Action From-- ------ ----OpenSSH ALLOW Anywhere Apache Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache Full (v6) ALLOW Anywhere (v6)
У першому стовпці відображається ресурс, для якого встановлюються правила, а в другому — його поточний статус.
Вимкнути брандмауер можна командою:
$ sudo ufw disable
Перевірка резервного копіювання
Резервне копіювання — це головний механізм забезпечення безпеки ваших даних. На shared-хостингу провайдери, як правило, забезпечують автоматичне створення резервних копій усіх даних, включаючи пошту. Однак на сервері це завдання лягає на плечі його адміністратора.
У зв’язку з цим наведемо основні правила, яких слід дотримуватися під час створення резервних копій на VPS:
- Налаштувати резервне копіювання за допомогою панелі управління або в командному рядку;
- Завжди дотримуватися правила 3-2-1 — має бути три копії, які зберігаються на 2-х різних носіях і в різних місцях / мережах;
- Забезпечити щоденне автоматичне резервування даних;
- Щомісяця перевіряти результати відновлення — це убезпечить вас від «сюрпризів» у разі виникнення непередбаченої ситуації.
Чого не варто робити одразу
Наведемо перелік дій, яких краще уникати на VPS:
- Працювати лише під обліковим записом користувача root;
- Відкривати всі порти;
- Вимкнути оновлення;
- Вимкнути брандмауер;
- Вимкнути HTTPS для діючих сайтів;
- Дозволити вхід за паролем;
- Не перевіряти резервні копії;
- Не дотримуватися принципу найменших привілеїв: мінімальні права для користувачів SSH та БД, обмеження доступу до файлів;
- Перевантажувати сервер замість збільшення ресурсів.
Коли краще замовити адміністрування
Більшість провайдерів надають так звану базову підтримку в разі замовлення VPS. Вона включає консультування клієнта без діагностики сервера, стандартний порядок обробки звернень та відсутність доступу провайдера до вашого сервера.
У разі замовлення адміністрування базова підтримка розширюється, і в цьому випадку технічна підтримка провайдера може вносити зміни в програмне забезпечення сервера та виконувати його діагностику з предметною консультацією клієнта. При цьому діятиме підвищений пріоритет обробки запитів.
Тому, якщо у складі команди замовника послуги є професійний системний адміністратор, тоді можна обійтися власними силами для підтримки проєкту. Але якщо такого фахівця немає, то краще все-таки заручитися підтримкою провайдера — це гарантує надійну та безперебійну роботу сервера.