
آموزش نحوه راهاندازی فایروال با UFW در سرور اوبونتو و دبیان
فایروال یکی از جنبههای مهم امنیتی هر سیستم است. درحقیقت، فایروال از ورود ترافیکهای مخرب و هکرها و دسترسیهای غیرمجاز به سیستمتان جلوگیری میکند. عملکرد فایروال بدینصورت است که بستهها را بین شبکهها ردوبدل و مسیریابی میکند. بدینترتیب، ترافیکهای ورودیوخروجی را میتواند کنترل کند و براساس قوانین تعریفشده اجازه ورود و دسترسی را به کاربر دهد.
پیشازاین، راهاندازی فایروال ازطریق ابزارهای پیچیده انجام میشد. بسیاری از این ابزارها مانند iptables فانکشنهای زیادی دارند؛ اما برای یادگیری و درک آنها باید بسیار تلاش کنید. امروزه، گزینهی بهتری مانند UFW یا فایروال وجود دارد. UFW پیشنیازی برای iptables است که درمقایسهبا سایر ابزارهای مدیریت فایروال، رابط کاربری سادهتری دارد. لینوکس UFW را پشتیبانی میکند و بهطور پیشفرض UFW را میتوانید در بسیاری از توزیعهای لینوکس نصب کنید.
در این مقاله آموزشی از وبلاگ پارس پک، مراحل راهاندازی فایروال با UFW در سرور اوبونتو و دبیان را بهطور کامل توضیح خواهیم داد. همچنین، با دنبالکردن این نوشتار میتوانید:
- قوانین پیشفرض UFW را تنظیم کنید.
- برای اتصالات پورتها و آدرسهای IP اجازه صادر یا آنها را مسدود کنید.
- قوانین تنظیمشده را غیرفعال کنید.
- UFW را غیرفعال یا فعال کنید.
- همهچیز را به تنظیمات پیشفرض برگردانید.
- پیشنیازها
- استفاده از IPv6 با UFW
- تنظیم پیشفرضهای UFW
- امکان اتصال به فایروال
- ردکردن اتصالات (Denying Connections)
- حذف قوانین
- فعالکردن 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)

چگونه اتصالات فایروال را بررسی کنیم؟
دستورات فایروال لینوکس به طور کامل در مقالهی زیر آمده است.
دستورات فایروال لینوکسامنیت سرورهای وب
برای ایمنکردن وبسرور با دسترسی به پروتکل انتقال فایل (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 را در اوبونتو و دبیان نصب و پیکربندی کنیم؟
روشهای کاربردی برای افزایش امنیت 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