تاریخ امروز۱۴۰۳-۰۴-۰۳

نصب فایروال UFW در اوبونتو

نصب فایروال UFW در اوبونتو چگونه است و چه نقشی در امنیت سرور لینوکس دارد. فایروال ابزاری است که عمدتاً برای امنیت شبکه استفاده می‌شود. امروزه، با توجه به تهدیدات روزافزون شبکه‌ای، استفاده از یک فایروال قدرتمند و قابل اطمینان برای محافظت از سیستم بسیار ضروری است. یکی از فایروال‌های محبوب و ساده در سیستم‌عامل اوبونتو،UFW (Uncomplicated Firewall) است که با استفاده از این ابزار ساده و قدرتمند، قادر خواهید بود ترافیک شبکه خود را کنترل و از تهدیدات امنیتی برای سیستم پیشگیری کنید.

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

UFW چیست

فایروال UFW یا Uncomplicated Firewall، یک چارچوب کاربر پسند برای مدیریت netfilter و یک رابط خط فرمان برای کار با فایروال ارائه می‌دهد و امکان تنظیم قوانین فایروال را با استفاده از دستورات ساده‌تر و بدون نیاز به دانش عمیق در زمینه iptables فراهم می‌کند.

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

UFW با ارائه یک رابط کاربری ساده و فرمان‌های مبتنی بر متن، تنظیم و کنترل فایروال iptables را برای کاربران مبتدی و کاربران عادی آسان‌تر می‌کند.

برای کسب اطلاعات بیشتر درباره این فایروال، شما را به خواندن مقاله UFW چیست دعوت می‌نماییم تا با دستورات کابردی آن بیشتر آشنا شوید.

پیش نیاز نصب UFW در اوبونتو

برای نصب فایروال UFW در اوبونتو نیاز به یک سرور ابری لینوکسی با توزیع اوبونتو همراه با دسترسی root یا sudo دارید.

به‌طور پیش‌فرض، UFW در سیستم اوبونتو نصب شده است. برای اطمینان از عدم حذف آن دستور زیر را اجرا کنید.

sudo apt install ufw

پیکربندی IPv6 در UFW

آموزش نصب فایروال UFW در اوبونتو با در نظر گرفتن IPv4 نوشته شده است، اما تا زمانی که آن را فعال کنید برای IPv6 نیز فعال خواهد ماند.

اگر سرور اوبونتو شما IPv6 را فعال کرده است، مطمئن شوید که UFW برای پشتیبانی از IPv6 پیکربندی شده است تا علاوه بر IPv4، قوانین فایروال IPv6 را نیز مدیریت کند.

برای انجام این کار، پیکربندی UFW را با nano یا ویرایشگر مورد نظر خود باز کنید.

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

sudo nano /etc/default/ufw

در صورتی که سیستم شما IPV6 را پیشتیبانی کند، خروجی زیر را دریافت خواهید کرد.

/etc/default/ufw excerpt

IPV6=yes

پس از مشاهده خروجی و اطمینان از اینک سرور لینوکسی شما IPV6 را پشتیبانی می‌کند، فایل را ذخیره کنید و ببندید.

اکنون، هنگامی که UFW فعال شود، برای نوشتن هر دو قانون فایروال IPv۴ و IPv۶ پیکربندی خواهد شد.

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

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

تنظیم قوانین پیش فرض در فایروال UFW

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

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

در ادامه مطلب نصب فایروال UFW در اوبونتو، ابتدا با اجرای دستور زیر قوانین UFW را به حالت پیش فرض برگردانید.

sudo ufw default deny incoming
sudo ufw default allow outgoing

با اجرای این دستور، خروجی‌های زیر را دریافت خواهید کرد.

Output
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

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

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

دسترسی به اتصالات SSH

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

این بدان معناست که اگر می‌خواهید سرور به این نوع درخواست‌ها پاسخ دهد، باید قوانینی ایجاد کنید که صریحاً به اتصالات ورودی قانونی اجازه می‌دهد. برای مثال اتصالات SSH یا HTTP.

اگر از سرور ابری استفاده می‌‌کنید، احتمالاً می‌‍‌خواهید به اتصالات SSH ورودی اجازه دهید تا بتوانید به سرور خود متصل شوید و آن را مدیریت کنید.

برای پیکربندی سرور خود برای اجازه دادن به اتصالات SSH ورودی، لازم است دستور زیر را اجرا کنید.

sudo ufw allow ssh

اجرای این دستور، یک قانون جدید از فایروال ایجاد می‌کند و به تمام اتصالات پورت ۲۲ (پورت پیش‌فرض SSH) اجازه دسترسی می‌دهد.

درواقع، با تعیین SSH به‌عنوان سرویس مجاز در فایل /etc/services، فایروال UFW تشخیص می‌دهد که باید به درخواست‌های SSH پاسخ دهد.

