Close

Як розгорнути власний VPS-хостинг на базі HETZNER і Cyberpanel?

Вже більше 5 років я не користуюся жодними приватними хостингами, а розгортаю їх самотужки. Це дає мені повну безпеку, швидкодію та свободу в адмініструванні. Я забув що таке віруси, глюки, махінації адмінів та недоступність серверів. Все це давно в минулому. Тепер все залежить від мене — я сам собі господар, сам собі хостер. У цій статті розкажу про те, як кожному досягти такої самостійності й ефективності, як розгорнути власний хостинг використовуючи VPS від HETZNER за 4 євро на місяць та безкоштовну контроль-панель CyberPanel.

Зміст статті

Хостинг-панель CP CyberPanel

CyberPanel – це безкоштовна багатофункціональна професійна панель управління VPS/VDS сервером, яка базується на технології LiteSpeed/OpenLiteSpeed (обирається на вибір). Характеризується високою надійністю, безпекою, швидкодією. Кіберпанель безкоштовна і дарує адміністратору повну автономність. Це “коробочна” версія, у якій отримуєте “All-in-One”: хостинг, ftp, ssh, mysql, dns, mail-сервер та інші сервіси.

Особливості та переваги Cyberpanel:

  • 100% безкоштовна (Open Source) контроль-панель управління хостингом;
  • Повністю автоматичне розгортання разом з усіма компонентами;
  • Регулярне оновлення і підтримка, наявність відкритого Community;
  • Зручний графічний веб-інтерфейс, підтримуються додаткові теми;
  • Підтримка SSL-сертифікатів Lets Encrypt;
  • Можливість розгорнути свій DNS сервер (на базі PowerDNS);
  • Можливість розгорнути свій MAIL сервер на базі Postfix/Dovecot, включаючи DKIM, SpamAssassin, Rainloop та інші модулі.
  • Розгорнуте керування SSH;
  • Вбудований файловий менеджер, можливість розгорнути свій FTP сервер (на базі PureFTPd);
  • Модулі кешування: LSCACHE, MEMCACHE, REDUS;
  • Панель управління базами даних PhpMyAdmin;
  • Підтримка усіх версій PHP та їх мультифункціональне використання (різні версії PHP на різних сайтах);
  • Вбудована система безпеки: фаєрволи WAF, CSF, ModSecurity, Fail2ban, Immuni360 та інші;
  • Вбудовані функції резервного копіювання (синхронізація з Google Drive, WebDAV та ін.);
  • Зручне керування системними журналами, log-файлами;
  • Підтримка двофакторної авторизації (2FA) для входу в хостинг-панель;
  • Підтримка синхронізації з Git-репозиторіями;
  • Скрипти автовстановлення CMS WordPress, Joomla, Prestashop, Magento та інші;
  • Підтримка WebAdmin Console OpenLiteSpeed;
  • Підтримка Docker;
  • Підтримка Cloud Linux;
  • Підтримка Elastic Search;
  • Підтримка Web Terminal;
  • Можливість створення лімітованих пакетів використання серверних ресурсів для користувачів для розгортання власного хостингу;
  • …та багато іншого!

Недоліки Cyberpanel:

  • Проблеми з підтримкою старих версій CentOS 7/8;
  • Епізодичні проблеми з оновленнями, дрібні баги;
  • Відсутність офіційної підтримки Rocky Linux;
  • Мінімум 1Гб оперативної пам’яті й більше.

Системні вимоги Cyberpanel:

  • Операційні системи: Ubuntu 20.04/22.04, Alma Linux 8/9.
  • Мінімум 10 Гб дискового простору.

Вибір VPS. Hetzner Cloud

На сьогодні існує чимало хмарних платформ, де можна придбати VPS і розгорнути власний хостинг. Це Google Cloud Platform (GCP), Amazon Web Services (AWS), Digital Ocean, Linode, Azure, OVH Cloud та інші. Однак, Hetzner Clloud вразив мене з першого погляду! Це один з найдешевших, найдружелюбніших і водночас найстабільніших рішень, які мені зустрічалися.

Німецька компанія HETZNER по праву вважається ветераном на ринку телекомунікаційних послуг і десятиліттями постачає VPS-сервери для користувачів з різних куточків світу, у тому числі і для людей з України.

Нижче представлена тарифна сітка HETZNER для придбання віртуальних приватних серверів (Virtual Private Server, VPS):

HETZNER Cloud services prices
Ціни актуальні станом на 21.04.2024 й включають 19% податку VAT. Детальніше на офіційному сайті HETZNER.

Як бачимо, мінімальна ціна тут починається приблизно з 4 Євро. Однак, це з врахуванням податку VAT, який стягується з членів ЄС. Для українців його відсутність стане приємним бонусом. Порівняно з дорогими Shared-хостингами та іншими Cloud-платформами, це копійчані суми.

До порівняння, ось прайс на VPS-сервери від DigitalOcean (станом на 30.11.2024). Звичайний сервер з двоядерним CPU (не Intel і не AMD), оперативкою всього лиш 2Гб і трафіком 50Гб тут починається від $18/міс:

В HETZNER за вдвічі меншу ціну ви отримуєте не просто простір для сайту, а цілу ІТ-інфраструктуру – автономний приватний віртуальний сервер з персональними IPv4/IPv6 адресами (більшість звичайних хостингів надають лише одну публічну IP-адресу на всіх), швидкісними і багатозадачними обчислювальними процесорами типу Intel/AMD (на вибір), десятки гігабайт дискового простору для зберігання даних та майже необмежений трафік. 20 Тб на місяць є безлімітом, який просто неможливо вичерпати звичайному електронному ресурсу. Ви без проблем зможете підняти на цьому сервері і поштовий сервіс, і файловий ssh/ftp, і власний dns!

Фізична геолокація VPS-серверів в HETZNER постійно розширються, на момент написанння цієї статті подаються на такі локації як: Німеччина (Нюрнберг, Фалькенштейн), Фінляндія (Гельсінкі), США (Хілсбро, Ашбум), Сінгапур тощо.

