ماذا تفعل هذه الوحدة #
جدار الحماية هو باب الخادم: يقرّر أي الاتصالات تدخل وأيها تُرفَض. في هذه الأجهزة يقوم بهذا العمل ufw (جدار حماية Ubuntu)، وتمنحك وحدة firewall أداة تحكّم مريحة لتشغيله دون حفظ صيغة ufw.
به يمكنك أن ترى بنظرة واحدة حالة جدار الحماية (نشط، والسياسة الافتراضية والقواعد)، وأن تقفِل يدويًا عنوان IP أو نطاقًا يزعجك، وأن تحرّر ذلك القفل عندما لم يعُد لازمًا، وأن تفتح المنافذ أو تغلقها مع الحفاظ على الإعداد متزامنًا مع ما يطبّقه ufw.
حالات الحظر التلقائية بسبب محاولات الاختراق (القوة الغاشمة على SSH، إلخ) يديرها fail2ban بمفرده. تعمل هذه الوحدة مع أقفالك اليدوية: block وunblock وflush تمسّ فقط ما تضيفه أنت يدويًا ولا تتداخل أبدًا مع حالات حظر fail2ban.
المهام الشائعة #
اختر ما تريد فعله. كل وصفة تأتي بالأمر مكتوبًا بالفعل — ما عليك سوى تغيير عنوان IP أو المنفذ بما يخصّك، والضغط على نسخ.
1
عرض حالة جدار الحماية
تحقق مما إذا كان نشطًا، وسياسته الافتراضية وكم قاعدة لديه.
اتصل عبر SSH بخادمك واطلب الملخّص:
$ sudo imaxe firewall statusهل تريدها لسكربت؟ أضِف --json وستحصل على المعلومات نفسها قابلة للقراءة آليًا:
$ sudo imaxe firewall status --json2
إقفال عنوان IP مُسيء
اقطع الوصول عن عنوان IP أو نطاق يزعجك.
اقفِل عنوان IP محدّدًا، مع تدوين السبب لتتذكّره لاحقًا:
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso"هل تريد قفلًا مؤقتًا فقط؟ حدّد له مدة باستخدام --ttl وسيُرفَع من تلقاء نفسه. يمكنك أيضًا إقفال نطاق كامل بترميز CIDR:
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
$ sudo imaxe firewall block 203.0.113.0/24 --reason "escaneo"--ttl، فينتهي القفل تلقائيًا عند انقضاء المدة.3
عرض عناوين IP التي أقفلتها
راجِع قائمة الأقفال اليدوية النشطة لديك.
أدرِج عناوين IP والنطاقات التي أقفلتها يدويًا (تذكّر: حالات حظر fail2ban لا تظهر هنا):
$ sudo imaxe firewall blocked4
فتح قفل عنوان IP
حرّر قفلًا يدويًا لم يعُد لازمًا.
حرّر عنوان IP أو النطاق تمامًا كما أقفلته (كما يظهر في blocked):
$ sudo imaxe firewall unblock 203.0.113.105
فتح منفذ أو إغلاقه
اسمح بمرور خدمة جديدة أو أغلِق واحدة لم تعُد تقدّمها.
افتح منفذًا (مع تعليق لتعرف الغرض منه). يمكنك تقييد من يدخل باستخدام --from:
$ sudo imaxe firewall allow 443/tcp --comment "https"
$ sudo imaxe firewall allow 5432/tcp --from 203.0.113.0/24 --comment "postgres interno"أغلِق منفذًا لم تعُد تستخدمه:
$ sudo imaxe firewall deny 8080/tcpfirewall.yml. تحقق منها باستخدام imaxe firewall rules list.لا تغلق المنفذ 22 (SSH) إذا كنت متصلًا عبر SSH: ستفقد الوصول إلى الخادم. تُبقي الوحدة 22/tcp مسموحًا افتراضيًا تحديدًا لتجنّب هذا الفزع. وتذكّر أن flush يمحو جميع أقفالك اليدوية دفعة واحدة.
صيغة الاستخدام #
imaxe firewall <subcomando> [<ip>|<puerto>] [flags]جميع الأوامر الفرعية تتطلب امتيازات root (استخدم sudo) لأنها تعمل على ufw وتكتب في /etc/imaxe/. أضِف --json إلى status أو blocked أو rules list للحصول على مخرجات قابلة للقراءة آليًا، صالحة لكتابة السكربتات.
الأوامر الفرعية #
| الأمر الفرعي | ماذا يفعل | الرايات المعنية |
|---|---|---|
| status | حالة جدار الحماية: نشط، والسياسة الافتراضية، وعدد القواعد والأقفال اليدوية. | --json |
| blocked | يُدرِج عناوين IP/النطاقات المُقفَلة يدويًا (لا يشمل حالات حظر fail2ban). | --json |
| block | يقفِل عنوان IP أو نطاقًا يدويًا، مع سبب ومدة اختياريين. | --reason, --ttl |
| unblock | يحرّر قفلًا يدويًا. لا يمسّ حالات حظر fail2ban. | — |
| flush | يمحو جميع الأقفال اليدوية (تدميري). لا يمسّ حالات حظر fail2ban. | --yes |
| rules list | يُدرِج قواعد المنافذ (المنافذ المسموحة، والمصادر). | --json |
| allow | يفتح منفذًا ويعكسه في الإعداد. | --from, --comment |
| deny | يغلق منفذًا ويعكسه في الإعداد. | --from |
| reload | يعيد تحميل ufw (يعيد تطبيق قواعده النشطة). | — |
rules يجمّع إدارة قواعد المنافذ؛ في الوقت الحالي أمره الفرعي الوحيد هو rules list.
الوسائط والرايات #
| الوسيط / الراية | النوع | الافتراضي | الوصف |
|---|---|---|---|
| <ip>[/cidr] مطلوب | string | — | عنوان IP أو نطاق CIDR المراد العمل عليه في block وunblock (مثل 203.0.113.10 أو 203.0.113.0/24). |
| <port>[/proto] مطلوب | string | — | المنفذ المراد العمل عليه في allow وdeny (مثل 443 أو 443/tcp). |
| --reason | string | — | في block: سبب القفل (للعِلم). |
| --ttl | المدة | دائم | في block: مدة القفل (مثل 24h). افتراضيًا، دائم. |
| --from | cidr | أي مصدر | في allow/deny: يقيّد المصدر بنطاق CIDR محدّد. |
| --comment | string | — | في allow: تعليق وصفي للقاعدة. |
| --yes | bool | false | في flush: يؤكّد دون سؤال (عملية تدميرية). |
| --json | bool | false | في status/blocked/rules list: يُصدِر النتيجة كـ JSON على stdout. |
الملفات والمسارات #
| المسار | المحتوى |
|---|---|
| /etc/imaxe/firewall.yml | إعداد الوحدة: المنافذ المسموحة التي يبقيها allow/deny متزامنة مع ufw. |
مثال على firewall.yml:
allow:
- { port: 22, proto: tcp, comment: "ssh" }
- { port: 443, proto: tcp, comment: "https" }رموز الخروج والسجلّات #
يُرجِع كل تنفيذ رمزًا يمكنك التحقق منه باستخدام echo $? — مفيد للتسلسل في السكربتات:
تابِع الحالة والقواعد مباشرةً أثناء التنقيح:
$ sudo imaxe firewall status
$ sudo imaxe firewall rules listحل المشكلات #
| العَرَض | السبب المحتمل | الحل |
|---|---|---|
| يظهر NOTFOUND (رمز 3) عند فتح القفل | عنوان IP لا يطابق تمامًا القفل الموضوع (ينقصه /cidr مثلًا). | نفّذ imaxe firewall blocked وانسخ المُدخَل كما هو من أجل unblock. |
أقفلت عنوان IP لكنه لا يزال يظهر محظورًا بعد unblock | القفل وضعه fail2ban، لا أنت. | هذه الوحدة تحرّر الأقفال اليدوية فقط؛ حالات الحظر التلقائية يديرها fail2ban على حِدة. |
| فتحت منفذًا لكن لا تدخل حركة مرور | القاعدة موجودة في ufw لكن جدار حماية خارجي (security group) لا يزال مغلقًا. | تحقق باستخدام imaxe firewall rules list وافتح المنفذ أيضًا لدى مزوّد الحوسبة السحابية. |
| فقدت الوصول عبر SSH بعد تعديل القواعد | أُغلق المنفذ 22 أو أصبح مقيَّدًا. | ادخل عبر وحدة تحكّم المزوّد وأعِد السماح بـ 22/tcp باستخدام imaxe firewall allow 22/tcp. |
هل واجهتك مشكلة مع وحدة Firewall؟
راسلنا مرفقًا مخرجات «imaxe <module> status --json» وسنرد عليك بسرعة.