البته به جای نوشتن عنوان سرویس می‌توانید از شماره پورت استفاده کنید و دستور بالا را به‌صورت زیر نیز بنویسید.

sudo ufw allow 22

اگر تنظیمات SSH خود را روی پورت دیگری پیکربندی کرده‌اید، باید شماره پورت آن را وارد کنید.

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

sudo ufw allow 2222

اکنون که فایروال شما به گونه‌ای پیکربندی شده است که به اتصالات ورودی SSH اجازه دهد، می‌توانید UFW را فعال کنید.

آموزش فعال سازی UFW
آموزش فعال سازی UFW

فعال سازی UFW

برای فعال کردن UFW، دستور زیر را اجرا کنید.

sudo ufw enable

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

دسترسی به سایر اتصالات

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

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

HTTP با پورت ۸۰ برای وب‌سرورهای رمزگذاری نشده مورد استفاده قرار می‌گیرد. با اجرای دستور زیر دسترسی‌های لازم را به آن بدهید.

sudo ufw

برای اینکار می‌توانید از شماره پورت HTTP نیز استفاده کنید.

 sudo UFW allow 80

HTTPS با پورت ۴۴۳ برای وب‌سرورهای رمزگذاری شده مورد استفاده قرار می‌گیرد. با اجرای دستور زیر دسترسی‌های لازم را به آن بدهید.

sudo UFW allow https

همچنین می‌توانید از شماره پورت HTTPS استفاده کنید.

 sudo UFW allow 443

در ادامه مطلب نصب فایروال UFW در اوبونتو، شما را با روش‌های مختلفی که بتوانید به یک پورت یا سرویس شناخته شده دسترسی دهید، آشنا خواهیم کرد.

دسترسی به آدرس‌ IPهای خاص

هنگام کار با UFW، می‌توانید آدرس‌های IP یک سرویس را برای صدور دسترسی مشخص کنید. به عنوان مثال، اگر می‌خواهید اتصالات از یک آدرس IP خاص، مانند آدرس IP محل کار خود ۲۰۳٫۰٫۱۱۳٫۴ را مجاز کنید، از دستور زیر قبل از آی‌پی استفاده کنید.

sudo ufw allow from 203.0.113.4

همچنین می‌توانید یک پورت خاص را مشخص کنید که آدرس IP با اضافه کردن به هر پورت و سپس شماره پورت، اجازه اتصال به آن را داشته باشد. برای مثال، اگر می خواهید به ۲۰۳٫۰٫۱۱۳٫۴ اجازه اتصال به پورت ۲۲ (SSH) را بدهید، از این دستور استفاده کنید.

sudo ufw allow from 203.0.113.4 to any port 22

دسترسی به زیرشبکه‌ها

اگر می‌خواهید یک زیرشبکه از آدرس‌های IP را مجاز کنید، می‌توانید این کار را با استفاده از نماد CIDR برای تعیین یک Netmask شبکه انجام دهید. به عنوان مثال، اگر می خواهید تمام آدرس‌های IP از ۲۰۳٫۰٫۱۱۳٫۱ تا ۲۰۳٫۰٫۱۱۳٫۲۵۴ را در اختیار داشته باشید، می‌توانید از این دستور استفاده کنید.

sudo ufw allow from 203.0.113.0/24

به همین ترتیب، می‌توانید پورت مقصدی را نیز مشخص کنید که زیرشبکه ۲۰۳٫۰٫۱۱۳٫۰/۲۴ اجازه اتصال به آن را دارد. مجدداً از پورت ۲۲ (SSH) به عنوان مثال استفاده خواهیم کرد.

sudo ufw allow from 203.0.113.0/24 to any port 22
آموزش مشخص کردن محدوده پورت
آموزش مشخص کردن محدوده پورت

مشخص کردن محدوده پورت

شما می‌توانید محدوده پورت را با UFW مشخص کنید. برخی از برنامه‌ها به جای یک پورت از چندین پورت استفاده می‌کنند. به عنوان مثال، برای اجازه دادن به اتصالات X11 که از پورت‌های ۶۰۰۰-۶۰۰۷ استفاده می‌کنند، از این دستورات استفاده کنید.

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

هنگام مشخص کردن محدوده پورت با UFW، باید پروتکل (tcp یا udp) را مشخص کنید تا قوانین روی آن اعمال شوند.

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

دسترسی به یک رابط شبکه خاص

اگر می خواهید یک قانون فایروال ایجاد کنید که تنها برای یک رابط شبکه خاص اعمال می شود، می‌توانید این کار را با مشخص کردن “allow in on” و سپس وارد کردن نام شبکه انجام دهید.

برای بررسی رابط‌های شبکه دستور زیر را اجرا کنید.

ip addr

با اجرای این دستور، خروجی زیر را دریافت خواهید کرد.