Оплата здійснюєится за повністю прозорим принципом “Скільки спожив — стільки сплатив”. Тобто, якщо ви вимкнете сервер і він буде простоювати — ви сплатите менше. Але тариф для вас завжди буде однаковим (за умов, що ви не змінюватимете конфігурацію і не замовлятимете додаткові сервіси, які оплачуються окремо).

Список переваг HETZNER:

  • Високотехнологічна архітектура, кращі сервери і дата-центри в Європі;
  • Висока відмовостійкість;
  • Легке масштабування;
  • Низький процент ризиків і кіберінцидентів;
  • Зручний, сучасний та привабливий веб-інтерфейс;
  • Вбудовані інструменти відновлення, резервного копіювання, фаєрвол;
  • Розширене системне і мережеве керування сервером, моніторинг споживання ресурсів, налаштування DNS/PTR/rDNS записів та багато іншого;
  • Зручна білінг-панель та оплата хостингу (підтримуються усі банківські картки VISA/MasterCard), а також PayPal;
  • Чудова документація;
  • Підтримка різноманітних операційних систем;
  • Готові ISO-образи для розгортання популярних додатків.

Недоліки HETZNER:

  • Відсутність україномовної підтримки;
  • Повільне реагування на запити користувачів;
  • Резервне копіювання платне;
  • Обов’язкова верифікація по паспорту;
  • Можливий бан через IP-адресу;
  • Бан поштового порту 25 по замовчуванню для свіжозареєстрованих користувачів (триває ~1 міс.).

Отже, давайте зареєструємося в сервісі Hetzner й спробуємо самотужки розгорнути VPS-сервер з мінімальними характеристиками та встановити хостинг-панель.

👉 Читайте також: Що таке оренда VPS-серверів?

Реєстрація облікового запису та створення VPS-сервера в Hetzner Cloud

Для початку реєстрації переходимо за моїм партнерським посиланням (при покупці VPS ви повинні отримати 20 Євро бонусів!), дотримуємося усіх вказівок HETZNER і реєструєте новий акаунт, вказавши дійсну електронну пошту. На неї прийде посилання з підтвердженням операції. Переходите по ньому і завершуєте реєстрацію, вказавши свої персональні дані у всіх полях форми реєстрації, включно з номером телефону і банківською карткою. Також, майте на увазі, що надалі для верифікації, можливо, доведеться завантажити скан-копію свого паспорта. Реєстрацію бажано проводити з білої IP-адреси, вказавши свої справжні дані, інакше можливий бан. Це зроблено для того, щоб захистити користувачів від маніпуляцій, обману та викрадення акаунту.

Реєстрація в Hetzner

Отже, після успішної реєстрації входимо у свій онлайн-кабінет HETZNER і на панелі керування створюємо новий проєкт “Add new project”.  Додаємо новий сервер “Create a server”, де треба обрати бажану конфігурацію сервера.

Операційну систему рекомендую AlmaLinux 8/9, яка є логічним продовженням CentOS і споживає мінімум ресурсів при максимальній кількості сайтів та навантаженнях. Хоча, якщо у вас не більше 1-2 сайтів і ви не плануєте збільшувати їх кількість, то можна зупинитися і на OS Ubuntu – у неї чудова підтримка та сумісність з різними серверними компонентами, однак вона вимоглива до ресурсів.

HETZNER локації VPS серверів

Серед перелічених типів серверів обираєте конфігурацію VPS лише на базі процесорів Shared vCPU x86 – це окремі віртуальні процесори, які черпають свої ресурси з одного фізичного дата-центру. Поряд є також Dedicated vCPU-процесори, однак вони потрібні для дуже особливих та вибагливих проєктів з багатотисячним трафіком й складною архітектурою. Відповідно їх ціна у 5 разів дорожча. Тож для звичайного хостингу підійде Shared vCPU (не плутати з Shared-хостингом).

Отже, при виборі Shared vCPU, нижче з’явиться список готових конфігурацій. Для початківця оптимальним мінімальним вибором буде CX22 (на базі Intel Xeon Gold) або CPX11 (на базі AMD Epyc 7002 Series) з дисковим простором 40 Гб.  Для тих, хто планує розгортати хостинг з багатьма сайтами рекомендую звернути увагу на CX32 (Intel) і CPX21 (AMD). В майбутньому ви зможете масштабувати ці характеристики, наприклад збільшити кількість оперативної пам’яті або ядер, або взагалі мігрувати на більш потужний сервер (з допомогою додаткових послуг Backup і Snapshots).

В розділі Networking (Мережа) залишаєте все без змін. Вам однаково стануть в нагоді і IPv4, і IPv6 адреси. Варто лише врахувати, що IPv4 є платною послугою – 0,50 Євро/місяць й буде включена до загальної вартості:

На наступному етапі треба обов’язково згенерувати SSH-ключі доступу і додати публічний ключ на сервер, натиснувши “Add SSH key”. Він буде використовуватись для віддаленого доступу до сервера по протоколу SSH:

Створювати SSH-ключі треба лише на власному комп’ютері, виконавши у терміналі команду: ssh-keygen. У Windows можна скористатися додатком PuTTYgen. В результаті ви отримаєте пару ключів – private і public_key.pub, які рекомендується зберігати в надійному місці з обмеженими правами доступу (chmod 0600).

SSH Generate key in Linux command line

Публічний ключ з розширенням .pub відкрити у текстовому редакторі (або просто виконавши команду термінала cat ~/.ssh/id_pub.key) й скопіювати його вміст у віконечко “Add an SSH key” в HETZNER.

Ця операція з імпортом ключа дуже важлива – уважно перевіряйте усі дії, інакше потім не зможете з’єднатися зі своїм сервером. А процедура відновлення доступу до сервера вимагає додаткових навичок.

Решту опцій – Volumes, Firewalls, Backups, Placement groups, Labels, Cloud config залишаємо без змін, вони потребують додаткової оплати і на цьому етапі є зайвими.

