نماد سایت وبلاگ شتابان هاست

نحوه راه اندازی فایروال با UFW در اوبونتو ۲۰٫۰۴

نحوه راه اندازی فایروال با UFW در اوبونتو 20.04

فایروال ابزاری برای نظارت و فیلتر کردن ترافیک شبکه ورودی و خروجی است. این کار با تعریف مجموعه ای از قوانین امنیتی تعیین می کند که اجازه دهد یا ترافیک خاصی را مسدود کند. اوبونتو با یک ابزار کانفیگ فایروال به نام UFW کار می کند. این یک front-end کاربر پسند برای مدیریت قوانین فایروال iptables است. هدف اصلی آن آسانتر کردن مدیریت فایروال است. در این مقاله با ما همراه باشید تا به شما عزیزان نحوه استفاده از ابزار UFW برای کانفیگ و مدیریت فایروال در اوبونتو ۲۰٫۰۴ را شرح دهیم. یک فایروال با کانفیگ مناسب یکی از مهمترین جنبه های امنیت کلی سیستم است.

پیش نیازها:

فقط root یا کاربران با امتیازات sudo می توانند فایروال سیستم را مدیریت کنند. بهترین روش اجرای وظایف مدیریتی به عنوان کاربر sudo است.

نصب UFW :

UFW بخشی از نصب استاندارد اوبونتو ۲۰٫۰۴ است و باید در سیستم شما نصب باشد. اگر به دلایلی نصب نشده است، می توانید بسته را با تایپ کردن دستورات زیر، نصب کنید:

sudo apt updatesudo apt install ufw

وضعیت UFW را بررسی کنید :

UFW به طور پیش فرض غیرفعال است. با دستور زیر می توانید وضعیت سرویس UFW را بررسی کنید:

sudo ufw status verbose

خروجی نشان می دهد که وضعیت فایروال غیر فعال است:

Status: inactive

اگر UFW فعال شود، خروجی به صورت تصویر زیر خواهد بود:

سیاست های پیش فرض UFW :

رفتار پیش فرض فایروال UFW مسدود کردن کلیه ترافیک شبکه ورودی و انتقال و اجازه دادن به ترافیک شبکه خروجی است. این بدان معناست که هرکسی که سعی در دسترسی به سرور شما داشته باشد قادر به اتصال نخواهد بود مگر اینکه شما به طور خاص پورت را باز کنید. برنامه ها و سرویس های در حال اجرا روی سرور شما قادر به دسترسی به خارج خواهند بود. سیاست های پیش فرض در فایل /etc/default/ufw تعریف شده و می توانند با تغییر دستی فایل یا با دستور sudo ufw default <policy> <chain> تغییر یابند. سیاست های فایروال پایه ای برای ایجاد قوانین پیچیده تر و تعریف شده توسط کاربر هستند. به طور کلی، سیاست های اولیه پیش فرض UFW نقطه شروع خوبی هستند.

پروفایل های برنامه :

پروفایل برنامه یک فایل متنی با فرمت INI است که خدمات را شرح می دهد و شامل قوانین فایروال برای سرویس است. پروفایل های برنامه در حین نصب بسته در دایرکتوری /etc/ufw/applications.d ایجاد می شوند. با تایپ کردن دستور زیر می توانید تمام پروفایل های برنامه موجود در سرور خود را لیست کنید:

sudo ufw app list

بسته به بسته های نصب شده روی سیستم شما، خروجی شبیه به دستورات زیر خواهد بود:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

برای یافتن اطلاعات بیشتر در مورد یک پروفایل خاص و قوانین شامل، از دستور زیر استفاده کنید:

sudo ufw app info 'Nginx Full'

خروجی نشان می دهد که پروفایل ‘Nginx Full’ پورت  ۸۰ و ۴۴۳  باز می کند.

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  ۸۰,۴۴۳/tcp

همچنین می توانید پروفایل های دلخواه خود را برای برنامه های خود ایجاد کنید.

فعال کردن UFW :

اگر به صورت ریموت به اوبونتو متصل می شوید، قبل از فعال کردن فایروال UFW، باید صریحاً به اتصالات SSH ورودی اجازه دهید. در غیر این صورت، دیگر نمی توانید به دستگاه متصل شوید. برای کانفیگ فایروال UFW خود برای اجازه دادن به اتصالات SSH ورودی، دستور زیر را تایپ کنید:

sudo ufw allow ssh
Rules updated
Rules updated (v6)
اگر SSH روی یک پورت غیر استاندارد اجرا می شود، باید آن پورت را باز کنید. به عنوان مثال، اگر ssh شما روی پورت ۷۷۲۲  است، دستور زیر را وارد کنید تا اتصالات در آن پورت مجاز شود:
sudo ufw allow 7722/tcp
اکنون که فایروال تنظیم شده است تا اتصالات SSH ورودی را امکان پذیر کند، می توانید با تایپ کردن دستور زیر آن را فعال کنید:
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

