كيفية إعداد جدار حماية UFW على Ubuntu و Debian

A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.

في هذا المقال، سنشرح كيفية تثبيت وإعداد جدار الحماية UFW على توزيعات أوبونتو و ديبيان.

المتطلبات المسبقة

قبل أن تبدأ مع هذا المقال، تأكد من تسجيل الدخول إلى خادم أوبونتو أو ديبيان الخاص بك باستخدام مستخدم sudo أو بحساب root. إذا لم يكن لديك مستخدم sudo، يمكنك إنشاء واحد باستخدام التعليمات التالية كمستخدم root.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

تثبيت جدار الحماية UFW على أوبونتو وديبيان

يجب تثبيت UFW (جدار الحماية غير المعقد) بشكل افتراضي في أوبونتو وديبيان، إذا لم يكن كذلك، فقم بتثبيته باستخدام مدير حزم APT باستخدام الأمر التالي.

$ sudo apt install ufw

التحقق من جدار الحماية UFW

بمجرد الانتهاء من التثبيت، يمكنك التحقق من حالة جدار الحماية UFW عن طريق كتابة الأمر التالي.

$ sudo ufw status verbose

عند التثبيت الأولي، يتم تعطيل جدار الحماية UFW بشكل افتراضي، وسيكون الإخراج مشابهًا لما يلي.

Status: inactive

تمكين جدار الحماية UFW

يمكنك تنشيط أو تمكين جدار الحماية UFW باستخدام الأمر التالي، والذي يجب أن يحمل الجدار الناري ويمكنه البدء عند التمهيد.

$ sudo ufw enable

لتعطيل جدار الحماية UFW، استخدم الأمر التالي، الذي يفرغ الجدار الناري ويعطله من البدء عند التمهيد.

$ sudo ufw disable 

سياسات UFW الافتراضية

بشكل افتراضي، يرفض جدار الحماية UFW كل الاتصالات الواردة ويسمح فقط بجميع الاتصالات الصادرة إلى الخادم. هذا يعني أنه لا يمكن لأحد الوصول إلى خادمك، ما لم تفتح البورت بشكل محدد، بينما يمكن لجميع الخدمات أو التطبيقات العاملة على الخادم الوصول إلى الشبكة الخارجية.

توضع سياسات جدار الحماية UFW الافتراضية في ملف /etc/default/ufw ويمكن تعديلها باستخدام الأمر التالي.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

ملفات تعريف تطبيقات UFW

عند تثبيت حزمة برامج باستخدام مدير الحزم APT، سيتم تضمين ملف تعريف تطبيق في دليل /etc/ufw/applications.d يحدد الخدمة ويحتوي على إعدادات UFW.

يمكنك عرض كل ملفات تعريف التطبيق المتاحة على خادمك باستخدام الأمر التالي.

$ sudo ufw app list

اعتمادًا على تثبيت حزم البرامج على نظامك، ستكون النتائج مشابهة لما يلي:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

إذا كنت ترغب في الحصول على مزيد من المعلومات حول ملف تعريف معين والقواعد المحددة، يمكنك استخدام الأمر التالي.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

تمكين IPv6 مع UFW

إذا كانت خادمك مضبوطة مع IPv6، تأكد من تكوين UFW مع دعم IPv6 و IPv4. للتحقق من ذلك، افتح ملف تكوين UFW باستخدام محرر النصوص المفضل لديك.

$ sudo vi /etc/default/ufw

ثم تأكد من أن “IPV6” مضبوط على "yes" في ملف التكوين كما هو موضح.

IPV6=yes

احفظ وأغلق. ثم أعد تشغيل جدار الحماية بالأوامر التالية:

$ sudo ufw disable
$ sudo ufw enable

السماح باتصالات SSH على UFW

إذا كنت قد قمت بتمكين جدار الحماية UFW حتى الآن، فسيتم حجب جميع الاتصالات الواردة وإذا كنت متصلاً بالخادم الخاص بك عبر SSH من موقع بعيد، فلن تكون قادرًا على الاتصال به مرة أخرى.

لنقم بتمكين اتصالات SSH إلى الخادم الخاص بنا لمنع حدوث ذلك باستخدام الأمر التالي:

$ sudo ufw allow ssh

إذا كنت تستخدم منفذ SSH مخصص (على سبيل المثال المنفذ 2222)، فعليك فتح هذا المنفذ في جدار الحماية UFW باستخدام الأمر التالي.

$ sudo ufw allow 2222/tcp

لحظر جميع اتصالات SSH، اكتب الأمر التالي.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

تمكين منافذ محددة على UFW

يمكنك أيضًا فتح منفذ محدد في جدار الحماية للسماح بالاتصالات من خلاله إلى خدمة معينة. على سبيل المثال، إذا كنت ترغب في إعداد خادم ويب يستمع على المنفذ 80 (HTTP) و 443 (HTTPS) بشكل افتراضي.

فيما يلي بعض الأمثلة على كيفية السماح بالاتصالات الواردة إلى خدمات Apache.