Праворуч з’явиться лічильник кошторису — перевірте фінальну суму до оплати й тисніть кнопку “Create & Buy now”:

Після цього, через декілька секунд у вашому проєкті буде створено новий віртуальний VPS-сервер з кодовою назвою комплектації, яку ви обрали при створенні. Ви зможете перейти в нього й керувати ним з правами root (чого немає на звичайному shared-хостингу), моніторити споживання ресурсів, керувати мережею, підключити додаткові ресурси, опції, послуги… Словом використовувати як вам заманеться  – при цьому пам’ятайте, що все обслуговування лягає на ваші плечі:

На цьому частина по розгортанню VPS-сервера завершена. Ви отримали свій віртуальний майданчик. Тепер потрібно відконфігурувати його, встановити необхідні компоненти й розгорнути хостинг-панель.

Розгортання Cyberpanel на VPS-сервері

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

ssh -p 22 -i ~/id_rsa root@XX.XX.XX.XXX

Для зручності раджу використовувати менеджер SSH-з’єднань, наприклад PuTTY (Linux/Windows) або Asbru (Linux).

Після того як ви зайшли на сервер, можна оглянути характеристики сервера виконавши команди lscpu, free, top, cat /etc/os-release та інші для аудиту і діагностики Linux.

Першим обов’язковим кроком буде оновлення системи. Якщо цього не зробити — можуть потім виникати технічні помилки та труднощі в обслуговуванні.

Оновлення Ubuntu:

sudo apt-get update
sudo apt-get upgrade -y

Оновлення CentOS / AlmaLinux:

sudo yum check-update
sudo yum update -y

Після оновлення варто перезавантажити сервер командою: reboot

Увага: CyberPanel рекомендується встановлювати на “чистий”, новостворений сервер. Якщо він попередньо використовувався, тоді бажано вимкнути усі активні сервіси — Apache, MySQL, Postfix, Dovecot та інші. А також видалити їх файли конфігурації. Нижче команди, які допоможуть зробити це:

systemctl stop apache2
systemctl stop mysql
systemctl stop postfix
systemctl stop dovecot
apt-get purge apache2* libapache2* mysql-client* mysql-common* mysql-server* postfix* dovecot*
apt-get autoremove
apt-get clean
rm -rf /var/lib/mysql

Наступним кроком буде відключення вбудованої системи захисту SElinux, яка може блокувати доступ деяким службам CyberPanel. Насправді це дуже потужна система захисту, але у випадку з CyberPanel безпеку візьмуть на себе інші компоненти.

Перевірити статус SELinux можна командою: sestatus.

Якщо статус enabled, то переходимо до редагування файлу nano /etc/selinux/config й змінюємо значення на disabled:SELINUX=disabled

Якщо у вас не встановлений редактор Nano, встановіть його командою: sudo yum install -y nano

Зберігаємо зміни в файлі (СTRL+O), перезапускаємо сервер і ще раз перевіряємо статус. Тепер SElinux повинен бути вимкнений.

Переходимо до запуску автоматичного скрипту встановлення CyberPanel:

sudo su -
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)

Відбудеться ініціалізація та перевірка вимог системи, після чого менеджер встановлення запропонує обрати один з трьох варіантів:

  1. Встановити CyberPanel
  2. Встановити додатки й розширення
  3. Покинути менеджер встановлення

Install Cyberpanel on Centos 8

Введіть бажану цифру та натисніть Enter. Далі пройде чекінг й запропонують обрати версію CyberPanel:

  1. CyberPanel с OpenLiteSpeed (безкоштовна версія)
  2. CyberPanel з LiteSpeed Enterprise (комерційна)
  3. Покинути менеджер встановлення.

Після цього вам запропонують відповісти на ряд запитань, щоб точно сконфігурувати пакет встановлення CyberPanel:

  1. Встановити Повний пакет сервісів для CyberPanel? Включаючи PowerDNS, Postfix та Pure-FTPd. — якщо ви хочете розгорнути повномасштабний функціональний хостинг, обирайте «Так». При бажанні усіх їх можна потім відключити.
  2. Чи бажаєте встановити віддалену MySQL базу даних? — Зазвичай, для звичайних сайтів використовується стандартна локальна SQL-база даних. Тому тиснемо «Ні».

Далі відбудеться перевірка актуальної версії «Кіберпанелі», після чого вам запропонують згенерувати або ввести пароль до панелі керування — рекомендую придумати надійний пароль зі спеціальними символами верхнього та нижнього регістру:

Продовжуємо відповідати на наступні питання:

  1. Чи бажаєте встановити розширення Memcache? — це популярний компонент об’єктного кешування (object cache), який може пришвидшити завантаження сторінок сайту при високому навантаженні. Може знадобитись. Відповідаємо «Так».
  2. Чи бажаєте встановити розширення Redis? — ще один компонент кешування даних. Може знадобитись.
  3. Бажаєте налаштувати WatchDog для веб-сервісів і бази даних? — тиснемо «Ні».

Далі відбудеться встановлення всіх необхідних пакетів, що може зайняти від 5 до 15 хвилин. Уважно спостерігайте за перебігом подій, адже в разі будь-яких критичних помилок процес може піти не так як хотілося і бути обірваним, що в майбутньому вплине на стабільність роботи. Однак, у разі несуттєвих помилок їх можна буде потім усунути.

По завершенню ви отримаєте фінальне повідомлення про успішне встановлення з посиланнями на всі доступи, а також рекомендаціями щодо мережевих портів, без яких не зможуть працювати сервіси CyberPanel та OpenLiteSpeed сервер:

☝ Примітка: Візьміть до уваги, що HETZNER по замовчуванню блокує 25 порт, який використовується для поштового mail-сервера. Але його можна розблокувати, звернушись до технічної підтримки у панелі керування сервером.

На запитання «Бажаєте перезавантажити сервер зараз?» — натискаємо «Так».

Після перезавантаження у консолі сервера з’явиться технічна інформація зі статистикою доступності сервера (Uptime) та повідомленням про те, що цей сервер містить встановлену панель управління CyberPanel:

До речі, його можна змінити або видалити. Для цього просто необхідно відредагувати файл /etc/pofile.d/cyberpanel.sh.

Налаштування хостинг-панелі CyberPanel

Після встановлення, панель управління CP CyberPanel буде доступна на порту 8090 (перевірте, щоб він був відкритим на сервері) за URL-адресою: xttp://IP_адреса_сервера:8090. Через відсутність SSL-сертифікату в браузері попередньо з’явиться попередження про незахищене з’єднання, однак не хвилюйтесь це стандартна ситуація і ви зможете потім окремо його встановити. Натисніть, що приймаєте “ризик” і браузер переспрямує вас на сторінку входу:

Вводите дані, які ви отримали при встановленні і авторизуєтеся в панелі. Рекомендую одразу перейти в розділ Users -> Modify users й активувати Двофакторну авторизацію (2FA).

Веб-інтерфейс Cyberpanel простий та інтуїтивно-зрозумілий, складається з наступних блоків:

  • ТОП-панель — тут відображається статус користувача, а також деякі кнопки керування, посилання на спільноту підтримки і вихід.
  • Бічна панель (sidebar menu) — в ній розміщене сайдбар-меню з усіма розділами, інструментами керування та налаштуваннями.
  • Дашборд (dashboard) — головний екран з моніторами та основними функціями.

Процес роботи у Cyberpanel аналогічний будь-якому іншому хостингу. Для розгортання веб-сайтів існує пункт меню “Websites”, де можна провести будь-яку операцію — додати, вилучити, модифікувати, здійснювати адміністрування.

  • Для роботи з базами даних є окремий розділ – “Databases”.
  • Робота з поштовими серверами і адресами — розділ “Email”.
  • Сертифікати безпеки — розділ “SSL”.

Cyberpanel містить чимало інших розділів, інструментів, компонентів і елементів управління. Для їх вивчення варто скористатись офіційною документацією.

Якщо ви користуєтесь Cyberpanel лише для власних потреб, то першим ділом рекомендую перейти в розділ Packages -> Modify packages й відредагувати пакет споживання хостингу, знявшив усі обмеження і ліміти. Однак, це може бути корисним, якщо ви хочете розмежувати використання хостингу за тарифними планами для різних користувачів.

Налаштування мережевої безпеки CyberPanel

У розділі “Security” містяться усі необхідні налаштування, модулі та компоненти безпеки сервера, такі як:

  • Firewall
  • Secure SSH
  • ModSecurity Conf
  • ModSecurity Rules
  • ModSecurity Rules Packs
  • CSF
  • CageFS
  • Imunify 360
  • ImunifyAV

Перш за все рекомендую обов’язково встановити firewall. З усього переліку, який надає CyberPanel рекомендую CSF (ConfigServer Security & Firewall) — це легкий у керуванні і багатофункціональний модуль кіберзахисту для віртуальних серверів на базі Linux. Поставляється разом з модулем захисту від брутфорс-атак LFD (Login Failure Daemon).

Для встановлення переходимо в Security -> CSF й тиснемо кнопку “Install CSF”. Після завершення процесу необхідно оновити вікно, вийти і повторно увійти в акаунт. Перед вами з’явиляться правила блокування вхідних і вихідних TCP/UDP портів засобами CSF. Ви зможете змінювати їх, дозволяти або блокувати небажані IP-адреси (будьте обачними, є ризик заблокувати доступ критичним сервісам):

Проаналізуємо список мережевих вхідних (in)/вихідних (out) TCP-UDP портів та їх призначення:

  • TCP 8090 in — CyberPanel (панель керування хостингом, за необхідності можна відфільтрувати для білого списку IP-адрес);
  • TCP 7080 in — OpenLiteSpeed (панель керування веб-сервером, за необхідності теж можна обмежити лише для білого списку IP-адрес);
  • TCP 80 in/out — HTTP-протокол (має бути доступним для всіх IPv4/IPv6 адрес);
  • TCP 443 in/out — захищений HTTPS-протокол (аналогічно, має бути доступних для всіх IPv4/IPv6 адрес. Для роботи QUIC/HTTP3 протоколу повинен бути включений також UDP in/out 443);
  • TCP 8088 in/out — може використовуватися веб-сервером OpenLiteSpeed;
  • TCP 22 in/out — порт для з’єднання з сервером через безпечний SSH протокол. На базі цього протоколу також працює sFTP, який можна використовувати замість незахищеного FTP. Доступ до SSH можна обмежити по білому списку IP-адрес, а сам номер порта змінити;
  • UDP 123 out — NTP-сервер (синхронізація сервера з інтернет-службою часу, може бути необхідним для коректної роботи деяких функцій та додатків/сервісів);
  • UDP 53 out — порт DNS, використовується сервером для здійснення DNS-запитів, зокрема пошуку інформації про доменні імена. Якщо плануєте запускати власний повнофункціональний DNS-сервер (наприклад, на базі PowerDNS), тоді необхідно включити порти UDP 53 in/out і TCP 53 in/out;
  • TCP 43 out – порт служби WHOIS, не потрібен якщо не використовувати сервер в якості автономного DNS;
  • TCP-UDP in/out 20, 21, 40110:40210 — порти FTP-сервера. На сьогодні даний протокол вважається вразливим до багатьох атак, хоча CyberPanel застосовує також порт 40110:40210 FTP over TLS, захищаючи з’єднання. Однак, якщо ви звичайний користувач, то замість цього краще використовувати стандартний захищений порт TCP SSH/sFTP. У разі, якщо ви плануєте використовувати повнофункціональний файловий сервер з віддаленим виконанням команд і багатокористувацьким доступом (наприклад, на базі PureFTPd), тоді ці порти необхідно тримати включеними;
  • TCP 113 in/out, UDP 113 out — протокол Ident для ідентифікації і авторизації користувачів, який може застосовуватися деякими сервісами, наприклад Samba. На жаль, цей протокол є вразливим до атак, тому його не бажано тримати увімкненим (за умови, що він не потрібен для якихось задач);
  • TCP 1025 in — може використовуватися різними службами, зокрема для керування CSF-фаєрволом з веб-інтерфейсу хостинг-панелі. За бажанням можна вимкнути;
  • TCP 5678 in — порт вбудованого терміналу в хостинг панелі. Якщо не використовуєте, можна відключити;
  • TCP 25 in/out — класичний порт поштового SMTP-сервера. Потрібен для використання системних функцій, наприклад email-оповіщеннях;
  • TCP 465 in/out — захищений порт SMTPs з використанням SSL/TLS. Може бути потрібен для функцій email-оповіщення та обов’язково для поштового сервера;
  • TCP 587 in/out — ще один порт SMTPs, але тільки з використанням протоколу STARTTLS. Може бути потрібен для деяких поштових функцій/клієнтів. Однак, якщо ви точно знаєте, що використовуєте тільки 465 порт, то можна вимкнути. Якщо не користуєтеся поштовим сервером, можна відключити;
  • TCP 995 in — захищений порт POP3s для отримання електронної пошти з сервера. У цього пртокола є відмінна опція – при отриманні пошти у поштовому клієнті (напр., Thunderbird) він може видаляти email-листи на сервері, зберігаючи їх локально. Якщо плануються додаткові інтеграції, наприклад з GMAIL, тоді варто увімкнути і вихідний порт TCP 995 out. Якщо не користуєтеся поштовим сервером, можна відключити;
  • TCP 110 in/out — незахищений порт POP3 для отримання електронної пошти. Рекомендується відключити;
  • TCP 993 in/out — захищений порт IMAPs. На відміну від POP3, він завжди залишає листи на сервері. Може використовуватися деякими поштовими клієнтами для отримання пошти. Однак, якщо ви точно впевнені, що використовуєте тільки POP3s, то можна відключити. Якщо не користуєтеся поштовим сервером, варто відключити;
  • TCP 143 in — незахищений порт IMAP для отримання електронної пошти. Рекомендується відключити.

👉 Повний список мережевих портів з описом>>

На замітку: Будь-які дії з фаєрволом CSF можна також виконувати в терміналі VPS-счервера через SSH. Для цього необхідно відредагувати файл конфігурації: nano /etc/csf/csf.conf. Після цього зберегти зміни (CTRL+O) та перезапустити файєрвол командою: csf -r

CSF Firewall Linux

При встановленому CSF, якщо перейти у розділ Security -> Firewall замість стандартного фаєрволу CyberPanel будне відображатися панель статусу CSF. Тут можна багато-чого налаштувати, а також провести аудит безпеки сервера натиснувши пункт Check Server Security.

В CyberPanel присутній також модуль безпеки веб-сервера – ModSecurity (Security -> ModSecurity). Фактично, це ще один фаєрвол, який буде працювати на рівні Web Application Firewall (WAF) і захищати веб-сайт від XSS/SQL-ін’єкцій, Directory Traversal, LFI/RFI та інших атак. Користувачу також доступні до встановлення готові правила реагування на кіберінциденти від OWASP:

👉 Детальніше про ModSecurity на сторінці OWASP>>

Налаштування безпеки SSH

Перейдемо до такого важливого пункту як безпека SSH-з’єднання. Розробники CyberPanel чудово подбали про це.

По замовчуванню на сервері використовується порт 22, який часто стає жертвою flood-атак і bruteforce-переборів. Однак його з легкістю можна змінити. Для цього необхідно перейти у розділ Security -> Secure SSH та змінити номер порта на будь-який, наприклад, п’ятизначний номер, який складно підібрати.

Цю дію можна також зробити через командний рядок відредагувавши рядок ‘Port 22’ у файлі конфігурації SSH: nano /etc/ssh/sshd_config і перезапустити службу SSH: sudo systemctl restart sshd.service

Увага: Ваш новий порт має бути вже попередньо доданий у список відкритих вхідних і вихідних TCP-портів в налаштуванні CSF Firewall (Security -> CSF). Інакше ви просто втратите доступ до сервера по SSH. Не забудьте також змінити порт у менеджері SSH-з’єднань.

Опцію «Permit Root login» (дозволити входити в систему під root) задля підвищеної безпеки рекомендується перемикнути у положення «Off». Але в такому випадку у вас має бути додатковий обліковий запис з правами адміністратора, у який ви зможете зайти. По замовчуванню можна залишити без змін.

Рекомендується також відключити можливість авторизуватися на сервері без SSH-ключа доступу. Для цього треба перейти в редагування файлу конфігурації sudo nano /etc/ssh/sshd_config і додати такі директиви:

PubkeyAuthentication yes
PasswordAuthentication no

Також можете вимкнути UseDNS, що дозволить уникнути зайвих перевірок IP-адрес в DNS при підключенні по SSH: UseDNS no

Після того, як ви виконали усі необхідні зміни, можете перейти в CSF-фаєрвол і протестувати свою конфігурацію:

Налаштування PHP

Ще один важливий етап. Вдало налаштований PHP забезпечує справну та стабільну роботу веб-долдатків. Для того, щоб провести базовий тюнинг PHP.INI необхідно перейти у розділ PHP -> Edit PHP Configs:

Для ефективної роботи веб-сайтів я рекомендую наступні налаштування PHP.INI (/usr/local/lsws/lsphpXX/etc/php.ini):

  • max_execution_time = 300 — максимальний час виконання скриптів. Низьке значення викликатиме обрив з’єднання;
  • max_input_time = 120 — час за який PHP має обробити запит. При великих навантаженнях можна збільшити;
  • max_input_vars = 3000 — кількість вхідних змінних, які сервер може обробити. Занадто велике значення може викликати вичерпання ресурсів. По замовчуванню це значення 1000, однак може бути для деяких сайтів недостатнім;
  • memory_limit = 256M — якщо у вас важкі плагіни або вимоглива CMS, можна збільшити до 512М;
  • post_max_size = 80M — максимальний розмір даних, відправлених методом POST. Значення повинно бути більшим за upload_max_filesize;
  • upload_max_filesize = 60M — максимальний розмір завантажуваних файлів;
  • allow_url_fopen = Off — по даним Acunetix ця опція може створити вразливості (LFI/RFI), тому її краще відключити;
  • allow_url_include = Off — аналогічно попередньому пункту, див опис тут;
  • session.cookie_httponly = 1 — дуже важлива опція, захищає веб-сайт від XSS-атак через куки;
  • session.cookie_samesite = Lax— захищає від атак типу Cross-Site Request Forgery (CSRF/XSRF);
  • session.cookie_secure = 1— захищає від різних маніпуляцій з куками;
  • expose_php = Off — прибирає HTTP-заголовок X-Powered-By та захищає сайт від розкриття версії PHP;
  • date.timezone = "Europe/Kyiv" — встановлює правильний час для обробки даних і ведення журналів PHP. Це дуже важливо в плані точності отримуваної інформації.

Примітка: значення деяких параметрів варто розраховувати відштовхуючись від конкретних вимог тих чи інших веб-додатків.

Після внесених змін, рекомендується перезавантажити сервер. Це можна зробити у панелі або в терміналі командою: systemctl restart lsws.

Для коректної роботи сайту необхідно також встановити додаткові PHP-розширення, такі як: imagick, zip, curl та інші. Ось повний список модулів потрібних для WordPress. Для їх встановлення необхідно перейти в меню PHP -> Install extensions, обрати потрібну версію PHP і СyberPanel покаже доступний список розширень:

Для того щоб встановити певний модуль необхідно просто натиснути Install. Щоправда, деякі модулі на деяких операційних системах і версіях PHP встановлюються лише вручну.

Нижче приклад як встановити розширення ImageMagick для PHP 8.3 на ОС CentOS/AlmaLinux 8/9:

sudo dnf install ImageMagick #AlmaLinux
sudo dnf install ImageMagick-devel #AlmaLinux
sudo yum install ImageMagick #CentOS
sudo yum install ImageMagick-devel #CentOS

#Завантажуємо і встановлюємо вручну пакет imagick
wget https://pecl.php.net/get/imagick-3.7.0.tgz
tar -zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
sudo /usr/local/lsws/lsphp83/bin/phpize
./configure --with-imagick=/usr/local/lsws/lsphp83 --with-php-config=/usr/local/lsws/lsphp83/bin/php-config
make
sudo make install

#У відповідь отримуємо директорії
Installing shared extensions: /usr/local/lsws/lsphp83/lib64/php/modules/
Installing header files: /usr/local/lsws/lsphp83/include/php/

#Додаємо imagick до php.ini
sudo echo "extension=imagick.so" >> /usr/local/lsws/lsphp83/etc/php.d/40-imagick.ini
cat /usr/local/lsws/lsphp83/etc/php.d/40-imagick.ini

#Перезапускаємо php і веб-сервер
sudo touch /usr/local/lsws/admin/tmp/.lsphp_restart.txt
sudo systemctl restart lsws

#Перевіряємо чи imagick встановлений і присутній
/usr/local/lsws/lsphp83/bin/php -m | grep imagick
/usr/local/lsws/lsphp83/bin/php --ini

Перевірити внесені зміни, можна створивши файл phpinfo.php в кореневій директорії сайту. Відкриваємо його і перевіряємо чи бажаний модуль присутній у чинній конфігурації PHP:

👉 Дивіться також вимоги й сумісність WordPress з різними версіями PHP>>

Додавання нового веб-сайту в CyberPanel

Щоб додати новий веб-сайт на хостинг в Cyberpanel, необхідно перейти в розділ Websites -> Create Website й заповнити усі необхідні поля:

CyberPanel додасть новий домен в систему та встановить безкоштовний SSL-сертифікат від LetsEncrypt.

Після цього новий сайт з’явиться у списку доданих в розділі Websites -> List Websites:

З допомогою посилань Manage та File Manager можна перейти в “Панель керування сайтом” та “Файловий менеджер” відповідно.

Панель керування доменом є досить обширною й містить усі необхідні функції для налаштування та обслуговування сайту:

Файловий менеджер Cyberpanel вражає простотою і дозволяє користувачу здійснювати будь-які операції з файлами та папками сайту, включаючи: створення, завантаження, архівування, розпакування, перенесення, редагування, налаштування прав доступу і інші. Однак, варто пам’ятати, що максимальний об’єм завантажуваного файлу – 2Гб.

Як змінити стандартний порт CyberPanel і перевести на захищений домен?

Ось ми і прийшли до питання як перевести Кіберпанель на захищений HTTPS-протокол з використанням власного домену.

Будемо вважати, що у вас є домен, який ви хочете використовувати як основний для адмін-панелі. Ви перенесли його на обслуговування в Cloudflare, направили A записи (@ та www) на свій сервер і вже додали його в панелі.

Але, по замовчуванню, CyberPanel використовує порт 8090, який не підтримується проксі Cloudflare. Тому його потрібно змінити. Розробники подбали про це і додали в меню спеціальну функцію – Server Status -> Change port:

Необхідно ввести будь-який порт, який підтримується Cloudflare, наприклад 8443. Просто вводимо його в текстове поле і тиснемо “Change”.

Попередження: Введений вами порт повинен бути попередньо відкритим в CSF та інших фарєволах системи (якщо такі є, наприклад Hetzner Firewall). Інакше ви заблокуєте самому собі доступ.

Тепер необхідно під’єднати домен до панелі, щоб вона використовувала його як основний хост. Для цього переходимо в меню SSL -> Hostname SSL. Обираємо свій домен і тиснемо кнопочку для збереження змін. Виходимо з панелі і повторно авторизуємося, ввівши URL-адресу https://example.com:8443