به شما اخطار داده می شود که فعال کردن فایروال ممکن است اتصالات ssh موجود را مختل کند، y  و سپس Enter را بزنید.

باز کردن پورت ها :

بسته به برنامه هایی که روی سیستم اجرا می شوند، ممکن است شما نیاز به باز کردن پورت های دیگر نیز داشته باشید. دستور کلی برای باز کردن پورت به شرح زیر است:

ufw allow port_number/protocol

در زیر چند روش برای اجازه دادن به اتصالات HTTP وجود دارد. اولین گزینه استفاده از نام سرویس است. UFW فایل /etc/services را برای پورت و پروتکل سرویس مشخص شده بررسی می کند:

sudo ufw allow http

همچنین می توانید شماره پورت و پروتکل را مشخص کنید:

sudo ufw allow 80/tcp

وقتی هیچ پروتکلی داده نمی شود، UFW قوانینی را برای tcp و udp ایجاد می کند. گزینه دیگر استفاده از پروفایل برنامه است. در این مورد، Nginx HTTP است:

sudo ufw allow 'Nginx HTTP'
UFW همچنین از دستور دیگری برای تعیین پروتکل با استفاده از کلمه کلیدی proto پشتیبانی می کند:
sudo ufw allow proto tcp to any port 80

محدوده پورت :

UFW همچنین به شما امکان می دهد محدوده پورت را باز کنید. پورت های شروع و انتها توسط یک (:) از هم جدا می شوند و شما باید پروتکل با tcp یا udp را مشخص کنید. برای مثال، اگر شما می خواهید اجازه استفاده از پورت ۷۱۰۰ تا ۷۲۰۰ در هر دو پروتکل  tcp و udp را بدهید، می توانید دستور زیر را اجرا کنید:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

آدرس IP خاص و شماره پورت :

برای اجازه دادن به اتصالات روی همه پورت ها از یک IP منبع داده شده، از کلمه کلیدی from و به دنبال آن آدرس منبع استفاده کنید. در اینجا نمونه ای از قرار دادن یک آدرس IP در لیست سفید آورده شده است:

sudo ufw allow from 64.63.62.61

اگر می خواهید به آدرس IP داده شده فقط به یک پورت خاص اجازه دسترسی داشته باشید، از کلمه کلیدی to any port و سپس شماره پورت استفاده کنید. به عنوان مثال، برای اجازه دسترسی به پورت ۲۲ از دستگاهی با آدرس IP 64.63.62.61، وارد کنید:

sudo ufw allow from 64.63.62.61 to any port 22

زیرشبکه های :

روش اجازه دادن به اتصالات به یک زیرشبکه از آدرس های IP مشابه با استفاده از یک آدرس IP واحد است. تنها تفاوت این است که شما باید netmask را مشخص کنید. در مثال زیر، نشان میدهد که چگونه به IP آدرس ها از ۱۹۲٫۱۶۸٫۱٫۱ تا ۱۹۲٫۱۶۸٫۱٫۲۵۴ در پورت ۳۳۶۰  (MySQL)اجازه دسترسی داده شود:

sudo ufw allow from 192.168.1.0/24 to any port 3306

کارت شبکه خاص :

برای اجازه دادن به اتصالات در یک کارت شبکه خاص، از کلمه کلیدی in on و به دنبال آن نام کارت شبکه استفاده کنید:

sudo ufw allow in on eth2 to any port 3306

رد کردن اتصالات :

خط مشی پیش فرض برای همه اتصالات ورودی deny تنظیم شده است، و اگر آن را تغییر نداده اید، UFW تمام اتصالات ورودی را مسدود می کند مگر اینکه شما به طور خاص اتصال را باز کنید. نوشتن قوانین deny همان نوشتن قوانین allow است. شما فقط باید به جای allow از کلمه کلیدی deny استفاده کنید. فرض کنید پورت های ۸۰ و ۴۴۳ را باز کرده اید و سرور شما از سوی شبکه ۲۳٫۲۴٫۲۵٫۰/۲۴ مورد حمله بدافزارها قرار گرفته است. برای جلوگیری تمام اتصالات از ۲۳٫۲۴٫۲۵٫۰/۲۴، دستور زیر را اجرا کنید:

sudo ufw deny from 23.24.25.0/24

در اینجا یک مثال از عدم دسترسی به پورت های ۸۰ و ۴۴۳ از ۲۳٫۲۴٫۲۵٫۰/۲۴ آورده شده است که می توانید از دستور زیر استفاده کنید:

sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443

حذف قوانین UFW :

دو روش مختلف برای حذف قوانین UFW وجود دارد که یکی با شماره قانون و دیگری تعیین قاعده واقعی است. حذف قوانین توسط شماره قانون آسانتر است، به خصوص هنگامی که در UFW تازه وارد هستید. برای حذف یک قانون توسط شماره قانون، ابتدا باید شماره قانونی را که می خواهید حذف کنید پیدا کنید. برای به دست آوردن لیستی از شماره های ، از دستور ufw status numbered استفاده کنید:
sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ ۱] ۲۲/tcp                     ALLOW IN    Anywhere
[ ۲] ۸۰/tcp                     ALLOW IN    Anywhere
[ ۳] ۸۰۸۰/tcp                   ALLOW IN    Anywhere
برای حذف قانون شماره ۳، قانونی که اجازه اتصال به پورت ۸۰۸۰ را می دهد، باید وارد کنید:
sudo ufw delete 3
روش دوم حذف یک قانون با مشخص کردن قانون واقعی است. به عنوان مثال، اگر یک قانون برای باز کردن پورت ۸۰۶۹ اضافه کرده‌اید، می‌توانید آن را با موارد زیر حذف کنید:
sudo ufw delete allow 8069

غیرفعال کردن UFW :

اگر به هر دلیلی می خواهید UFW را متوقف کنید و تمام قوانین را غیرفعال کنید، می توانید از دستور زیر استفاده کنید:

sudo ufw disable

بعداً اگر می‌خواهید UTF را دوباره فعال کنید و همه قوانین را فعال کنید، فقط دستور زیر را تایپ کنید:

sudo ufw enable

ریست کردن UFW :

تنظیم مجدد UFW ،UFW را غیرفعال می کند و کلیه قوانین فعال را حذف می کند. اگر می خواهید همه تغییرات خود را برگردانید و تازه شروع کنید، این کار مفید است. برای تنظیم مجدد UFW، دستور زیر را تایپ کنید:

sudo ufw reset

IP Masquerading :

IP Masquerading گونه‌ای از NAT در kernel لینوکس است که ترافیک شبکه را با بازنویسی آدرس‌ها و پورت‌های IP مبدا و مقصد ترجمه می‌کند. با IP Masquerading، می توانید به یک یا چند دستگاه در یک شبکه خصوصی اجازه دهید با استفاده از یک دستگاه لینوکس که به عنوان gateway عمل می کند، با اینترنت ارتباط برقرار کنند. کانفیگ IP Masquerading با UFW شامل چندین مرحله است. ابتدا باید انتقال IP را فعال کنید. برای انجام این کار، فایل /etc/ufw/sysctl.conf را باز کنید:
sudo nano /etc/ufw/sysctl.conf
خطی را که net.ipv4.ip_forward = 1 می خواند را بیابید و از کامنت خارج کنید:
net/ipv4/ip_forward=1
در مرحله بعد، شما باید UFW را برای اجازه دادن به بسته های ارسال شده کانفیگ کنید. فایل کانفیگ UFW را باز کنید:
sudo nano /etc/default/ufw
کلید DEFAULT_FORWARD_POLICY را پیدا کنید و مقدار را از DROP به ACCEPT تغییر دهید:
DEFAULT_FORWARD_POLICY="ACCEPT"
اکنون باید خط مشی پیش فرض را برای زنجیره POSTROUTING در جدول nat و قانون masquerade تنظیم کنید. برای انجام این کار، فایل /etc/ufw/before.rules را باز کنید و دستور زیر را اضافه کنید:
sudo nano /etc/ufw/before.rules
دستورات زیر را اضافه کنید:
#NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]# Forward traffic through eth0 - Change to public network interface
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT
فراموش نکنید که eth0 را در خط -A POSTROUTING جایگزین کنید تا با نام رابط شبکه عمومی مطابقت داشته باشد. پس از اتمام کار، فایل را ذخیره کنید و ببندید. در نهایت، با غیرفعال کردن و فعال کردن مجدد UFW، قوانین UFW را مجدد دانلود کنید:
sudo ufw disablesudo ufw enable

جمع بندی :

ما به شما نشان دادیم که چگونه یک فایروال UFW را روی سرور اوبونتو ۲۰٫۰۴ خود نصب و کانفیگ کنید. اطمینان حاصل کنید که به تمام اتصالات ورودی که برای عملکرد صحیح سیستم شما ضروری هستند اجازه دهید و در عین حال تمام اتصالات غیر ضروری را محدود کنید. برای اطلاعات بیشتر در مورد این موضوع، به صفحه Man UFW مراجعه کنید.

امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊
خروج از نسخه موبایل