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

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

سعیده مهاجری
فایروال ابزاری برای نظارت و فیلتر کردن ترافیک ورودی و خروجی شبکه است. این کار با تعریف مجموعه ای از قوانین امنیتی تعیین می کند که اجازه دهد یا ترافیک خاصی را مسدود کند. اوبونتو با یک ابزار کانفیگ فایروال به نام UFW (فایروال آسان) ارسال می شود. یک نمای کاربر پسند برای مدیریت قوانین فایروال iptables است. هدف اصلی آن همان طور که از نامش مشخص است این است که مدیریت فایروال را آسان تر کند. در این مقاله نحوه استفاده از ابزار UFW برای کانفیگ و مدیریت فایروال در اوبونتو ۲۰٫۰۴ را به شما عزیزان آموزش خواهیم داد.
پیش نیازها:
فقط root یا کاربران دارای امتیاز sudo می توانند فایروال سیستم را مدیریت کنند. بهترین روش این است که دستورات اداری را به عنوان یک کاربر sudo به جای root اجرا کنید. اگر شما یک کاربر sudo در سیستم اوبونتو خود ندارید ، می توانید با دنبال کردن دستورالعمل های زیر آن را ایجاد کنید.

نصب UFW :

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

sudo apt updatesudo apt install ufw

بررسی وضعیت UFW :

پس از اتمام نصب ، با دستور زیر می توانید وضعیت UFW را بررسی کنید:

sudo ufw status verbose

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

Status: inactive

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

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

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

به طور پیش فرض فایروال UFW تمام اتصالات ورودی و ارسال را مسدود کرده و به همه اتصالات خروجی اجازه می دهد. این بدان معنی است که هرکسی که بخواهد به سرور شما دسترسی پیدا کند قادر به اتصال نخواهد بود ، مگر اینکه به طور خاص پورت را باز کنید. برنامه ها و سرویس هایی که روی سرور شما اجرا می شوند ، می توانند به دنیای خارج دسترسی داشته باشند. خط مشی های پیش فرض در فایل / etc / default / ufw تعریف شده اند و می توانند با تغییر دستی فایل و یا با دستور sudo ufw <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 روی پورت غیر استاندارد در حال اجرا است ، باید آن پورت را باز کنید. به عنوان مثال ، اگر daemon 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 را بزنید.

باز کردن Port ها :

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

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

محدوده Port :

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

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

آدرس IP خاص و port :

برای اجازه دادن به اتصالات در همه پورت ها از طریق یک source IP داده شده ، از کلمه کلیدی from و سپس آدرس source استفاده کنید. در اینجا مثالی از لیست سفید آدرس IP آورده شده است:
sudo ufw allow from 64.63.62.61
اگر می خواهید آدرس IP داده شده فقط به یک پورت خاص دسترسی داشته باشد ، از کلمه کلیدی به هر پورت و به دنبال آن شماره پورت استفاده کنید. به عنوان مثال ، برای دسترسی به پورت ۲۲ از یک ماشین با آدرس 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  و سپس نام رابط شبکه استفاده کنید:

sudo ufw allow in on eth2 to any port 3306

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

تنظیمات پیش فرض برای همه اتصالات ورودی تنظیم شده است و اگر آن را تغییر ندهید ، 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 استفاده کنید:
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 یا (ترجمه آدرس شبکه) در کرنل لینوکس است که با نوشتن مجدد آدرس ها و پورت های destination IP و source ، ترافیک شبکه را ترجمه می کند. با استفاده از 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 بر روی سرور Ubuntu 20.04 را نشان دادیم. اطمینان حاصل کنید که در حالیکه تمام اتصالات غیرضروری را محدود می کنید ، کلیه اتصالات ورودی را که برای عملکرد صحیح سیستم شما ضروری هستند ، مجاز کنید.

امیدواریم مطالب مورد پسند بوده باشد.

ما را در شتابان هاست همراهی کنید.😊

برچسب ها: دستورات لینوکس