Надалі безпеку входу в CyberPanel можна контролювати через Cloudflare, наприклад активувати захист від ботів і DDoS-атак, автоматичні блокування по геолокації, доступ тільки для обмеженого списку IP-адрес тощо.

Примітка: Для уникнення проблем з функціональністю панелі, рекомендується відключити в Cloudflare усе зайве, наприклад просунуте кешування та інші експериментальні або інтелектуальні функції. Якщо при вході в Кіберпанель з’являється помилка “Session reuse detected”, рекомендуємо оновитися або спробувати це рішення.

Вітаю, ваша Кіберпанель захищена!

Налаштування резервного копіювання

В Cyberpanel також присутній розділ – Backup, який підтримує чимало способів резервного копіювання. Доступне звичайне “Backup” та просунуте резервне копіювання “Incremental Backup”:

Різниця між звичайним та просунутим резервними копіюваннями полягає у тому, що просунуте фіксує будь-які дії та зміни користувача, зберігаючи їх відразу на вашому диску (public_html/backup/). Тобто, створюються резервні копії не всього підряд, а тільки файлів які зазнали змін — видалення чи редакція. Це дозволяє у будь-який момент повернутися до попередніх налаштувань або відновити видалений файл. Для цього перейти в Inrcremetial Backups -> Create/Restore Backup й обрати ресурси, які потрібно відновити. Як працювати з Incremential Backups розгорнуто пояснено у керівництві CyberPanel на їх офіційному сайті>>

Звичайне резервне копіювання можна налаштувати, наприклад, з допомогою інтеграції Backup -> Setup Google Drive. CyberPanel буде автоматично, у зазначений проміжок часу, створювати повноцінні копії сайту, бази даних та електронної пошти на вашому диску Google.

В CyberPanel існує ще такий метод резервного копіювання як Incremental Backup (Віддалене копіювання). Для цього треба перейти в Incremental Backup ->Create/Restore V2 Backup й заповнити усі необхідні поля.

Налаштування поштового сервера в Cyberpanel

CyberPanel дає користувачам повний функціонал, включаючи розгортання і налаштування приватного сервера електронної пошти з підтримкою SSL та DKIM.

MAIL-сервер повинен бути попередньо направлений на IP-адресу сервера:

  • запис з ім’ям mail направити його на IPv4 адресу поштового сервера (без proxy). Аналогічно зробити для IPv6.
  • MX запис з ім’ям @ та пріоритетом 20 направити на mail.example.com.

Тепер можна в Cyberpanel перейти у розділ Email -> Create email, обрати зі списку свій домен та створити першу корпоративну скриньку.

Щоб листи не потрапляли у спам, необхідно додати у DNS-зону свого домену відповідні підписи безпеки — SPF, DMARC і DKIM. Ось приклад як їх прописати в DNS:

  • TXT @ v=spf1 a mx ip4:XX.XX.XX.XX ~all
  • TXT _dmarc v=DMARC1; p=quarantine; rua=your@example.com; ruf=your@example.com; sp=none; adkim=r; aspf=r
  • TXT default._domainkey v=DKIM1;k=rsa;p=yourDKIM-key_from_CP

DKIM-підпис є найважливішим з усіх і його можна згенерувати прямо у панелі Cyberpanel в розділі Email -> DKIM Manager.

Також потрібно обов’язково додати rDNS запис (Reverse DNS), який має відповідати домену поштового сервера (mail.yoursite.com) й направлений на IP-адресу вашого сервера. В HETZNER це можна зробити самотужки перейшовши в керування сервером, в розділ Networking:

Як додати rDNS в HETZNER

Для того, щоб поштовий сервер використовував захищені протоколи по TLS/SSL необхідно у розділі SSL -> MailServer SSL встановити сертифікат LetsEncrypt домену поштового сервера.

Перевірити справність усієї конфігурації поштового сервера та налаштувати мережеві порти можна через адмін-панель клієнта Rainloop: xttps://IP_адреса_сервера:8090/rainloop/?admin.

Логін по замовчуванню admin. Пароль знаходиться у файлі на сервері: /usr/local/CyberCP/public/rainloop.php або /usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/admin_password.txt.

В деяких версіях Cyberpanel замість Rainloop, застосовується інший поштовий клієнт – Snappymail. Дані авторизації можна знайти в файлі конфігурації: /usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/configs/application.ini. Як змінити пароль описано тут.

В панелі керування Rainloop перейти в меню “Domains”, обрати свій домен і просто натиснути “Test” – налаштування IMAP та SMTP мають підсвітитися зеленим кольором:

Увага: якщо виникає помилка, необхідно перевірити чи відкриті поштові порти на сервері – 25, 143, 113, 465, 587, 993, 995 (якщо використовується фаєрвол CSF, їх необхідно внести у список дозволених у файлі /etc/csf/csf.conf) і чи валідний SSL-сертифікат безпеки. На серверах HETZNER аби мати можливість використовувати поштові порти, необхідно попередньо відправити зі свого акаунту запит в технічну підтримку з вказаною причиною “Unblock mail ports”.  У випадку будь-яких інших несправностей, рекомендую дивитися конфігурацію Postfix і Dovecot (вихідний SMTP та вхідний IMAP сервери), а також конфігурацію поштового клієнта: /usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/configs/application.ini.

Підказка: Швидко знайти усі шляхи розташування Rainloop допоможе команда sudo find / -name "rainloop"

Хто буде користуватися поштою у клієнті Rainloop/Snappymail, раджу додатково включити:

  • двофакторну авторизацію;
  • PGP-шифрування;
  • обов’язкову перевірку SSL/TLS.

Для зручності, можна встановити Desktop-клієнт Mozilla Thunderbird та використовувати його як штатний інструмент для прийому/відправки електронної пошти.

Перевірити успішність доставки email-листів можна через онлайн-сервіс mail-tester.com. Треба скопіювати адресу їх сервісної електронної пошти, надіслати на неї від себе email-листа з будь-яким змістом і перевірити приймання. В ідеалі маєте набрати 10 балів з 10:

Тестування відправки електронних листів

Для захисту від email-спаму та фішингу можна встановити модуль SpamAssassin — один з найефективніших та найвживаніших компонентів перевірки вхідної електронної пошти, знаходиться у розділі Settings -> Spam Assassin.

Оновлення CyberPanel

Розробники регулярно випускають нові релізи контроль-панелі. Дізнатись про їх наявність можна через веб-інтерфейс, в розділі Overview -> Version Management

В полі Current Version та Build вказані поточна версія та ядро панелі. А в полі Latest Version і Latest Build відповідно останні актуальні релізи.

Для того, щоб оновити CyberPanel необхідно перейти в командний рядок на сервері й виконати команду з облікового запису root:

sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)

Якщо натомість використовуєте обліковий запис звичайного користувача з приставкою sudo, то необхідно виконати дещо іншу команду:

sudo su - -c "sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)"

Надалі запуститься процес оновлення панелі, який відбувається в автоматичному режимі.

Детальніше про оновлення читайте в офіційній документації CyberPanel>>

Налагодження  проблем

Як вирішити проблеми з SSL-сертифікатами для різних поштових доменів на одному сервері?

1. Найперше, необхідно запевнитися, що використовується валідний SSL-сертифікат від LetsEncrypt для кожного поштового домену. Сертифікати Cloudflare SSL не підтримують MAIL-сервери. Необхідно перевірити шляхи до fullchain.pem (файл сертифікати) та privkey.pem (приватний ключ) для кожного з доменів, наприклад:

/etc/letsencrypt/live/mail.example.com/privkey.pem
/etc/letsencrypt/live/mail.example.com/fullchain.pem

Ці шляхи мають належати групі lsadm:nobody з відповідними правами та коректно вказані на рівні віртуального хоста (наприклад, mail.example.com) в OpenLiteSpeed.

В Listener SSL (серверний рівень SSL) також має бути валідний SSL-сертифікат. Він діє глобально для усього сервера виступаючи в ролі основного. Не хвилюйтеся, якщо побачите, що в Listener він автоматично перезаписався для кожного домена. Річ в тому, що рівень конфігурації Virtual Host має вищі привілеї, а тому буде застосований до домена у першу чергу.

2. Перевірте доступ до директорії /home/mail.example.com/public_html/.well-known/acme-challenge для кожного з ваших поштових доменів. З нею працює LetsEncrypt при генерації або оновленні сертифікату.  Створіть для /.well-known окрему http-конфігурацію типу Static з дозволом на публічний доступ. Після цього протестуйте – спробуйте додати в неї файл, наприклад text.txt і відкрити його в браузері або командою: curl http://mail.example.com/.well-known/acme-challenge/test.txt – він повинен бути доступним, тоді з генерацією SSL все гаразд.

Якщо сертифікат пошкоджений, перегенеруйте його, скориставшись службовою утилітою Certbot:

sudo certbot certonly --webroot -w /home/mail.example.com/public_html -d mail.example.com --rsa-key-size 4096 -n --agree-tos -m info@example.com

3. Необхідно також обов’язково перевірити чи відкриті мережеві порти (TCP/UDP in/out) на рівні сервера, необхідні для функціонування пошти: IMAPs (993), POP3s (995), SMTP (25, 465, 587).

4. Перевірити конфігурацію програмного забезпечення, яке обслуговує прийом і відправку електронних листів на сервері – це Dovecot та Postfix відповідно. Дуже часто проблема криється саме в їх неправильному налаштуванні.

Зокрема, якщо ви використовуєте декілька поштових доменів з активним SSL LE, тоді необхідно налаштувати в файлі конфігурації Postfix так-звану SNI-карту та вказати в ній розташування сертифікатів для кожного домену окрема. Детально це описано тут.

5. Якщо проблему не вирішено, скористайтеся командами Linux для діагностики та тестування з’єднання з поштовим доменом/сервером:

  • openssl x509 -in /etc/letsencrypt/live/mail.example.com/fullchain.pem -noout -dates
  • cat /var/log/letsencrypt/letsencrypt.log
  • sudo certbot certificates
  • openssl s_client -connect mail.example.com:465
  • openssl s_client -connect mail.example.com:995 -showcerts
  • openssl s_client -connect mail.example.com:443 -showcerts
  • tail -n 100 /var/log/maillog
  • cat /home/vmail/dovecot-deliver.log
  • sudo ss -tuln | grep 995
  • sudo netstat -tuln | grep 995
  • telnet mail.example.com 25
  • nc -vv mail.example.com 25
  • curl -4 -v https://mail.example.com

Як прибрати помилку pkttyagent на CentOS/AlmaLinux?

У деяких користувачів після оновлення CyberPanel на сервері щоразу після перезапуску сервера в консолі може з’являтися помилка наступного змісту:

* (pkttyagent:1950): WARNING **: 12:25:12.566: Unable to register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Cannot determine user of subject
Error registering authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Cannot determine user of subject (polkit-error-quark, 0)

Виправити її дуже легко, достатньо виконати кілька команд:

mount proc -o remount,hidepid=0
systemctl restart polkit.service

Додаткові джерела і посилання

  1. LiteSpeed Documentation
  2. Порівняльне тестування LiteSpeed
  3. LiteSpeed Documentanion: WordPress
  4. LiteSpeed Forum
  5. CyberPanel Knowledge Base
  6. Документація по Rainloop
  7. WebAdmin Console Documentation
  8. CSF Free Scripts
  9. OpenLiteSpeed Knowledge Base
  10. OLS Confuguration examples
  11. Офіційний блог CyberPanel
  12. Офіційний форум CyberPanel
  13. Facebook Page CyberPanel

👉 Читайте також інші матеріали за темою:

ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:

5 1 голос
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Старіші
Новіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Поставте запитання й отримайте відповідь!x
Отримати комерційну пропозицію
Оформити заявку
Замовити консультацію
Замовити дзвінок

Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!