Output Excerpt
۲: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
. . .
۳: enp0s4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
. . .

خروجی هایلایت شده نام رابط شبکه را نشان می‌دهد. در این خروجی نام رابط شبکه به اسم enp0s3 و enp0s4 نمایش داده شده است.

اگر شما یک رابط شبکه عمومی به نام ens3 داشته باشید که برای اتصال به پورت HTTP یا همان پورت ۸۰ مجاز شناخته شود، می‌توانید از دستور زیر استفاده کنید.

sudo ufw allow in on ens3 to any port 80

همچنین، اگر می‌خواهید سرور دیتابیس MYSQL خود را با پورت ۳۳۰۶ برای اتصال به شبکه خصوصی eth1 مجاز کنید، دستور زیر را استفاده کنید.

sudo ufw allow in on eth1 to any port 3306

با اجرای این دستور، سرورهای دیگر در سطح شبکه خصوصی می‌توانند به سرور دیتابیس MySQL شما دسترسی باشند.

مسدود کردن دسترسی‌ها

اگر تنظیمات پیش فرض برای اتصالات ورودی را تغییر نداده باشید، UFW به صورت خودکار تمام اتصالات ورودی را مسدود کند.

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

بیشتر بدانید : Load Average چیست

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

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

برای انجام اینکار کافیست در اجرای دستور به‌جای allow در دستورات بالا، عبارت deny را تایپ کنید.

برای مثال برای رد کردن اتصالات HTTP می‌توانید از این دستور استفاده کنید.

sudo ufw deny http

اگر می‌خواهید تمام اتصالات ۲۰۳٫۰٫۱۱۳٫۴ را مسدود کنید، دستور زیر را اجرا کنید.

sudo ufw deny from 203.0.113.4

حذف قوانین دسترسی در فایروال UFW

در ادامه مطلب نصب فایروال UFW در اوبونتو، شما را با نحوه حذف قوانین دسترسی آشنا خواهیم کرد.

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

حذف قوانین بر اساس شماره
حذف قوانین بر اساس شماره

بر اساس شماره قانون

اگر بخواهید با استفاده از شماره قوانین برای حذف قوانین اقدام کنید، لازم است ابتدا لیستی از قوانین فایروال خود را دریافت کنید.

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

sudo ufw status numbered
Numbered Output:
Status: active

     To                         Action      From
     --                         ------      ----
[ ۱] ۲۲                         ALLOW IN    15.15.15.0/24
[ ۲] ۸۰ 

برای مثال، اگر می‌خواهید قانون ۲ را که اتصالات پورت ۸۰ (HTTP) را مجاز می‌کند، حذف کنید دستور زیر را اجرا کنید.

sudo ufw delete 2

خروجی این دستور یک اعلان تأیید را نشان و سپس قانون ۲ را که به اتصالات HTTP دسترسی می‌دهد، حذف می‌کند.

درنهایت، برای تکمیل این فرایند لازم است با وارد کردن کلید y و سپس زدن Enter آن را تایید کنید.

بر اساس نام قانون

در این روش حذف، به‌جای نوشتن شماره قانون actual rule را برای حذف مشخص می‌کنیم. برای مثال، اگر می‌خواهید قانون اجازه http را حذف کنید، می‌توانید دستور زیر را اجرا کنید.

sudo ufw delete allow http

همچنین می‌توانید به جای نام سرویس، قانون را با دسترسی ۸۰ مشخص کنید.

این روش هر دو قوانین IPv4 و IPv6 را در صورت وجود حذف می‌کند.

بررسی وضعیت UFW و قوانین

هر زمان که بخواهید می‌توانید با اجرای دستور زیر وضعیت UFW را بررسی کنید.

sudo ufw status verbose

اگر UFW غیرفعال باشد، خروجی زیر را دریافت خواهید کرد.

Output
Status: inactive

در صورتی که خروجی active به شما نشان دهد، به این معنی است که UFW فعال است.

به عنوان مثال، اگر فایروال طوری تنظیم شده باشد که اتصال SSH (درگاه ۲۲) را از هر جایی مجاز کند، خروجی ممکن است چیزی شبیه به این باشد.

OutputStatus: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
۲۲/tcp                     ALLOW IN    Anywhere
۲۲ (v6)                    ALLOW IN    Anywhere (v6)

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

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

sudo ufw disable

با اجرای این دستور تمامی قانونی که با UFW ایجاد کردید، غیرفعال خواهند شد.

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

sudo UFW enable

اگر قبلاً قوانین UFW را پیکربندی کرده‌اید، اما قصد دارید آنها را مجدد تنظیم کنید، دستور زیر را وارد کنید..

sudo ufw reset

اجرای این دستور، UFW را غیرفعال و قوانینی را که قبلاً تعریف شده بود را حذف می‌کند.

جمع بندی

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

اشتراک‌گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *