كيف تبدأ مع جدار الحماية على لينكس
نشرت: 2022-07-08 إذا كنت تبحث عن جدار حماية حديث وقوي لنظام Linux يسهل تكوينه في سطر الأوامر أو باستخدام واجهة المستخدم الرسومية ، فمن المحتمل أن يكون firewalld
هو ما تبحث عنه.
الحاجة إلى جدران الحماية
اتصالات الشبكة لها أصل ووجهة. يطلب البرنامج الأصلي الاتصال ، ويقبله البرنامج الموجود في الوجهة أو يرفضه. إذا تم قبولها ، يمكن أن تمر حزم البيانات - التي تسمى بشكل عام حركة مرور الشبكة - في كلا الاتجاهين عبر الاتصال. هذا صحيح فيما إذا كنت تشارك عبر الغرفة في منزلك ، أو تتصل عن بعد للعمل من مكتبك المنزلي ، أو تستخدم موردًا بعيدًا قائمًا على السحابة.
تشير الممارسة الأمنية الجيدة إلى أنه يجب عليك تقييد الاتصالات بجهاز الكمبيوتر الخاص بك والتحكم فيها. هذا ما تفعله جدران الحماية. يقومون بتصفية حركة مرور الشبكة حسب عنوان IP أو المنفذ أو البروتوكول ، ويرفضون الاتصالات التي لا تفي بمجموعة محددة مسبقًا من المعايير - قواعد جدار الحماية - التي قمت بتكوينها. إنهم مثل أفراد الأمن في حدث خاص. إذا لم يكن اسمك في القائمة ، فأنت لا تدخل.
بالطبع ، لا تريد أن تكون قواعد جدار الحماية لديك شديدة التقييد بحيث يتم تقليص أنشطتك العادية. وكلما كان تكوين جدار الحماية الخاص بك أبسط ، قل احتمال قيامك عن غير قصد بإعداد قواعد متضاربة أو قاسية. كثيرًا ما نسمع من المستخدمين الذين يقولون إنهم لا يستخدمون جدار حماية لأنه معقد للغاية بحيث يتعذر فهمه ، أو أن بناء جملة الأوامر معتم للغاية.
يعد firewalld
firewalld قويًا وسهل الإعداد ، سواء في سطر الأوامر أو من خلال تطبيق واجهة المستخدم الرسومية المخصص. تحت الغطاء ، تعتمد جدران حماية Linux على netfilter
، إطار عمل تصفية الشبكة من جانب kernel. هنا في أرض المستخدم ، لدينا مجموعة من الأدوات للتفاعل مع netfilter
، مثل iptables
و ufw
جدار الحماية غير المعقد وجدار firewalld
.
في رأينا ، يوفر firewalld
أفضل توازن بين الوظائف والدقة والبساطة.
تثبيت جدار الحماية د
هناك جزأين firewalld
. يوجد firewalld
، وهو العملية الخفية التي توفر وظيفة جدار الحماية ، وهناك firewall-config
. هذه هي واجهة المستخدم الرسومية الاختيارية firewalld
. لاحظ أنه لا يوجد "d" في firewall-config
.
يعد تثبيت firewalld
على Ubuntu و Fedora و Manjaro أمرًا سهلاً في جميع الحالات ، على الرغم من أن لكل منهم وجهة نظره الخاصة بشأن ما تم تثبيته مسبقًا وما تم تجميعه.
للتثبيت على Ubuntu ، نحتاج إلى تثبيت firewalld
و firewall-config
.
sudo apt تثبيت جدار الحماية
sudo apt تثبيت جدار الحماية config
في Fedora ، تم تثبيت firewalld
بالفعل. نحتاج فقط إلى إضافة firewall-config
.
sudo dnf install firewall-config
في Manjaro ، لم يتم تثبيت أي مكون مسبقًا ، ولكن تم تجميعهما في حزمة واحدة حتى نتمكن من تثبيتهما بأمر واحد.
sudo pacman -Sy firewalld
نحتاج إلى تمكين برنامج firewalld
للسماح بتشغيله في كل مرة يتم فيها تمهيد الكمبيوتر.
sudo systemctl تمكين جدار الحماية
ونحن بحاجة إلى بدء البرنامج الخفي حتى يعمل الآن.
بدء جدار الحماية sudo systemctl
يمكننا استخدام systemctl
للتحقق من بدء firewalld
وتشغيله دون مشاكل:
sudo systemctl حالة جدار الحماية
يمكننا أيضًا استخدام firewalld
للتحقق مما إذا كان يعمل. يستخدم هذا الأمر firewall-cmd
مع خيار --state
. لاحظ عدم وجود "d" في firewall-cmd
:
sudo firewall-cmd --state
الآن لدينا جدار الحماية مثبتًا وقيد التشغيل ، يمكننا الانتقال إلى تكوينه.
مفهوم المناطق
يعتمد firewalld
الناري حول المناطق . المناطق عبارة عن مجموعات من قواعد جدار الحماية واتصال شبكة مرتبط. يتيح لك ذلك تخصيص مناطق مختلفة - ومجموعة مختلفة من قيود الأمان - التي يمكنك العمل في ظلها. على سبيل المثال ، قد يكون لديك منطقة محددة للتشغيل اليومي العادي ، ومنطقة أخرى لتشغيل أكثر أمانًا ، ومنطقة تأمين كاملة "لا شيء في الداخل ، لا شيء خارج".
للانتقال من منطقة إلى أخرى ، وبشكل فعال من مستوى أمان إلى آخر ، تقوم بنقل اتصال الشبكة الخاص بك من المنطقة التي توجد بها ، إلى المنطقة التي ترغب في العمل تحتها.
هذا يجعل من السريع للغاية نقل واحد من مجموعة محددة من قواعد جدار الحماية إلى أخرى. هناك طريقة أخرى لاستخدام المناطق وهي جعل الكمبيوتر المحمول الخاص بك يستخدم منطقة واحدة عندما تكون في المنزل وأخرى عندما تكون بالخارج وتستخدم شبكة Wi-Fi عامة.
يأتي firewalld
مع تسع مناطق معدة مسبقًا. يمكن تحريرها وإضافة المزيد من المناطق أو إزالتها.
- إسقاط : يتم إسقاط جميع الحزم الواردة. يسمح حركة المرور الصادرة. هذا هو المكان الأكثر بجنون العظمة.
- block : يتم إسقاط جميع الحزم الواردة ويتم إرسال رسالة
icmp-host-prohibited
إلى المنشئ. يسمح حركة المرور الصادرة. - موثوق به : يتم قبول جميع اتصالات الشبكة ويتم الوثوق في الأنظمة الأخرى. هذا هو الإعداد الأكثر ثقة ويجب أن يقتصر على البيئات الآمنة للغاية مثل شبكات الاختبار الأسيرة أو منزلك.
- عام : هذه المنطقة مخصصة للاستخدام على الشبكات العامة أو الشبكات الأخرى حيث لا يمكن الوثوق بأي من أجهزة الكمبيوتر الأخرى. يتم قبول مجموعة صغيرة من طلبات الاتصال الشائعة والآمنة عادةً.
- خارجي : هذه المنطقة مخصصة للاستخدام على الشبكات الخارجية مع تمكين تنكر NAT (إعادة توجيه المنفذ). يعمل جدار الحماية الخاص بك كجهاز توجيه يعيد توجيه حركة المرور إلى شبكتك الخاصة التي تظل قابلة للوصول ، لكنها تظل خاصة.
- داخلي : هذه المنطقة مخصصة للاستخدام على الشبكات الداخلية عندما يعمل نظامك كبوابة أو جهاز توجيه. الأنظمة الأخرى الموجودة على هذه الشبكة موثوقة بشكل عام.
- dmz : هذه المنطقة مخصصة لأجهزة الكمبيوتر الموجودة في "المنطقة المنزوعة السلاح" خارج دفاعات محيطك مع وصول محدود إلى شبكتك.
- العمل : هذه المنطقة مخصصة لآلات العمل. أجهزة الكمبيوتر الأخرى على هذه الشبكة موثوق بها بشكل عام.
- المنزل : هذه المنطقة مخصصة للأجهزة المنزلية. أجهزة الكمبيوتر الأخرى على هذه الشبكة موثوق بها بشكل عام.
تتشابه مناطق المنزل والعمل والمناطق الداخلية إلى حد كبير في الوظيفة ، ولكن فصلها إلى مناطق مختلفة يسمح لك بضبط منطقة حسب رغبتك ، وتغليف مجموعة واحدة من القواعد لسيناريو معين.
نقطة البداية الجيدة هي معرفة ما هي المنطقة الافتراضية. هذه هي المنطقة التي تمت إضافة واجهات الشبكة الخاصة بك إليها عند تثبيت firewalld
.
sudo firewall-cmd --get-default-zone
منطقتنا الافتراضية هي المنطقة العامة. للاطلاع على تفاصيل تكوين منطقة ما ، استخدم خيار --list-all
. يسرد هذا أي شيء تمت إضافته أو تمكينه لمنطقة.
sudo firewall-cmd --zone = public --list-all
يمكننا أن نرى أن هذه المنطقة مرتبطة باتصال الشبكة enp0s3 ، وتسمح بحركة المرور المتعلقة بـ DHCP و mDNS و SSH. نظرًا لأنه تمت إضافة واجهة واحدة على الأقل إلى هذه المنطقة ، فإن هذه المنطقة نشطة.
يسمح لك firewalld
بإضافة الخدمات التي ترغب في قبول حركة المرور منها إلى منطقة ما. ثم تسمح هذه المنطقة لهذا النوع من حركة المرور من خلال. هذا أسهل من تذكر أن mDNS ، على سبيل المثال ، يستخدم المنفذ 5353 وبروتوكول UDP ، ويضيف هذه التفاصيل يدويًا إلى المنطقة. على الرغم من أنه يمكنك فعل ذلك أيضًا.
إذا قمنا بتشغيل الأمر السابق على جهاز كمبيوتر محمول مع اتصال إيثرنت وبطاقة Wi-Fi ، فسنرى شيئًا مشابهًا ، ولكن بواجهتين.
sudo firewall-cmd --zone = public --list-all
تمت إضافة كل من واجهات الشبكة الخاصة بنا إلى المنطقة الافتراضية. تحتوي المنطقة على قواعد للخدمات الثلاث نفسها كما في المثال الأول ، ولكن تمت إضافة DHCP و SSH كخدمات مسماة ، بينما تمت إضافة mDNS كمنفذ وإقران البروتوكول.
لسرد جميع المناطق ، استخدم خيار --get-zones
.
sudo firewall-cmd --get-المناطق
لمعرفة التكوين لجميع المناطق في وقت واحد ، استخدم خيار قائمة --list-all-zones
. سترغب في توجيه هذا إلى less
.
sudo firewall-cmd - قائمة-جميع المناطق | أقل
هذا مفيد لأنه يمكنك التمرير خلال القائمة ، أو استخدام أداة البحث للبحث عن أرقام المنافذ والبروتوكولات والخدمات.
على الكمبيوتر المحمول الخاص بنا ، سنقوم بنقل اتصال Ethernet الخاص بنا من المنطقة العامة إلى المنطقة الرئيسية. يمكننا القيام بذلك باستخدام --zone
و --change-interface
.
sudo firewall-cmd --zone = الصفحة الرئيسية - واجهة التغيير = enp3s0
دعنا نلقي نظرة على منطقة المنزل ، ونرى ما إذا كان قد تم إجراء التغيير لدينا.
sudo firewall-cmd --zone = home --list-all
ولها. تمت إضافة اتصال Ethernet الخاص بنا إلى المنطقة الرئيسية.
ومع ذلك ، هذا ليس تغييرًا دائمًا. لقد قمنا بتغيير التكوين الجاري لجدار الحماية ، وليس تكوينه المخزن . إذا أعدنا التشغيل أو استخدمنا خيار إعادة التحميل ، --reload
إلى إعداداتنا السابقة.
لإجراء تغيير دائم ، نحتاج إلى استخدام الخيار --permanent
المسمى بشكل مناسب.
هذا يعني أنه يمكننا تغيير جدار الحماية للمتطلبات لمرة واحدة دون تغيير التكوين المخزن لجدار الحماية. يمكننا أيضًا اختبار التغييرات قبل إرسالها إلى التكوين. لجعل تغييرنا دائمًا ، يجب أن يكون التنسيق الذي يجب أن نستخدمه هو:
sudo firewall-cmd --zone = الصفحة الرئيسية - واجهة التغيير = enp3s0 - دائم
إذا قمت بإجراء بعض التغييرات ولكن نسيت استخدام --permanent
في بعضها ، فيمكنك كتابة إعدادات جلسة التشغيل الحالية لجدار الحماية إلى التكوين باستخدام الخيار --runtime-to-permanent
.
sudo firewall-cmd - وقت التشغيل الدائم
ذات صلة: ما هو بروتوكول التكوين الديناميكي للمضيف (DHCP)؟
إضافة وإزالة الخدمات
يعرف firewalld
الكثير من الخدمات. يمكنك إدراجها باستخدام خيار --get-services
.
sudo firewall-cmd --get-services
نسختنا من firewalld
سرد 192 خدمة. لتمكين خدمة في منطقة ما ، استخدم خيار --add-service
.
يمكننا إضافة خدمة إلى منطقة باستخدام خيار --add-service
.
sudo firewall-cmd --zone = public --add-service = http
يجب أن يتطابق اسم الخدمة مع إدخالها في قائمة الخدمات من firewalld
.
لإزالة خدمة --add-service
بـ --remove-service
إضافة وإزالة المنافذ والبروتوكولات
إذا كنت تفضل اختيار المنافذ والبروتوكولات المضافة ، فيمكنك القيام بذلك أيضًا. ستحتاج إلى معرفة رقم المنفذ والبروتوكول الخاص بنوع حركة المرور التي تضيفها.
دعنا نضيف حركة مرور HTTPS إلى المنطقة العامة. يستخدم المنفذ 443 وهو شكل من أشكال حركة مرور TCP.
sudo firewall-cmd --zone = public --add-port = 443 / tcp
يمكنك توفير مجموعة من المنافذ من خلال توفير المنفذ الأول والأخير بواصلة " -
" بينهما ، مثل "400-450".
لإزالة منفذ --add-port
بـ --remove-port
.
ذات صلة: ما هو الفرق بين TCP و UDP؟
استخدام واجهة المستخدم الرسومية
اضغط على مفتاح "Super" وابدأ في كتابة "firewall". سترى رمز جدار من الطوب لتطبيق firewall-config
.
انقر فوق هذا الرمز لبدء تشغيل التطبيق.
إن إضافة خدمة إلى firewalld
باستخدام واجهة المستخدم الرسومية أمر سهل مثل تحديد منطقة من قائمة المناطق واختيار الخدمة من قائمة الخدمات.
يمكنك اختيار تعديل جلسة التشغيل أو التكوين الدائم عن طريق تحديد "وقت التشغيل" أو "دائم" من القائمة المنسدلة "التكوين".
لإجراء تغييرات على جلسة التشغيل وتنفيذ التغييرات فقط بمجرد اختبارها ، اضبط قائمة "التكوين" على "وقت التشغيل". قم بإجراء التغييرات الخاصة بك. بمجرد أن تكون سعيدًا بأنهم يفعلون ما تريد ، استخدم خيارات> وقت التشغيل إلى خيار القائمة الدائمة.
لإضافة منفذ وإدخال بروتوكول إلى منطقة ، حدد المنطقة من قائمة المنطقة ، وانقر على "المنافذ". يتيح لك النقر فوق الزر إضافة توفير رقم المنفذ واختيار البروتوكول من القائمة.
لإضافة بروتوكول ، انقر فوق "بروتوكولات" ، انقر فوق الزر "إضافة" ، وحدد البروتوكول من القائمة المنبثقة.
لنقل واجهة من منطقة إلى أخرى ، انقر نقرًا مزدوجًا فوق الواجهة في قائمة "اتصالات" ، ثم حدد المنطقة من القائمة المنبثقة.
غيض من فيض
هناك الكثير الذي يمكنك القيام به باستخدام firewalld
، ولكن هذا يكفي لتنشيطك وتشغيله. باستخدام المعلومات التي قدمناها لك ، ستتمكن من إنشاء قواعد ذات معنى في مناطقك.