فتح المنفذ 80 HTTP على UFW
$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
فتح المنفذ 443 HTTPS على UFW
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

السماح بنطاقات المنافذ على UFW

في افتراض أن لديك بعض التطبيقات التي ترغب في تشغيلها على مجموعة من المنافذ (5000-5003)، يمكنك إضافة جميع هذه المنافذ باستخدام الأوامر التالية.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

السماح بعناوين IP محددة

إذا كنت ترغب في السماح بالاتصالات على جميع المنافذ من عنوان IP محدد 192.168.56.1، فيجب عليك تحديد كلمة “from” قبل عنوان الIP.

$ sudo ufw allow from 192.168.56.1

السماح بعناوين IP محددة على منفذ محدد

للسماح بالاتصال على منفذ محدد (مثلاً منفذ 22) من جهازك المنزلي بعنوان الآي بي 192.168.56.1، فيجب عليك إضافة أي منفذ ورقم المنفذ بعد عنوان الآي بي كما هو موضح.

$ sudo ufw allow from 192.168.56.1 to any port 22

السماح بشبكات الشبكة إلى منفذ محدد

للسماح بالاتصالات لعناوين آي بي معينة تتراوح بين 192.168.1.1 إلى 192.168.1.254 إلى منفذ 22 (SSH), قم بتشغيل الأمر التالي.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

السماح بواجهة شبكة محددة

للسماح بالاتصالات بواجهة الشبكة المحددة eth2 إلى منفذ معين 22 (SSH), قم بتشغيل الأمر التالي.

$ sudo ufw allow in on eth2 to any port 22

حظر الاتصالات على UFW

بشكل افتراضي، تكون جميع الاتصالات الواردة محظورة، ما لم تقم بفتح الاتصال بشكل محدد على UFW. على سبيل المثال، لقد فتحت المنافذ 80 و 443 وهجمات على خادم الويب الخاص بك من الشبكة المجهولة 11.12.13.0/24.

لحظر جميع الاتصالات من نطاق الشبكة 11.12.13.0/24 المحدد، يمكنك استخدام الأمر التالي.

$ sudo ufw deny from 11.12.13.0/24

إذا كنت تريد فقط حظر الاتصالات على المنافذ 80 و 443، يمكنك استخدام الأوامر التالية.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

حذف قواعد UFW

هناك طريقتين لحذف قواعد UFW، عن طريق رقم القاعدة وعن طريق القاعدة الفعلية.

لحذف قواعد UFW باستخدام رقم القاعدة، أولاً يجب عليك إدراج القواعد بالأرقام باستخدام الأمر التالي.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

لحذف القاعدة رقم 1، استخدم الأمر التالي.

$ sudo ufw delete 1

الطريقة الثانية هي حذف القاعدة باستخدام القاعدة الفعلية، على سبيل المثال لحذف قاعدة، حدد رقم المنفذ مع البروتوكول كما هو موضح.

$ sudo ufw delete allow 22/tcp

تشغيل اختباري لقواعد UFW

يمكنك تشغيل أي أوامر ufw دون إجراء أي تغييرات فعلية في جدار الحماية النظام باستخدام العلم --dry-run، حيث يظهر هذا ببساطة التغييرات التي كان من المفترض أن تحدث.

$ sudo ufw --dry-run enable

إعادة ضبط جدار الحماية UFW

لسبب ما، إذا كنت ترغب في حذف / إعادة تعيين جميع قواعد جدار الحماية، اكتب الأوامر التالية، حيث سيعيد كل من التغييرات الخاصة بك ويبدأ من جديد.

$ sudo ufw reset
$ sudo ufw status

وظائف متقدمة لـ UFW

يمكن لجدار الحماية UFW إدارة أي شيء يفعله iptables. يمكن القيام بذلك باستخدام مجموعات مختلفة من ملفات القواعد، والتي ليست سوى ملفات نصية بسيطة iptables-restore.

لا يُسمح بضبط جدار الحماية UFW أو إضافة أوامر iptables الإضافية عبر أمر ufw، إنما هو مجرد مسألة تغيير النصوص التالية

  • /etc/default/ufw: الملف التكويني الرئيسي مع القواعد المحددة مسبقًا.
  • /etc/ufw/before[6].rules: في هذا الملف يتم حساب القواعد قبل الإضافة عبر أمر ufw.
  • /etc/ufw/after[6].rules: في هذا الملف يتم حساب القواعد بعد الإضافة عبر أمر ufw.
  • /etc/ufw/sysctl.conf: يتم استخدام هذا الملف لضبط شبكة النواة.
  • /etc/ufw/ufw.conf: يُمكّن هذا الملف ufw عند التمهيد.

هذا كل شيء! UFW هو واجهة أمامية ممتازة لـ iptables مع واجهة مستخدم ودية لتحديد قواعد معقدة بأمر واحد من ufw.

إذا كان لديك أي استفسارات أو أفكار لمشاركتها حول هذه المقالة عن ufw، استخدم نموذج التعليقات أدناه للوصول إلينا.

Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/