لقد قمت بتثبيت Home Assistant، وربطت المقابس الذكية، والترموستات، والكاميرات - وتريد التحكم في كل ذلك من هاتفك الذكي من أي مكان في العالم. ولكن الوصول المفتوح إلى الإنترنت بدون حماية يحول منزلك الذكي إلى هدف سهل للقراصنة. في هذه المقالة، سنناقش كيفية تنظيم الوصول عن بُعد إلى Home Assistant عبر بروكسي بشكل صحيح وتأمين شبكتك المنزلية.
لماذا الوصول المباشر إلى Home Assistant خطير
Home Assistant هي منصة قوية لأتمتة المنزل الذكي مفتوحة المصدر. يدير ملايين المستخدمين حول العالم من خلالها الإضاءة، والمناخ، والأقفال، والكاميرات، وعشرات الأجهزة الأخرى. لكن هذه الشعبية تجعل Home Assistant هدفًا جذابًا للمهاجمين.
عندما تقوم بفتح المنفذ 8123 (المنفذ القياسي لـ Home Assistant) مباشرة عبر الموجه إلى الإنترنت، فإنك حرفيًا تعلق لافتة "مرحبًا بك" للماسحات الآلية. هذه الماسحات تتجاوز نطاق عناوين IP بالكامل وتبحث عن المنافذ المفتوحة للخدمات المعروفة. وفقًا لبيانات Shodan (محرك البحث عن الأجهزة على الإنترنت)، هناك عشرات الآلاف من نسخ Home Assistant متاحة بشكل مفتوح.
ماذا يحدث بعد اكتشاف Home Assistant الخاص بك من قبل المهاجم:
- هجوم القوة الغاشمة على كلمة المرور - تقوم السكربتات الآلية بتجربة آلاف التركيبات من اسم المستخدم وكلمة المرور. إذا كانت لديك كلمة مرور ضعيفة، فإن الاختراق هو مسألة دقائق.
- استغلال الثغرات - يتم العثور على ثغرات حرجة في الإصدارات القديمة من Home Assistant من حين لآخر، مما يسمح بالوصول بدون كلمة مرور على الإطلاق.
- المراقبة عبر الكاميرات - بعد الحصول على الوصول إلى HA، يرى المهاجم بث جميع الكاميرات المتصلة في الوقت الحقيقي.
- التحكم في الأقفال وأنظمة الإنذار - إذا كنت قد قمت بتوصيل قفل ذكي، يمكن للقراصنة فتح باب منزلك عن بُعد.
- سرقة بيانات الأتمتة - يمكن من سجل HA معرفة متى تكون في المنزل، ومتى تغادر، ووضع النوم، وبيانات خاصة أخرى.
⚠️ حالة حقيقية
في عام 2023، اكتشف الباحثون في الأمن ثغرة CVE-2023-27482 في Home Assistant، مما سمح بتجاوز المصادقة بدون أي بيانات اعتماد. كانت جميع النسخ المتاحة على الإنترنت عرضة للخطر حتى صدور التصحيح. أولئك الذين استخدموا طبقة البروكسي أو VPN كانوا محميين تلقائيًا.
كيف يحمي البروكسي المنزل الذكي: مبدأ العمل
يعمل البروكسي في سياق Home Assistant كوسيط بين الإنترنت والخادم الخاص بك. بدلاً من أن يكون Home Assistant الخاص بك مرئيًا مباشرة من الشبكة، يكون البروكسي هو المرئي من الخارج - وهو يقوم بإعادة توجيه الطلبات إلى الداخل، مع تطبيق فحوصات إضافية.
يبدو مخطط العمل كالتالي:
هاتفك الذكي (الإنترنت)
↓
خادم البروكسي
(تصفية، تشفير، مصادقة)
↓
الشبكة المنزلية (مغلقة)
↓
Home Assistant (192.168.1.X:8123)
ماذا يوفر هذا الطبقة الإضافية:
- إخفاء IP الحقيقي - ترى الماسحات IP البروكسي، وليس عنوان منزلك. حتى إذا تم اختراق البروكسي، فلن يحصلوا على الوصول إلى الشبكة المنزلية مباشرة.
- تشفير SSL/TLS - يمكن للبروكسي إنهاء اتصال HTTPS وتقديم شهادة صحيحة، مما يحمي حركة المرور من الاعتراض.
- مصادقة إضافية - يمكن وضع مصادقة أساسية أو مصادقة ثنائية العوامل أمام Home Assistant مباشرة على مستوى البروكسي.
- تحديد معدل الطلبات - يحد من عدد الطلبات من IP واحد، مما يمنع هجمات القوة الغاشمة قبل أن تصل إلى Home Assistant.
- حظر جغرافي - يمكن السماح بالوصول فقط من دول أو نطاقات IP معينة.
- تسجيل الدخول - يتم تسجيل جميع محاولات الوصول، مما يساعد في الكشف عن النشاط المشبوه.
من المهم فهم الفرق بين نوعين من البروكسي المستخدمة في هذا السيناريو: البروكسي العكسي يتم تثبيته على الخادم أو الموجه الخاص بك ويقبل الاتصالات الواردة، بينما البروكسي الخارجي هو خادم وسيط في السحابة، يتم من خلاله نفق حركة المرور الخاصة بك. كل من النهجين لهما مزايا، وسنستعرض كل منهما.
ما هي أنواع البروكسي المناسبة لـ Home Assistant
قبل اختيار الحل، من المهم فهم أن المهام لـ Home Assistant و، على سبيل المثال، لمتخصص في التسويق أو SMM - مختلفة تمامًا. بالنسبة للمنزل الذكي، نحن بحاجة إلى نفق محمي للتحكم عن بُعد، وليس بروكسي مجهول لتجاوز الحظر. دعونا نستعرض الخيارات:
| نوع الحل | كيف يعمل | المزايا | العيوب | الصعوبة |
|---|---|---|---|---|
| البروكسي العكسي (Nginx/Caddy) | يستقبل طلبات HTTPS من الخارج ويعيد توجيهها إلى HA من الداخل | مجاني، تحكم كامل، SSL | يحتاج إلى IP ثابت أو DDNS، منفذ 443 مفتوح | متوسط |
| Cloudflare Tunnel | نفق من HA إلى خوادم Cloudflare، لا حاجة لمنافذ | مجاني، لا حاجة لـ IP ثابت، حماية من DDoS | تسير حركة المرور عبر Cloudflare، يحتاج إلى دومين | منخفضة |
| VPS + بروكسي | تستأجر VPS، وتقوم بنفق حركة المرور من خلاله | IP خاص، تحكم كامل | مدفوع، يتطلب إعداد | عالية |
| Nabu Casa (رسمي) | خدمة سحابية من مطوري HA | بسيط للغاية، يدعم Alexa/Google | اشتراك مدفوع ~$6.50/شهر | منخفضة جدًا |
| بروكسي سكني | توجيه حركة المرور الصادرة عبر IP منزلي حقيقي | IP حقيقي، لا يتم حظره من قبل الخدمات | مناسب لحركة المرور الصادرة، وليس الواردة | منخفضة |
بالنسبة لمعظم مستخدمي Home Assistant، سيكون الخيار الأمثل هو Cloudflare Tunnel (مجاني، لا حاجة لـ IP ثابت) أو البروكسي العكسي على Nginx/Caddy (إذا كان لديك IP ثابت أو DNS ديناميكي). يناسب Nabu Casa أولئك الذين لا يرغبون في التعامل مع الإعدادات على الإطلاق. دعونا نناقش كل خيار بالتفصيل.
البروكسي العكسي (Nginx، Caddy): الإعداد خطوة بخطوة
البروكسي العكسي هو الطريقة الكلاسيكية والأكثر مرونة لتنظيم الوصول الآمن إلى Home Assistant. يتم تثبيته على نفس الجهاز الذي يعمل عليه HA (مثل Raspberry Pi أو Home Assistant OS)، أو على خادم منفصل في الشبكة المنزلية.
الخيار 1: Caddy (موصى به للمبتدئين)
Caddy هو خادم ويب حديث يحصل تلقائيًا على شهادات SSL ويقوم بتحديثها عبر Let's Encrypt. لا حاجة لإعدادات يدويّة باستخدام certbot.
الخطوة 1: ماذا ستحتاج
- اسم نطاق (يمكن أن يكون مجانيًا على DuckDNS أو No-IP)
- فتح المنفذ 443 على الموجه إلى IP الخاص بـ Home Assistant
- Home Assistant مثبت (أي خيار)
الخطوة 2: تثبيت Caddy كإضافة في Home Assistant OS
إذا كنت تستخدم Home Assistant OS (HAOS)، افتح قسم الإعدادات → الإضافات → متجر الإضافات وابحث عن الإضافة Caddy 2. قم بتثبيتها وانتقل إلى الإعدادات.
الخطوة 3: الإعداد الأساسي لملف Caddyfile
your-domain.duckdns.org {
reverse_proxy localhost:8123
# حماية إضافية: مصادقة أساسية قبل HA
# basicauth {
# admin $2a$14$hash_password
# }
# تحديد معدل الطلبات: لا أكثر من 10 طلبات في الثانية
rate_limit {
zone static_zone {
key {remote_host}
events 10
window 1s
}
}
# رؤوس الأمان
header {
X-Frame-Options DENY
X-Content-Type-Options nosniff
Referrer-Policy no-referrer
}
}
الخطوة 4: إعداد Home Assistant للعمل خلف البروكسي
افتح ملف configuration.yaml وأضف الأسطر التالية. هذا ضروري - وإلا سيقوم HA برفض الطلبات من البروكسي:
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- ::1
بعد الحفظ، أعد تشغيل Home Assistant. الآن يمكنك الوصول إليه عبر العنوان https://your-domain.duckdns.org - سيتم تشفير الاتصال، وسيتم إخفاء IP الحقيقي لموجهك خلف النطاق.
الخيار 2: Cloudflare Tunnel (بدون IP ثابت)
إذا لم يكن لديك IP ثابت (معظم مزودي الخدمة المنزلية يمنحون IP رمادي عبر NAT)، فإن Cloudflare Tunnel هو الحل المثالي. تقوم بتثبيت عميل صغير cloudflared على الجهاز الذي يعمل عليه Home Assistant، وهو يقوم بإنشاء نفق مشفر إلى خوادم Cloudflare بنفسه. لا حاجة لفتح منافذ على الموجه!
إعداد خطوة بخطوة:
- سجل في cloudflare.com وأضف نطاقك (أو استخدم نطاق فرعي مجاني).
- في لوحة تحكم Cloudflare، انتقل إلى قسم Zero Trust → Networks → Tunnels.
- اضغط على Create a tunnel، وأعط النفق اسمًا (مثل home-assistant).
- انسخ أمر التثبيت ونفذه على الجهاز الذي يعمل عليه HA (أو قم بتثبيت الإضافة Cloudflared من متجر HAOS).
- في قسم Public Hostname، حدد:
— Subdomain:ha
— Domain: نطاقك
— Service:http://localhost:8123 - أضف في
configuration.yamlالبروكسي الموثوق من Cloudflare (يمكن العثور على نطاقات IP على cloudflare.com/ips). - اختياري: قم بتمكين Zero Trust Access - مستوى إضافي من المصادقة عبر البريد الإلكتروني أو حساب Google قبل الدخول إلى HA.
💡 نصيحة
Cloudflare Tunnel مجاني تمامًا للاستخدام الشخصي. القيد الوحيد هو أن حركة المرور تمر عبر خوادم Cloudflare. لإدارة المنزل الذكي، هذا مقبول تمامًا، وحماية من DDoS والبوتات تأتي مع الحزمة.
خادم البروكسي الخارجي: متى يكون مطلوبًا وكيفية الاتصال
خادم البروكسي الخارجي هو نقطة وسيطة في السحابة، يتم من خلالها توجيه حركة المرور الخاصة بك. في سياق Home Assistant، يتم استخدامه في عدة سيناريوهات محددة لا تغطيها البروكسي العكسي.
السيناريو 1: الوصول إلى Home Assistant من الشبكة المؤسسية
العديد من الشبكات المؤسسية تحظر المنافذ غير القياسية واتصالات VPN. إذا كنت ترغب في التحكم في المنزل الذكي من جهاز الكمبيوتر في العمل، حيث تم حظر معظم الاتصالات، فإن حركة المرور عبر بروكسي سكني تبدو كحركة HTTPS عادية لمستخدم منزلي ولا تثير الشكوك لدى جدار الحماية المؤسسي.
السيناريو 2: التكامل مع الخدمات المحدودة جغرافيًا
يمكن لـ Home Assistant التكامل مع الآلاف من الخدمات الخارجية: واجهات برمجة التطبيقات للطقس، مكبرات الصوت الذكية، منصات البث. بعض هذه الخدمات متاحة فقط في دول معينة. على سبيل المثال، يتطلب التكامل مع Amazon Alexa أو Google Assistant أن يكون الخادم متاحًا من الولايات المتحدة أو أوروبا. في هذه الحالة، يمكن توجيه حركة المرور الصادرة من HA عبر بروكسي مركز البيانات في المنطقة المطلوبة.
السيناريو 3: إخفاء الطلبات الصادرة من HA
يقوم Home Assistant بانتظام بالاتصال بواجهات برمجة التطبيقات الخارجية: يتحقق من الطقس، يحصل على بيانات المرور، يتزامن مع الخدمات السحابية. كل هذه الطلبات تخرج من IP المنزلي الخاص بك، مما يكشف موقعك للخدمات الخارجية. إعداد بروكسي الصادر في إعدادات HA يسمح بإخفاء IP الحقيقي.
كيفية إعداد بروكسي الصادر في Home Assistant:
في Home Assistant OS، انتقل إلى الإعدادات → النظام → الشبكة. هنا يمكنك تحديد بروكسي HTTP/HTTPS لجميع الاتصالات الصادرة. أدخل بيانات البروكسي بالتنسيق:
HTTP Proxy: http://username:password@proxy-server:port HTTPS Proxy: http://username:password@proxy-server:port
بدلاً من ذلك، إذا كنت تقوم بتشغيل HA في Docker، يمكنك تعيين متغيرات البيئة HTTP_PROXY و HTTPS_PROXY في ملف docker-compose.yml:
version: '3'
services:
homeassistant:
image: ghcr.io/home-assistant/home-assistant:stable
environment:
- HTTP_PROXY=http://user:pass@proxy-server:port
- HTTPS_PROXY=http://user:pass@proxy-server:port
- NO_PROXY=localhost,127.0.0.1,192.168.0.0/16
volumes:
- ./config:/config
network_mode: host
restart: unless-stopped
لاحظ المتغير NO_PROXY - فهو يستثني العناوين المحلية من البروكسي، مما يسمح لـ HA بالتواصل مع الأجهزة في شبكتك المنزلية مباشرة.
Nabu Casa مقابل البروكسي الذاتي: ماذا تختار
Nabu Casa هي خدمة سحابية رسمية من فريق Home Assistant. تحل مشكلة الوصول عن بُعد بنقرة واحدة: لا حاجة لإعدادات DNS، SSL، أو فتح المنافذ. فقط اشترك واحصل على عنوان URL جاهز على شكل https://your-id.ui.nabu.casa.
| المعيار | Nabu Casa | Cloudflare Tunnel | Nginx/Caddy |
|---|---|---|---|
| التكلفة | ~$6.50/شهر | مجاني | مجاني |
| صعوبة الإعداد | ⭐ بسيط جدًا | ⭐⭐ بسيط | ⭐⭐⭐ متوسط |
| هل تحتاج إلى IP ثابت | لا | لا | نعم (أو DDNS) |
| نطاق خاص | لا | نعم | نعم |
| Alexa / Google Home | ✅ مدمج | إعداد يدوي | إعداد يدوي |
| الخصوصية | حركة المرور تمر عبر خوادم Nabu Casa | حركة المرور تمر عبر Cloudflare | تحكم كامل |
| دعم مطوري HA | ✅ نعم | لا | لا |
الاستنتاج: إذا كنت مبتدئًا وتريد الحد الأدنى من المتاعب - اختر Nabu Casa. إذا كنت تريد حلاً مجانيًا بدون IP ثابت - اختر Cloudflare Tunnel. إذا كانت الخصوصية الكاملة مهمة بالنسبة لك - قم بإعداد Nginx أو Caddy.
قائمة التحقق الأمنية: 10 قواعد لحماية Home Assistant
البروكسي هو عنصر مهم، لكنه ليس العنصر الوحيد للحماية. إليك قائمة التحقق الكاملة التي ستغلق معظم مسارات الهجوم على منزلك الذكي:
✅ قائمة التحقق الأمنية لـ Home Assistant
- قم بتثبيت طبقة البروكسي (Caddy، Nginx أو Cloudflare Tunnel) - لا تفتح أبدًا المنفذ 8123 مباشرة.
- قم بتمكين HTTPS - فقط الاتصالات المشفرة. يقوم Caddy بذلك تلقائيًا.
- استخدم كلمة مرور معقدة - لا تقل عن 16 حرفًا، مع أرقام ورموز خاصة. من الأفضل استخدام مدير كلمات المرور.
- قم بتمكين المصادقة الثنائية في Home Assistant: الإعدادات → المستخدمون → تمكين 2FA (TOTP عبر Google Authenticator أو Authy).
- قم بإيقاف تشغيل إنشاء الحسابات عبر واجهة المستخدم (onboarding) بعد الإعداد الأولي.
- قم بإعداد تحديد معدل الطلبات على البروكسي - لا أكثر من 5-10 محاولات تسجيل دخول في الدقيقة من IP واحد.
- قم بتمكين fail2ban أو ما يعادله - حظر تلقائي لـ IP بعد عدة محاولات فاشلة لتسجيل الدخول.
- قم بتحديث Home Assistant بانتظام - يتم إغلاق معظم الثغرات الحرجة في غضون 24-48 ساعة بعد اكتشافها.
- عزل أجهزة المنزل الذكي في VLAN منفصل أو شبكة Wi-Fi ضيفية - إذا تم اختراق جهاز واحد، ستبقى الشبكة المتبقية آمنة.
- قم بإيقاف تشغيل التكاملات والإضافات غير الضرورية - كل مكون نشط يزيد من سطح الهجوم.
إضافي: إعداد fail2ban لـ Home Assistant
إذا كنت تستخدم نظام Linux (مثل Home Assistant Supervised على Debian)، قم بتثبيت fail2ban لحظر IP المهاجمين تلقائيًا:
# تثبيت fail2ban sudo apt install fail2ban # أنشئ ملف /etc/fail2ban/filter.d/hass.conf [Definition] failregex = ^%(__prefix_line)s.*Login attempt or request with invalid authentication from <HOST>.*$ ignoreregex = # أنشئ قاعدة في /etc/fail2ban/jail.d/hass.conf [hass] enabled = true filter = hass logpath = /config/home-assistant.log maxretry = 5 bantime = 3600 findtime = 600
تقوم هذه القاعدة بحظر IP لمدة ساعة واحدة بعد 5 محاولات فاشلة لتسجيل الدخول خلال 10 دقائق. يمكنك تشديد المعايير: زيادة bantime إلى 86400 (24 ساعة) أو تقليل maxretry إلى 3.
مراقبة النشاط المشبوه
يحتوي Home Assistant على سجل مصادقة مدمج. تحقق منه بانتظام عبر الإعدادات → النظام → السجلات. ابحث عن السطور التي تحتوي على Login attempt و invalid authentication. إذا رأيت محاولات من IP غير معروف - فهذا إشارة إلى أن HA الخاص بك تم اكتشافه من قبل الماسحات.
يمكنك أيضًا إعداد إشعار تلقائي على Telegram عند حدوث محاولة دخول فاشلة. أنشئ أتمتة في Home Assistant:
alias: إشعار عن دخول فاشل
trigger:
- platform: event
event_type: system_log_event
event_data:
level: WARNING
condition:
- condition: template
value_template: "{{ 'Login attempt' in trigger.event.data.message }}"
action:
- service: notify.telegram
data:
message: "⚠️ محاولة دخول إلى Home Assistant: {{ trigger.event.data.message }}"
الخاتمة
الوصول الآمن عن بُعد إلى Home Assistant ليس ميزة اختيارية، بل شرط أساسي لكل من يريد التحكم في المنزل الذكي من الإنترنت. فتح منفذ بدون طبقة حماية هو مسألة ليست "هل سيتم اختراقه"، بل "متى سيتم اختراقه". طبقة البروكسي (البروكسي العكسي أو النفق) تغير الصورة بشكل جذري: يرى المهاجمون فقط البروكسي، وليس خادمك الحقيقي والشبكة المنزلية.
ملخص مختصر لاختيار الحل:
- مبتدئ، أريد شيئًا بسيطًا وسريعًا → Nabu Casa أو Cloudflare Tunnel
- لدي IP ثابت، أريد التحكم → Caddy أو Nginx كبروكسي عكسي
- لا يوجد IP ثابت، أريد مجانًا → Cloudflare Tunnel + DuckDNS
- أقصى خصوصية → VPS + نفق WireGuard + بروكسي عكسي
لا تنسَ أن البروكسي هو الخط الأول للدفاع. أكمل ذلك بالمصادقة الثنائية، والتحديثات المنتظمة، ومراقبة السجلات. يجب أن يكون المنزل الذكي ذكيًا أيضًا في مسائل الأمان.
إذا كنت بحاجة إلى إخفاء الطلبات الصادرة من Home Assistant إلى واجهات برمجة التطبيقات الخارجية أو الوصول إلى التكاملات المحدودة جغرافيًا، نوصي بالنظر في البروكسي السكني - فهي توفر عناوين IP منزلية حقيقية لا يتم حظرها من قبل الخدمات السحابية ومزودي واجهات برمجة التطبيقات.
```