الوصول إلى بيئة تطوير ServBay المحلية عبر الشبكة المحلية (LAN)
بالنسبة لفرق التطوير الصغيرة أو المطورين الأفراد الذين يحتاجون إلى اختبار عبر عدة أجهزة، فإن القدرة على الوصول إلى بيئة تطوير ServBay المحلية لدى أعضاء آخرين أو أجهزة أخرى ضمن الشبكة المحلية (LAN) تعتبر حاجة شائعة ومهمة. تم تصميم ServBay ليدعم الوصول إلى معظم الخدمات الأساسية عبر الشبكة المحلية، ولكن تستلزم بعض الخدمات إعدادات إضافية لضمان الأمان وإمكانية الاستخدام.
ستشرح هذه المقالة بالتفصيل كيفية إعداد والوصول إلى مواقع الإنترنت وخدمات قواعد البيانات في ServBay عبر الشبكة المحلية.
المتطلبات الأساسية
قبل محاولة الوصول إلى خدمات ServBay عبر الشبكة المحلية، يرجى التأكد من توافر الشروط التالية:
- الاتصال بالشبكة: يجب أن يتواجد الحاسوب الذي يوفر خدمة ServBay (سنسميه لاحقًا "الجهاز المستضيف") وجهاز المستخدم الذي يريد الوصول ("جهاز العميل") ضمن نفس شبكة LAN.
- عنوان IP للجهاز المستضيف: يجب معرفة عنوان IP الداخلي للجهاز المستضيف داخل الشبكة المحلية. يمكن العثور عليه من إعدادات شبكة الجهاز المستضيف.
- ضبط جدار الحماية: إذا كان نظام تشغيل الجهاز المستضيف قد فعّل جدار الحماية، يلزم السماح بالاتصالات الخارجية على المنافذ الحيوية المستخدمة من قبل ServBay (مثلاً HTTP عادة على 80، وHTTPS على 443، وMySQL على 3306، وPostgreSQL على 5432، وRedis على 6379، إلخ). افتح المنافذ المطلوبة حسب الخدمات التي ترغب في مشاركتها، واضبط قائمة التحكم بالوصول (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:
- افتح ملف Hosts بصلاحية المدير وأضف السطر التالي في نهايته:
10.0.0.3 servbay.demo
1 - احفظ الملف. سيؤدي ذلك لتوجيه أي محاولة للوصول إلى
servbay.demo
لهذا العنوان.
- ابحث عن ملف Hosts في الجهاز العميل:
ضبط ذلك على خادم DNS بالشبكة المحلية: إذا كانت لديك خدمة DNS بالراوتر أو خادم DNS خاص، يمكنك إضافة سجل A للنطاق
servbay.demo
يشير إلى عنوان IP للمضيف10.0.0.3
. بذلك، ستستطيع كافة الأجهزة المتصلة بذلك الـ DNS تحليل النطاق بشكل صحيح.
توزيع وتثبيت شهادة جذر مستخدم ServBay (SSL)
يوفر ServBay إمكانية إنشاء شهادات SSL للمواقع المحلية باستخدام بنية مفاتيح عمومية (PKI)، حيث يولّد شهادة جذر خاصة (ServBay User CA) تستخدم لتوقيع شهادات المواقع المحلية. لذلك، يحتاج جهاز المستخدم إلى الوثوق بهذه الشهادة الجذرية لكي يتجنب تحذيرات الأمان عند زيارة المواقع عبر HTTPS.
ينبغي عليك تصدير شهادة ServBay User CA وتوزيعها على المستخدمين بالشبكة المحلية، مع توجيههم لطريقة تثبيتها حسب أنظمة التشغيل أو المتصفحات المستخدمة.
للاطلاع على خطوات التصدير والتثبيت بالتفصيل، يرجى مراجعة قسم إدارة الشهادات في وثائق ServBay، مع التركيز على شرح تصدير الشهادة و التثبيت على النظام أو المتصفح.
قواعد البيانات
يدعم 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
فقط. للسماح بالاتصال عبر الشبكة المحلية، ينبغي إنشاء مستخدم جديد أو تعديل صلاحيات المستخدم الحالي ليسمح بالاتصال من عنوان محدد أو من أي عنوان (باستخدام الرمز %
).
مثال توضيحي لإنشاء مستخدم باسم servbay-demo
ومنحه الإذن للاتصال من أي عنوان بالشبكة المحلية:
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 (%
) مع صلاحيات واسعة ينطوي على مخاطرة أمنية. في بيئة الإنتاج أو في شبكة غير موثوقة بالكامل، ينصح بشدة بتقييد الاتصال بعناوين معروفة ومحددة فقط (مثال: 'servbay-demo'@'10.0.0.5'
)، أو استخدام حلول أكثر أماناً كـ VPN.
يدعم ServBay إعادة ضبط كلمة مرور المستخدم root
في MySQL وMariaDB، ويمكنك استخدام هذه الخاصية أو أدوات أخرى لإدارة الصلاحيات حسب الحاجة.
Redis
تعتمد Redis في ServBay افتراضياً على الاستماع للعنوان المحلي فقط (127.0.0.1
)، ما يمنع الاتصالات القادمة من الشبكة المحلية تلقائياً. جاء هذا للحفاظ على الأمان، خاصة أن Redis لا يستخدم كلمة مرور بشكل افتراضي.
للسماح بالوصول عبر الشبكة المحلية، يجب عليك تعديل ملف التهيئة redis.conf
.
هناك طريقتان رئيسيتان للقيام بذلك:
1. عبر واجهة ServBay الرسومية
- افتح برنامج ServBay، ثم من القائمة الجانبية اختر
قاعدة البيانات
ثمRedis
- في واجهة الإعدادات على اليمين، فعِّل خيار
Require Password
وأدخل كلمة المرور القوية المطلوبة. - اضغط على
حفظ
.
2. يدوياً عبر تحرير ملف redis.conf
(غير مفضل)
- حدد مسار ملف إعداد Redis عبر تطبيق ServBay (عادة في مجلد التثبيت كـ
/Applications/ServBay/etc/redis/redis.conf
). - افتح الملف بمحرر نصوص.
- ابحث عن السطر
bind 127.0.0.1
. - عدّل هذا السطر إلى
bind 0.0.0.0
أو أضف علامة التعليق (# bind 127.0.0.1
). بذلك ستستمع الخدمة على جميع واجهات الشبكة. - [مهم جداً] ابحث عن السطر الذي يحتوي على
requirepass
(قد يكون معلقاً بتعليق). قم بإلغاء التعليق وضع كلمة مرور قوية:لا تعرض Redis أبداً للشبكة دون ضبط كلمة مرور قوية لتجنب مخاطر أمنية جسيمة!requirepass your_very_strong_redis_password
1 - احفظ الملف.
- أعد تشغيل خدمة Redis ضمن تطبيق ServBay ليتم تفعيل الإعدادات.
الآن بإمكان الأجهزة الأخرى في الشبكة الوصول إلى Redis عبر عنوان IP للجهاز المستضيف وكلمة المرور التي وضعتها.
PostgreSQL
تستمع PostgreSQL افتراضياً في ServBay فقط للعنوان المحلي (127.0.0.1
) ولا تسمح باتصالات الشبكة تلقائياً.
للسماح بذلك، يجب عليك تعديل ملفي إعداد رئيسيين: postgresql.conf
و pg_hba.conf
.
ابحث عن مسار ملفات الإعداد في مجلد التثبيت كـ
/Applications/ServBay/etc/postgresql/postgresql.conf
و/Applications/ServBay/etc/postgresql/pg_hba.conf
.تعديل
postgresql.conf
:- افتح الملف بمحرر نصوص.
- ابحث عن السطر
listen_addresses
(قد يكون معلقاً بتعليق). - أزل التعليق وعدّل قيمة السطر إلى
'*'
ليستمع لجميع واجهات الشبكة:listen_addresses = '*'
1 - احفظ الملف.
تعديل
pg_hba.conf
:- افتح الملف بمحرر نصوص.
- أضف السطر التالي للسماح بالاتصال من أجهزة الشبكة المحلية باستخدام التحقق بكلمة مرور:
# 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
للسماح بنطاق معين، ويمكنك تخصيصه أو حتى استخدام0.0.0.0/0
(غير منصوح به إلا في حال وجود حماية أخرى).METHOD
:md5
لإلزام المستخدم بكلمة مرور مشفرة. تجنب استخدامtrust
أوpassword
العاديين.
- احفظ الملف.
أعد تشغيل خدمة PostgreSQL من خلال تطبيق ServBay لتفعيل التغييرات.
الآن يمكن للأجهزة الأخرى في الشبكة الاتصال بـ PostgreSQL باستخدام اسم مستخدم وكلمة مرور صالحين وعنوان IP للجهاز المستضيف.
يوفر ServBay إمكانية إعادة ضبط كلمة مرور مستخدم postgres
الرئيسي أيضاً، ويمكنك استخدام الأدوات الرسومية أو النصية لإدارة الصلاحيات حسب الحاجة.
Memcached
Memcached هو نظام لتخزين الذاكرة المؤقتة الكائنات عالية الأداء موزعة. وبنيته التصميمية بسيطة جداً حيث لا يوفر آلية مصادقة أو تصاريح داخلية.
لذا، لا ينصح أبداً بتعريض Memcached مباشرة للشبكة المحلية أو للإتصال عبر الإنترنت إلا مع وجود حماية إضافية (حصره بشبكة داخلية موثوقة واستخدام جدار حماية صارم).
في ServBay، يمكنك إعداد Memcached ليستمع لعناوين الشبكة المحلية - لكن هناك خطورة أمنية واضحة. الوضع الافتراضي أن يستمع فقط للعنوان المحلي. طريقة تعديل الاستماع مشابهة لـ Redis (تعديل الملف الإعدادي)، وتذكر أنه لا توجد حماية بكلمة مرور لهذا النظام.
ملاحظات أمان هامة
فتح خدمات بيئة التطوير المحلية على الشبكة المحلية يسهم في التعاون واختبار الأنظمة بين الأجهزة، لكنه يحمل مخاطر أمنية. يرجى اتباع التالي:
- جدار الحماية: استعمل جدار حماية دائماً لتقييد الوصول للمنافذ المفتوحة على جهاز ServBay. اسمح فقط بنطاقات الـ IP الموثوقة.
- كلمات مرور قوية: استخدم كلمات مرور قوية لقواعد البيانات (MySQL/MariaDB/PostgreSQL) وRedis، وقم بالتغيير بانتظام.
- مبدأ أقل صلاحيات: امنح أقل صلاحيات ممكنة لمستخدمي قواعد البيانات ولا تستعمل مستخدم
root
أوpostgres
للاتصال الخارجي اليومي. - أمان Memcached: تذكر مجدداً خطورة كشف Memcached للشبكة، واستعمل نفق SSH أو وسائل حماية عند الحاجة.
- تحديث نظام التشغيل: حافظ على آخر التحديثات لجهاز ServBay ولنظام ServBay نفسه وتوابعه البرمجية للحصول على تصحيحات الأمان.
باتباع هذه الخطوات والإرشادات الأمنية يمكنك مشاركة والوصول إلى بيئة تطوير ServBay الخاصة بك ضمن الشبكة المحلية بأمان وكفاءة.