راه‌اندازی فایروال با UFW

آموزش نحوه راه‌اندازی فایروال با UFW در سرور اوبونتو و دبیان

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

پیش‌ازاین، راه‌اندازی فایروال از‌طریق ابزارهای پیچیده انجام می‌شد. بسیاری از این ابزارها مانند iptables فانکشن‌های زیادی دارند؛ اما برای یادگیری و درک آن‌ها باید بسیار تلاش کنید. امروزه، گزینه‌ی بهتری مانند UFW یا فایروال وجود دارد. UFW پیش‌نیازی برای iptables است که درمقایسه‌با سایر ابزارهای مدیریت فایروال، رابط کاربری ساده‌تری دارد. لینوکس UFW را پشتیبانی می‌کند و به‌طور پیش‌فرض UFW را می‌توانید در بسیاری از توزیع‌های لینوکس نصب کنید.

در این مقاله آموزشی از وبلاگ پارس پک، مراحل راه‌اندازی فایروال با UFW در سرور اوبونتو و دبیان را به‌طور کامل توضیح خواهیم داد. همچنین، با دنبال‌کردن این نوشتار می‌توانید:

  • قوانین پیش‌فرض UFW را تنظیم کنید.
  • برای اتصالات پورت‌ها و آدرس‌های IP اجازه صادر یا آن‌ها را مسدود کنید.
  • قوانین تنظیم‌شده را غیرفعال کنید.
  • UFW را غیرفعال یا فعال کنید.
  • همه‌چیز را به تنظیمات پیش‌فرض برگردانید.

پیش‌نیازها

  • سرور اوبونتو یا دبیان
  • کاربر non-root با امتیازات sudo

استفاده از IPv6 با UFW

اگر سرور مجازی VPS شما برای IPv6 پیکربندی شده است، پس مطمئن شوید که UFW برای پشتیبانی از IPv6 هم پیکربندی شده باشد تا قوانین فایروال IPv4 و IPv6 را پیکربندی کند. برای انجام این کار، باید ابتدا فایل پیکربندی UFW را در ویرایشگر متن دلخواهتان باز کنید. برای این کار می‌توانید از دستور nano استفاده کنید:

$ sudo nano /etc/default/UFW

مطمئن شوید که IPV6 روی Yes تنظیم شده است:

/etc/default/UFW
# /etc/default/UFW
#

# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=yes
…

پس از اعمال تغییرات، فایل را ذخیره کنید و از آن خارج شوید. اگر از کامند nano استفاده می‌کنید، کلیدهای CTRL + X ،Y و سپس Enter را فشار دهید.

حالا فایروال خود را پس از غیرفعال‌کردن با استفاده از دستور زیر مجدداً راه‌اندازی کنید:

$ sudo UFW disable
Output
Firewall stopped and disabled on system startup

سپس، دوباره آن را فعال کنید:

$ sudo UFW enable
Output
Firewall is active and enabled on system startup

اکنون راه‌اندازی فایروال با UFW انجام شده و در‌صورت لزوم، هر دو قوانین فایروال IPv4 و IPv6 را پیکربندی می‌کند.

راه‌اندازی فایروال UFW با IPV6

برای آشنایی کامل با فایروال وب یا وف و موارد استفاده از آن مقاله‌ی زیر را بخوانید.

فایروال وب چیست؟

تنظیم پیش‌فرض‌های UFW

وجود برخی قوانین پیش‌فرض برای اجازه عبور و ردکردن اتصالات می‌تواند به افزایش و بهبود عملکرد فایروال کمک کند. درواقع، به‌طور پیش‌فرض UFW تمام اتصالات (Connection) ورودی را رد و همه اتصالات خروجی را مجاز می‌کند. این بدان‌معناست هرکسی که قصد داشته باشد به سرور شما دسترسی داشته باشد، نمی‌تواند به آن متصل باشد؛ در‌حالی‌که هر برنامه‌ای درون سرور قادر به اتصال خارجی است.

برای تنظیم پیش‌فرض‌های UFW، ابتدا باید از دستور زیر استفاده کنید:

$ sudo UFW default deny incoming
Output
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)

سپس، دستور زیر را به‌کار ببرید:

$ sudo UFW default allow outgoing
Output
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

توجه: اگر می‌خواهید محدودیت بیشتری اعمال کنید، تمامی درخواست‌های خروجی را می‌توانید رد کنید. برای مثال، اگر سرور ابری مشترکی دارید، از ورود هر نوع Shell Connection می‌توانید جلوگیری کنید. گفتنی است این کار مدیریت فایروال را دشوارتر می‌کند؛ زیرا باید قوانینی را برای همه اتصالات خروجی نیز تنظیم کنید. با استفاده از دستور زیر، می‌توانید این مورد را به‌عنوان پیش‌فرض تنظیم کنید:

$ sudo UFW default deny outgoing

امکان اتصال به فایروال

اجازه‌دادن به اتصالات به تغییر قوانین فایروال نیاز دارد که این کار با صدور دستورها در ترمینال امکان‌پذیر است. برای مثال، اگر فایروال خود را فعال کنید، تمام اتصالات ورودی را رد می‌کند؛ اما اگر ازطریق SSH به سرور خود وصل شده‌اید، انجام این کار مشکل ایجاد می‌کند و شما دیگر دسترسی اتصال به سرور را ندارید. بنابراین برای جلوگیری از این مشکل، باید اتصالات SSH به سرور را فعال کنید. برای انجام این کار، از کامند زیر استفاده کنید:

$ sudo UFW allow ssh

درصورت موفقیت‌آمیز‌بودن تغییرات وارد‌شده، خروجی زیر را دریافت خواهید کرد:

Output
Rule added
Rule added (v6)

UFW با برخی پیش‌فرض‌ها مانند دستور SSH که در مثال قبلی استفاده شد، ارائه می‌شود. علاوه‌براین، اتصالات ورودی به پورت 22/tcp را می‌توانید مجاز کنید:

$ sudo UFW allow 22/tcp

دقت کنید که اگر این کار را بعد از اجرای مجوز SSH انجام دهید، پیام زیر را دریافت خواهید کرد:

Output
Skipping adding existing rule
Skipping adding existing rule (v6)

اگر سرور SSH شما روی پورت 2222 اجرا می‌شود، کافی است که آن را با پورت 22 جایگزین کنید. این کار را به‌صورت زیر انجام دهید:

$ sudo UFW allow 2222/tcp
Output
Rule added
Rule added (v6)
تنظیم فایروال UFW در Ubuntu و Debian

چگونه اتصالات فایروال را بررسی کنیم؟

دستورات فایروال لینوکس به طور کامل در مقاله‌ی زیر آمده است.

دستورات فایروال لینوکس

امنیت سرورهای وب

برای ایمن‌کردن وب‌سرور با دسترسی به پروتکل انتقال فایل (FTP)، باید به اتصالات پورت 80/tcp اجازه دهید. اجازه‌دادن به اتصالات پورت 80 روی سرورهای وب مانند Apache و Nginx که به درخواست‌های اتصال HTTP پاسخ می‌دهند، می‌تواند مفید باشد. اتصال به پورت 80/tcp را با استفاده از دستور زیر مجاز کنید:

$ sudo UFW allow 80/tcp

UFW معمولاً قوانین موردنیاز برای عملکرد وب‌سرور را به پروفایل‌ها ارائه می‌دهد؛ در‌غیر‌این‌صورت، نمایه‌های وب‌سرور ممکن است به‌عنوان WWW ذخیره و مانند نمونه‌های زیر به‌صورت ftp یا tcp باز شوند:

$ sudo UFW allow www

همچنین، می‌توانید از ftp یا پورت 21 برای اتصال FTP استفاده کنید:

$ sudo UFW allow ftp
$ sudo UFW allow 21/tcp

برای اتصالات FTP، باید اتصالات پورت 20 را نیز مجاز کنید. برای این کار از دستور زیر بهره ببرید:

$ sudo UFW allow 20/tcp

تنظیمات شما به پورت‌ها و سرویس‌هایی بستگی دارد که باید باز کنید؛ به‌همین‌دلیل، ممکن است برای پیداکردن آن‌ها چندین‌بار یک مسیر را امتحان کنید. به‌خاطر بسپارید که اتصال SSH خود را نیز مجاز نگه دارید.

تعیین محدوده پورت

با استفاده از UFW می‌توانید محدوده‌ پورت‌ را نیز مشخص کنید. برای انجام این کار، ابتدا باید پورت را در انتهای محدوده برنامه مشخص و سپس اجرای آن را با واردکردن علامت دو نقطه " : " دنبال کنید. درنهایت، باید مشخص کنید که می‌خواهید قوانین روی کدام پروتکل (اعم از tcp یا udp) اعمال شوند.

به‌عنوان‌ مثال، برای اجازه‌دادن پورت‌های 1000 تا 2000، از کامند زیر استفاده کنید:

$ sudo UFW allow 1000:2000/tcp

علاوه‌براین، دستور زیر اتصال پورت‌های 1234 تا 4321 را رد می‌کند:

$ sudo UFW deny 1234:4321/udp

تعیین آدرس‌های IP

با کمک UFW می‌توانید آدرس IP را مشخص کنید. مطمئن شوید که آدرس IP را با اطلاعات خود به‌صورت زیر جایگزین می‌کنید:

$ sudo UFW allow from your_server_ip
راه‌اندازی فایروال UFW در اوبونتو و دبیان

چگونه فایروال UFW را در اوبونتو و دبیان نصب و پیکربندی کنیم؟

روش‌های کاربردی برای افزایش امنیت VPS را در مقاله‌ی زیر از دست ندهید.

9 روش افزایش امنیت سرور مجازی

رد‌کردن اتصالات (Denying Connections)

اگر می‌خواهید همه پورت‌های سرور خود را باز کنید (البته این کار را توصیه نمی‌کنیم)، می‌توانید به همه اتصالات اجازه دهید و سپس هر پورتی که نمی‌خواهید به آن دسترسی داشته باشید، رد کنید. مثال زیر نحوه ردکردن دسترسی به پورت 80 است:

$ sudo UFW deny 80/tcp

حذف قوانین

اگر می‌خواهید برخی از قوانینی که اجرا کرده‌اید، حذف کنید، دستور Delete را به‌کار ببرید و به‌صورت زیر قانون مدنظرتان را حذف کنید:

$ sudo UFW delete allow 80/tcp
Output
Rule deleted
Rule deleted (v6)

اگر قوانین طولانی و پیچیده باشند، رویکرد دومرحله‌ای جایگزینی وجود دارد. ابتدا فهرستی شماره‌گذاری‌شده از قوانین جاری ایجاد کنید:

$ sudo UFW status numbered

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

$ sudo UFW delete number
Output
Status: active
To Action From
-- ------ ----
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 22/tcp ALLOW IN Anywhere
[ 3] 2222/tcp ALLOW IN Anywhere
[ 4] 80 ALLOW IN Anywhere
[ 5] 20/tcp ALLOW IN Anywhere
…

به‌عنوان‌ مثال، اگر پورت 80 شماره 4 در فهرست است، برای حذف آن از دستور زیر استفاده کنید. اگر می‌خواهید عملیات را ادامه دهید، ممکن است از شما نیز سؤال شود. با واردکردن بله (y) یا خیر (n) می‌توانید تصمیم بگیرید:

$ sudo UFW delete 4
Output
Deleting:
allow 80
Proceed with operation (y|n)? y
Rule deleted (v6)

فعال‌کردن UFW

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

$ sudo UFW enable
Output
Firewall is active and enabled on system startup

برای تأیید اعمال تغییراتتان‌، وضعیت را با کامند زیر بررسی و فهرست قوانین را مرور کنید:

$ sudo UFW status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
22/tcp ALLOW Anywhere
2222/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
80/tcp DENY Anywhere
…

همچنین، برای دریافت خروجی جامع‌تر می‌توانید از دستور verbose استفاده کنید:

$ sudo UFW status verbose

برای غیرفعال‌کردن UFW، کافی است دستور زیر را به‌کار ببرید:

$ sudo UFW disable
Output
Firewall stopped and disabled on system startup

بازیابی تنظیمات پیش‌فرض

اگر به‌دلایلی نیاز دارید که قوانین سرور ابری خود را به تنظیمات پیش‌فرض بازیابی کنید، با کامند UFW reset می‌توانید این کار را انجام دهید. به این نکته توجه کنید که قبل از ریست‌کردن، درخواستی برای نوشتن y یا n دریافت خواهید کرد؛ زیرا انجام این کار ممکن است اتصالات SSH موجود را مختل کند:

$ sudo UFW reset
Output
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/UFW/user.rules.20220217_190530'
Backing up 'before.rules' to '/etc/UFW/before.rules.20220217_190530'
Backing up 'after.rules' to '/etc/UFW/after.rules.20220217_190530'
Backing up 'user6.rules' to '/etc/UFW/user6.rules.20220217_190530'
Backing up 'before6.rules' to '/etc/UFW/before6.rules.20220217_190530'
Backing up 'after6.rules' to '/etc/UFW/after6.rules.20220217_190530'

دقت کنید که ریست تنظیمات پیش‌فرض، UFW را غیرفعال و قوانینی را حذف می‌کند که قبلاً تعریف کرده‌اید. اکنون، کار با UFW را می‌توانید شروع و قوانین و اتصالات خود را مطابق با اولویتتان سفارشی‌سازی کنید.

جمع‌بندی

فایروال از اجزای مهم‌ و اصولی مدیریت و ایمن‌سازی سرورهای ابری به‌شمار می‌رود. در‌حقیقت با فعال‌کردن UFW، تمامی ارتباطات و اتصالات به سرور از‌طریق این ابزار کنترل می‌شود. فایروال از ورود حملات مخرب، هکرها، دسترسی‌های غیرمجاز و… به سرور جلوگیری می‌کند و همین امر باعث افزایش امنیت سرور ابری می‌شود. برای نصب و راه‌اندازی فایروال به ابزار خاصی نیازی ندارید و به‌راحتی این کار را می‌توانید انجام دهید.

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

سؤالات متداول

1. فرایند راه‌اندازی فایروال UFW در لینوکس چگونه است؟

نحوه راه‌اندازی فایروال با UFW در اوبونتو 18.04 به‌صورت زیر است:

  • UFW را نصب کنید.
  • وضعیت UFW را بررسی کنید.
  • خط‌‌مشی پیش‌فرض UFW را بررسی کنید.
  • پروفایل‌های برنامه را بررسی کنید.
  • اتصالات SSH را مجاز کنید.
  • UFW را فعال کنید.
  • اجازه اتصال به سایر پورت‌ها را بدهید. پورت‌های 80 – HTTP و 443 – HTTPS و 8080 را باز کنید.
  • درنهایت، محدوده پورت را مجاز کنید.

2. آیا به فایروال روی سرور اوبونتو نیاز داریم؟

درمجموع، باید بگوییم که نیاز به نگرانی نیست؛ زیرا لینوکس حتی بدون فایروال فعال همچنان امن است. به‌طور پیش‌فرض، اکثر توزیع‌هایی مانند اوبونتو و لینوکس مینت پورت باز ندارند؛ بنابراین، عوامل مخرب نمی‌توانند به کامپیوترتان دسترسی داشته باشند. باوجوداین‌، توصیه می‌کنیم فایروال را فعال کنید.

3. آیا سرور ابری دبیان UFW دارد؟

همان‌طور‌که اشاره کردیم، دبیان به‌طور پیش‌فرض UFW را نصب نمی‌کند. اگر تمام مطالب گفته‌شده در این مقاله را دنبال کرده باشید، UFW را قبلاً نصب و فعال کرده‌اید؛ وگر‌نه همین‌حالا آن را با استفاده از دستور apt نصب کنید:

$ sudo apt install UFW

  • با خدمات ابری پارس آشنا شوید

    اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم

    ابر سرور

    ابر سرور

    با ابرسرورها می‌توانید سرور با سیستم‌عامل دلخواه خود را در چند دقیقه انتخاب و نصب نموده و آزادانه منابع سخت‌افزاری که در نظر دارید را، در زمان دلخواه به سرور خود بیافزایید و تنها برای منابع مورد نیاز سرور، هزینه پرداخت نمایید.

    هایبرید سرور

    هایبرید سرور

    هایبرید سرورها نسل جدید و پیشرفته سرورهای اختصاصی هستند که با پنل قدرتمند ابری ارائه می‌شوند. در هایبرید سرورها علاوه بر ارائه سخت‌افزار مستقل، امکانات سخت‌افزاری ویژه‌ای نیز در نظر گرفته شده است.

    ماکرو سرور

    ماکرو سرور

    ماکرو سرور محصولی ویژه است که برای دریافت بالاترین کیفیت سخت‌افزاری طراحی شده است. در شرایطی که نیازمند سخت‌افزاری قدرتمند برای سرور خود هستید، ماکرو سرورها منابع سخت‌افزاری مورد نیاز را برای شما فراهم می‌کنند.

    هاست ابری

    هاست ابری

    در هاست ابری برخلاف یک هاست اشتراکی، سایت‌های پر بازدید نیز بسادگی می‌توانند از خدمات میزبانی استفاده کنند، بدون آنکه درگیر دغدغه‌های مدیریت سرور شوند. همواره تنها برای آن میزان از منابع سخت‌افزاری که نیاز دارید هزینه می‌پردازید و دیگر نیازی به پرداخت هزینه‌های غیر موجه، در ابتدای فعالیت وب سایت خود، نخواهید داشت.

    هاست دانلود

    هاست دانلود

    سیاری از مدیران سایت‌های دانلود و یا سایت‌هایی که با ترافیک بالایی برای به اشتراک‌گذاری فایل‌های خود روبرو هستند، عمدتا با مشکلاتی مانند هزینه‌های گزاف زیرساختی و یا مصرف بالای منابع سخت‌افزاری روبرو می‌شوند. از همین رو پارس‌پک با معرفی فضای هاست دانلود برای این دسته از کاربران، محصول مناسبی را پیش‌بینی نموده است.

    مطالعه این مطالب نیز پیشنهاد می‌شود

    مقالات و نظرات اعضای تیم ما درباره تکنولوژی، روزهای کاری و چیزای دیگر…

  • کلیه حقوق برای پارس پک محفوظ می باشد.

    Copyright © 2022 ParsPack Cloud Computing Technology ® , All Rights Reserved.