Доступ до локального середовища розробки ServBay у локальній мережі
Для невеликих команд розробників або індивідуальних розробників, які потребують тестування на різних пристроях, можливість отримати доступ до локального середовища розробки ServBay на інших пристроях у локальній мережі (LAN) є поширеною та важливою задачею. ServBay спочатку підтримує доступ до більшості основних сервісів у локальній мережі, однак деякі служби потребують додаткової конфігурації для забезпечення безпеки та працездатності.
У цій статті детально описано, як налаштувати та отримати доступ до веб-сайтів і баз даних ServBay у межах локальної мережі.
Попередні умови
Перш ніж пробувати отримати доступ до ServBay через локальну мережу, переконайтеся у виконанні наступних вимог:
- Мережеве з'єднання: Комп'ютер, на якому працює ServBay (далі "хост"), і пристрій, що під’єднується (далі "клієнт"), мають бути у тій же локальній мережі.
- IP-адреса хоста: Ви повинні знати внутрішню IP-адресу хоста у локальній мережі. Її можна знайти в налаштуваннях мережі хоста.
- Налаштування файрвола: Якщо на хості увімкнено файрвол, необхідно дозволити зовнішні підключення до основних портів, які використовує ServBay (наприклад, HTTP — зазвичай 80, HTTPS — 443, MySQL — 3306, PostgreSQL — 5432, Redis — 6379 тощо). Відкрийте відповідні порти у файрволі згідно з потрібними сервісами та, за потреби, обмежте список дозволених IP-адрес через ACL.
Веб-сайт (Website)
Локальні веб-сайти, налаштовані через ServBay, за замовчуванням зазвичай слухають всі мережеві інтерфейси хоста (тобто 0.0.0.0
або *
), що дозволяє автоматично отримувати до них доступ із інших пристроїв локальної мережі. ServBay використовує Caddy або Nginx як веб-сервери, і такі налаштування є типовими для обох.
Проте, щоб отримати доступ до таких сайтів з браузера клієнта за допомогою домену, необхідно правильно налаштувати DNS-резолвінг на цьому пристрої. А також, якщо ваш локальний сайт використовує SSL-сертифікати, згенеровані ServBay (що настійливо рекомендується), відвідувачам слід встановити кореневий сертифікат ServBay, щоб уникнути попереджень у браузері.
Розглянемо приклад налаштування:
- IP-адреса хоста у локальній мережі:
10.0.0.3
- Домен сайту ServBay:
servbay.demo
- Коренева директорія сайту:
/Applications/ServBay/www/servbay.demo
Налаштування доменного імені (DNS)
Клієнтський комп'ютер має знати, що домен servbay.demo
співвідноситься з IP 10.0.0.3
. Для цього існує два основних способи:
Зміна файлу Hosts на клієнтському комп’ютері: Це найпростіший та найшвидший варіант для кількох комп’ютерів.
- Знайдіть файл hosts на клієнті:
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- Відкрийте файл від імені адміністратора та додайте наприкінці рядок:
10.0.0.3 servbay.demo
1 - Збережіть файл. Тепер, звертаючись до
servbay.demo
, клієнт буде переходити на IP10.0.0.3
.
- Знайдіть файл hosts на клієнті:
Додавання A-запису на локальному DNS-сервері: Якщо у вашій мережі є власний DNS (наприклад, у роутерах або спеціалізованих службах DNS), ви можете додати запис для
servbay.demo
, що вказуватиме на IP хоста10.0.0.3
. Таким чином усі пристрої, що користуються цим DNS, зможуть знаходити ваш сайт.
Поширення та встановлення кореневого сертифіката ServBay (SSL)
Оскільки ServBay підтримує PKI та генерує власний кореневий сертифікат (ServBay User CA) для підпису локальних сайтів SSL-сертифікатами, клієнти мають довіряти цьому сертифікату, щоб уникнути помилок безпеки при відвідуванні HTTPS-сайтів.
Необхідно експортувати ServBay User CA, поширити його всім користувачам у локальній мережі й надати інструкції щодо встановлення та довіри до цього сертифіката в їхній операційній системі чи браузері.
Детальні кроки експорту і встановлення сертифікату дивіться у документації ServBay про керування SSL-сертифікатами, особливо розділи про експорт сертифікатів і установку в ОС/браузері.
Бази даних
ServBay підтримує різноманітні бази даних — MySQL, MariaDB, PostgreSQL, MongoDB, а також у памʼяті: Redis і Memcached. Налаштування мережевого доступу та керування правами відрізняється для кожної з них.
MySQL / MariaDB
MySQL і MariaDB у ServBay за замовчуванням налаштовані на прослуховування всіх мережевих інтерфейсів (0.0.0.0
), тому вони відкриті для підключень із локальної мережі.
Водночас MySQL/MariaDB використовують сувору перевірку прав користувачів: навіть якщо мережевий доступ дозволений, користувач має бути явно авторизований на підключення із відповідної IP-адреси з вірними логіном і паролем.
За замовчуванням користувач root
може підключатися лише з 127.0.0.1
або localhost
. Щоб дозволити підключення з локальної мережі, потрібно створити нового користувача або змінити права існуючого, дозволивши підключення з потрібної IP-адреси або з будь-якої IP (%
).
Наприклад, створити користувача servbay-demo
, дозволити підключення з будь-якої IP і надати всі права до певної БД:
sql
-- Припускаємо, що ви вже увійшли як root або інший користувач із потрібними правами
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
1
2
3
4
2
3
4
Замініть 'your_strong_password'
і your_database_name
на ваші реальні значення.
Важливо: Надання користувачу можливості підключатись з будь-якої IP (%
) і великих прав несе ризики для безпеки. У продакшн-мережі чи недовірених локальних мережах настійно рекомендується обмежити IP, з якої дозволено підключення (наприклад, 'servbay-demo'@'10.0.0.5'
), або використовувати більш захищені канали, такі як VPN.
ServBay підтримує скидання пароля root для MySQL і MariaDB — це зручно для управління доступом, і ви також можете керувати користувачами через клієнтські інтерфейси.
Redis
За замовчуванням Redis у ServBay слухає лише локальний інтерфейс (127.0.0.1
), тобто з локальної мережі підключення не дозволені. Це зроблено задля безпеки, оскільки в Redis за замовчуванням не увімкнена аутентифікація за паролем.
Щоб відкрити доступ до Redis із локальної мережі, потрібно змінити конфігураційний файл redis.conf
.
Є два способи зробити це:
1. Через UI ServBay
- Відкрийте ServBay, у лівому меню знайдіть розділ
База даних
-Redis
- У вікні конфігурації встановіть позначку на
Require Password
, і у праве поле введіть надійний пароль - Натисніть
Зберегти
2. Ручне редагування файлу redis.conf
(не рекомендується)
- Знайдіть шлях до конфігураційного файлу Redis у застосунку ServBay (зазвичай у теці встановлення, наприклад
/Applications/ServBay/etc/redis/redis.conf
). - Відкрийте
redis.conf
у текстовому редакторі. - Знайдіть рядок
bind 127.0.0.1
. - Замініть його на
bind 0.0.0.0
або закоментуйте (# bind 127.0.0.1
), щоб Redis слухав усі мережеві інтерфейси. - [Вкрай важливо] Знайдіть рядок
requirepass
(можливо закоментований). Розкоментуйте його і задайте сильний пароль:Ніколи не виставляйте Redis у локальну мережу або публічний інтернет без встановленого паролю — це може призвести до серйозних ризиків безпеці!requirepass your_very_strong_redis_password
1 - Збережіть файл
redis.conf
. - Перезапустіть Redis через застосунок ServBay для застосування нових налаштувань.
Тепер клієнти можуть підключатися до Redis через IP хоста у локальній мережі, використовуючи заданий вами пароль.
PostgreSQL
За замовчуванням PostgreSQL у ServBay також слухає лише локальний інтерфейс (127.0.0.1
), тобто доступ з локальної мережі заборонений.
Для дозволу підключення необхідно змінити два конфігураційні файли: postgresql.conf
і pg_hba.conf
.
Знайдіть шлях до обох конфігураційних файлів у застосунку ServBay (наприклад,
/Applications/ServBay/etc/postgresql/postgresql.conf
і/Applications/ServBay/etc/postgresql/pg_hba.conf
).Редагування
postgresql.conf
:- Відкрийте файл у редакторі.
- Знайдіть рядок
listen_addresses
(може бути закоментований). - Розкоментуйте і встановіть значення як
'*'
, щоб слухати всі інтерфейси:listen_addresses = '*'
1 - Збережіть зміни.
Редагування
pg_hba.conf
:- Відкрийте файл у редакторі. Цей файл відповідає за контроль доступу до бази даних.
- Додайте рядок для дозволу підключень з локальної мережі. Наприклад, для підключень з мережі
10.0.0.0/24
з використанням пароля:# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
:host
означає TCP/IP-з'єднання.DATABASE
:all
— всі БД (за потреби вкажіть конкретну).USER
:all
— всі користувачі (або вкажіть конкретного).ADDRESS
:10.0.0.0/24
— усі IP в мережі з 10.0.0.1 до 10.0.0.254 (або конкретна IP, або0.0.0.0/0
— всі, не рекомендується).METHOD
:md5
— рекомендується для паролів; не використовуйтеtrust
чиpassword
(небезпечні).
- Збережіть файл.
Перезапустіть PostgreSQL через застосунок ServBay для застосування нових налаштувань.
Тепер клієнти можуть підключатися до PostgreSQL через IP хоста у локальній мережі з актуальним ім'ям користувача та паролем.
ServBay дає змогу скинути пароль root (postgres) для PostgreSQL — це зручно для управління доступом і користувачами.
Memcached
Memcached — це високопродуктивна розподілена система кешування в пам’яті, яка за задумом дуже проста і не має вбудованої аутентифікації.
Відтак, наполегливо не рекомендується виставляти Memcached напряму в локальну чи, тим паче, у відкриту мережу. Можливий виняток — мережа з суворим контролем доступу, ізолювана для довірених сервісів і з грамотно налаштованим файрволом.
У ServBay ви можете налаштувати Memcached так, щоб він слухав IP локальної мережі, але пам’ятайте про відсутність захисту паролем. За замовчуванням він відкритий лише на localhost. Щоб змінити цей параметр, відредагуйте конфігурацію аналогічно до Redis, але майте на увазі, що захисту паролем немає.
Зауваження щодо безпеки
Відкриття сервісів локального середовища розробки для LAN дійсно полегшує роботу команді чи тестування на різних пристроях, однак це підвищує ризики для безпеки. Дотримуйтесь простих, але важливих порад:
- Файрвол: Завжди захищайте порти, відкриті для капітанів сервісів ServBay, обмежуючи підключення лише з довірених IP у мережі.
- Сильні паролі: Завжди задавайте надійні паролі базам даних (MySQL/MariaDB/PostgreSQL) і Redis, періодично змінюйте їх.
- Мінімум прав: Призначайте користувачам мінімально необхідні права. Не підключайтеся до бази під root чи postgres для звичайних задач.
- Безпека Memcached: Нагадуємо вдруге: через відсутність захисту у Memcached відкривати його на локальну мережу варто лише тоді, коли ви впевнені у захисті сегменту (можна використовувати, наприклад, SSH-тунелі).
- Оновлення ОС: Підтримуйте ОС хоста та програмне забезпечення ServBay у сучасному стані, регулярно застосовуйте оновлення безпеки.
Дотримуючись цих кроків і порад, ви зможете більш захищено та ефективно відкривати і ділитися локальним середовищем розробки ServBay у своїй локальній мережі.