مقدمة
UFW هي اختصار لـ uncomplicated firewall (جدار الحماية غير المعقد). وهي عبارة عن منصة واجهة أمامية تتيح لك إدارة وظائف وأوامر جدار الحماية بسهولة. ستحصل على UFW كخيار افتراضي مع خادم Ubuntu الخاص بك. قد يكون تحقيق أقصى استفادة من إمكانات أوامر ووظائف جدار الحماية أمرًا صعبًا إذا لم تكن معتادًا بالفعل على هذه الأداة.
هدفنا هو تزويدك بدليل شامل يمكنك استخدامه كمبتدئ. سنقوم بتدعيم الشروحات بأمثلة على الإجراءات المختلفة التي يمكنك القيام بها باستخدام UFW. ستكون العديد من القواعد مفيدة جدًا للخدمات والأنشطة اليومية. فلنبدأ!
المتطلبات الأساسية
قبل المتابعة في القراءة، تأكد من ضبط UFW على مجموعة القواعد الافتراضية. هذا يعني أن جدار الحماية يسمح بحركة المرور الصادرة ولكنه يحظر حركة المرور الواردة. تكمن فائدة إعادة الضبط الافتراضية هذه في أنه يمكنك تحديد حركة المرور التي تريد السماح بمرورها عبر جدار الحماية. إذا لم تكن متأكدًا من حالة مجموعة القواعد الحالية على UFW الخاص بك، فاستخدم هذا الأمر للتحقق: sudo ufw status. يمكنك أيضًا استخدام هذا الأمر:
|
1 |
sudo ufw status verbose |
بصرف النظر عن ذلك، لك الحرية في الانتقال إلى أي قسم هو الأكثر صلة بمتطلباتك. ليس عليك بالضرورة استخدام كل أمر وارد في هذا الدليل. يمكنك الدمج والمطابقة بناءً على احتياجاتك الشخصية.
كيفية حظر عنوان IP
لنبدأ بإحدى الوظائف الأكثر أساسية لأي جدار حماية: حظر عناوين IP. هناك أمر بسيط للغاية يمكنك استخدامه لحظر أي اتصالات شبكة قادمة من عنوان IP معين. لنفترض، على سبيل المثال، أن عنوان IP المحدد في حالتنا هو 15.15.15.51. يمكنك استبدال هذه القيمة بعنوان IP الذي تريد حظره من خلال UFW الخاص بك. هذا هو الأمر الذي ستستخدمه لهذا الغرض:
|
1 |
sudo ufw deny from 15.15.15.51 |
هنا، يشير from 15.15.15.51 إلى عنوان IP المصدر فقط، وهو '15.15.15.51'. إذا كانت هناك شبكة فرعية (subnet) تريد تحديدها بدلاً من ذلك، فيمكنك إضافتها على النحو التالي: 15.15.15.0/24. سيعمل الأمر بنفس الكفاءة. يمكنك تحديد عنوان IP المصدر هذا في أي قاعدة جدار حماية تريدها، مثل قاعدة السماح (allow).
- حظر اتصالات واجهة الشبكة
في بعض الأحيان، قد يكون المطلوب هو حظر اتصالات الشبكة الصادرة من عنوان IP معين إلى واجهة شبكة معينة. إذا كان الأمر كذلك، فسنضطر إلى تحديد واجهة الشبكة جنبًا إلى جنب مع عنوان IP المصدر. في هذا المثال، لنعتبر عنوان IP المصدر هو 15.15.15.51 واجهة الشبكة هي eth0:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
على غرار عنوان IP المصدر، يمكنك تحديد واجهة الشبكة في أي قاعدة جدار حماية أيضًا. الغرض من هذه التحديدات هو قصر قاعدة جدار حماية معينة على شبكة أو اتصال معين فقط.
كيفية السماح باتصالات SSH
هذا القسم يهمك إذا كنت تستخدم خادمًا سحابيًا. لتتمكن من إنشاء اتصال بخادمك السحابي، تحتاج إلى أن يسمح جدار الحماية باتصالات SSH الواردة. تأتي اتصالات SSH هذه عبر المنفذ 22. يمكنك اتباع هذا البرنامج التعليمي لمعرفة كيفية استخدام SSH للاتصال بخادم بعيد في Ubuntu.
من خلال إنشاء اتصالات SSH، يمكنك إدارة خادمك السحابي بنجاح باستخدام جهازك المحلي. سنغطي هنا القواعد المختلفة ذات الصلة بتكوين جدار الحماية المرتبط بـ SSH:
- السماح بـ SSH
استخدم الأمر التالي للسماح بجميع اتصالات SSH الواردة:
|
1 |
sudo ufw allow ssh |
من ناحية أخرى، يمكنك أيضًا تنفيذ الأمر عن طريق تحديد رقم منفذ خدمة SSH بدلاً من ذلك:
|
1 |
sudo ufw allow 22 |
- السماح باتصالات SSH الواردة من عنوان IP محدد
في حال كنت تريد فقط السماح باتصالات SSH الواردة من عنوان IP أو شبكة فرعية محددة، فلديك القدرة على تحديد المصدر. على سبيل المثال، لنفترض أن الشبكة الفرعية التي تريد السماح بها هي 15.15.15.0/24. إليك الأمر الذي ستحتاج إلى تشغيله:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- السماح باتصالات Rsync الواردة من عنوان IP محدد
يعمل Rsync على المنفذ 873، وهو يتيح لك نقل الملفات من نظام كمبيوتر إلى آخر. إذا كنت تريد فقط السماح باتصال Rsync القادم من عنوان IP أو شبكة فرعية محددة (في هذا المثال، 15.15.15.0/24)، فيمكنك القيام بذلك باستخدام هذا الأمر:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
هذا يعني أنه سيتم السماح للشبكة الفرعية 15.15.15.0/24 بأكملها بإجراء Rsync إلى خادمك. إليك أيضًا دليل شامل تعليمي حول كيفية استخدام Rsync لمزامنة الأدلة المحلية والبعيدة على خادمك.
كيفية تكوين طلبات خادم الويب
بعد ذلك، سننتقل إلى القواعد المتعلقة بخدمة خادم الويب. خوادم الويب مثل Apache و Nginx تتلقى عمومًا طلبات اتصالات HTTP و HTTPS من منفذين: المنفذ 80 والمنفذ 443. يلبي المنفذ 80 طلبات HTTP. بينما المنفذ 443 مسؤول عن طلبات HTTPS.
كما ناقشنا في المتطلبات الأساسية، فإنك تستخدم مجموعة القواعد الافتراضية لـ UFW. بناءً على مجموعة القواعد هذه، يقوم جدار الحماية بحظر أو رفض جميع حركة المرور الواردة. لذلك، سيتعين عليك تكوين قواعد جديدة تسمح للخادم بتلقي وقراءة هذه الطلبات الواردة.
- السماح بجميع اتصالات HTTP
إذا كنت تريد السماح بجميع اتصالات وطلبات HTTP القادمة من المنفذ 80، فاستخدم الأمر:
|
1 |
sudo ufw allow http |
يمكنك أيضًا استخدام رقم المنفذ (المنفذ 80) لتحديد خدمة HTTP في الأمر:
|
1 |
sudo ufw allow 80 |
- السماح بجميع اتصالات HTTPS
إذا كنت تريد السماح بجميع اتصالات وطلبات HTTPS القادمة من المنفذ 443، فقم بتشغيل هذا الأمر:
|
1 |
sudo ufw allow https |
على غرار الأمر السابق، يمكنك استبدال 'https' برقم منفذ خدمة HTTPS:
|
1 |
sudo ufw allow 443 |
- السماح بجميع اتصالات HTTP و HTTPS
في حال كنت تريد السماح بكل من طلبات HTTP و HTTPS، يمكنك استخدام قاعدة جماعية لكليهما. من خلال هذا الأمر الفردي، يمكنك السماح بحركة المرور الواردة من كل من المنفذ 80 وكذلك المنفذ 443:
|
1 |
sudo ufw allow proto tcp from any to any port 80,443 |
من الضروري استخدام الأمر proto tcp عندما تقوم بتحديد منافذ متعددة في نفس الوقت.
يمكنك أيضًا اتباع هذه الأدلة التفصيلية حول كيفية تأمين Nginx و Apache باستخدام Let’s Encrypt على Ubuntu.
كيفية السماح بـ MySQL
MySQL اتصالاتها تأتي عبر المنفذ 3306. سيتعين عليك استخدام قاعدة للسماح بحركة المرور الواردة إذا كان العميل يستخدم قاعدة بيانات MySQL الخاصة بك على خادم بعيد. اتبع الدليل التعليمي لمعرفة أساسيات MySQL وكيفية إعداد MySQL على خادم.
- السماح بـ MySQL من عنوان IP محدد
كما رأينا بالفعل في القواعد السابقة، يجب عليك تحديد المصدر للسماح باتصالات MySQL الواردة. يمكن أن يكون مصدرك عنوان IP محددًا أو شبكة فرعية. في مثالنا، سنستخدم الشبكة الفرعية 15.15.15.0/24 بأكملها لتشغيل الأمر:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- السماح بـ MySQL لواجهة شبكة محددة
ستستخدم أمرًا مختلفًا إذا كنت بحاجة أيضًا إلى تحديد واجهة الشبكة التي تسمح باتصالات MySQL من خلالها. لنفترض أن واجهة الشبكة التي تستخدمها هي واجهة شبكة خاصة تسمى eth1. يمكنك استبدال هذه القيمة باسم واجهة الشبكة الخاصة بك:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
كيفية السماح بـ PostgreSQL
تأتي اتصالات PostgreSQL عبر المنفذ 5432. على غرار اتصالات MySQL، إذا كان العميل يستخدم قاعدة بيانات PostgreSQL على خادم بعيد، فأنت بحاجة إلى السماح بحركة المرور الواردة. يمكنك القيام بذلك باستخدام الأوامر التالية.
- السماح بـ PostgreSQL من عنوان IP محدد
إذا كنت تعلم أن اتصالات PostgreSQL قادمة من شبكة فرعية أو عنوان IP محدد، فيجب عليك تحديد المصدر. هنا، سنستخدم مثال الشبكة الفرعية 15.15.15.0/24 مرة أخرى:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
في حال لم تكن سياسة المخرجات (OUTPUT) لديك مضبوطة على ACCEPT، سيتعين عليك تشغيل أمر ثانٍ. يسمح هذا الأمر بحركة المرور الصادرة لاتصالات PostgreSQL المنشأة بالفعل.
- السماح بـ PostgreSQL لواجهة شبكة محددة
على غرار القاعدة السابقة، سنسمح باتصالات PostgreSQL لواجهة شبكة محددة. في حالتنا هذه هي eth1:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
في حال لم تكن سياسة المخرجات (OUTPUT) لديك مضبوطة على ACCEPT، سيتعين عليك تشغيل أمر ثانٍ. يسمح هذا الأمر بحركة المرور الصادرة لاتصالات PostgreSQL المنشأة بالفعل. يمكنك معرفة كيفية إعداد PostgreSQL على Ubuntu باتباع برنامجنا التعليمي المفصل.
كيفية تكوين خوادم البريد
قد تستخدم أيضًا خوادم بريد مثل Sendmail و Postfix على نظامك. هذه الخوادم مفتوحة على عدة منافذ. تعتمد المنافذ التي تستمع إليها على البروتوكولات التي تم تعيينها لتسليم البريد. ولهذا السبب سيتعين عليك أولاً تحديد البروتوكولات التي تقوم بتشغيلها في نظام تسليم البريد الخاص بك. ستسمح لاحقًا بأنواع حركة المرور ذات الصلة بناءً على هذه المعلومات.
- حظر بريد SMTP الصادر
قبل أن ننتقل إلى الأوامر التي تسمح بحركة المرور الواردة لخوادم البريد الخاصة بك، دعنا نرى كيف يمكنك حظر بريد SMTP mail الصادر. يمكنك استخدام هذا الأمر إذا كنت لا تريد أن يرسل خادمك أي بريد صادر. يستخدم بريد SMTP المنفذ 25. استخدم هذا الأمر لحظر حركة المرور هذه:
|
1 |
sudo ufw deny out 25 |
نتيجة لتشغيل هذا الأمر، سيقوم جدار الحماية الخاص بك بإسقاط جميع حركة المرور الصادرة على المنفذ 25. إذا كنت تريد حظر منفذ آخر، فما عليك سوى استبدال المنفذ '25' برقم المنفذ المناسب.
- السماح بـ SMTP الوارد
الآن بعد أن عرفت كيفية حظر حركة المرور الصادرة، سيبدو السماح بحركة المرور الواردة أمرًا بسيطًا للغاية. استخدم هذا الأمر للسماح للخادم باستقبال اتصال SMTP على المنفذ 25:
|
1 |
sudo ufw allow 25 |
- السماح بـ IMAP الوارد
إذا كنت تريد السماح للخادم بإنشاء اتصال IMAP على المنفذ 143، فاستخدم الأمر التالي:
|
1 |
sudo ufw allow 143 |
- السماح بـ IMAPS الوارد
استخدم هذا الأمر للسماح للخادم بالاستجابة لاتصالات IMAPS على المنفذ 993:
|
1 |
sudo ufw allow 993 |
- السماح بـ POP3 الوارد
يمكّن هذا الأمر خادمك من الاستجابة لجميع اتصالات POP3 عبر المنفذ 110:
|
1 |
sudo ufw allow 110 |
- السماح بـ POP3S الوارد
أخيرًا، يمكنك السماح لخادمك بتلقي طلبات من المنفذ 995 لاتصالات POP3S باستخدام هذا الأمر:
|
1 |
sudo ufw allow 995 |
الخاتمة
سيساعدك هذا الدليل على التعرف على وظائف UFW الأساسية. لقد قمنا بتغطية الأوامر الأساسية التي تحتاج إلى التعرف عليها لتتمكن من تكوين جدار الحماية الخاص بك. يمكنك اختيار الأوامر التي تناسب متطلباتك المحددة لإنشاء حل جدار حماية مخصص. تتيح الطبيعة المرنة لـ UFW مثل هذا التخصيص. جرب لتكتشف ما هو الأفضل بالنسبة لك.
حوسبة سعيدة!
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.