آموزش نصب UFW در اوبونتو؛ راهاندازی فایروال با UFW
در این مقاله میخوانید
- منظور از UFW چیست؟
- پیشنیازهای نصب و راه اندازی UFW در لینوکس
- قدم اول: نحوه پیکربندی IPV6 در UFW
- قدم دوم: اجرای تنظیمات پیشفرض UFW
- قدم سوم: دادن دسترسی مجاز SSH
- قدم چهارم: فعالسازی UFW
- قدم پنجم: ارائه مجوز دسترسی به سایر اتصالات
- قدم ششم: مسدود کردن دسترسیها
- قدم هفتم: حذف قوانین دسترسی
- قدم هشتم: بررسی وضعیت UFW و قوانین
- قدم نهم: غیرفعال یا ریست کردن دستور UFW
- با سرورهای مجازی لینوکس پارس پک، خیالتان از نصب فایروال راحت است
- جمعبندی
- سؤالات متداول
نصب UFW در اوبونتو مانند یک دیوار امنیتی قدرتمند در سیستم لینوکس شما عمل میکند. طوریکه هیچ تخریبگری امکان نفوذ به این دیوار امنیتی را نخواهد داشت. طبق گزارش netcraft حدود ۷۰ درصد از کاربران لینوکس برای مدیریت فایروال خود از قدرت UFW بهره گرفتند. ابزار UFW بهعنوان یک ابزار مدیریت فایروال بهراحتی این امکان را به شما میدهد تا مدیریت امنیت شبکه و پورتهای سیستم لینوکس را در دست بگیرید. حتی اگر جدیدا با مفهوم فایروال آشنا شدید یا کاربر تازهکار لینوکس هستید، برای برقراری و مدیریت امنیت سیستم خود، بهراحتی میتوانید از آن بهره ببرید. در این مقاله از آموزش امنیت بلاگ پارس پک، قصد داریم هر آن چیزی را بررسی کنیم که راجع به نصب و راه اندازی UFW در لینوکس باید بدانید.
منظور از UFW چیست؟
فایروال UFW یا Uncomplicated Firewall یک رابط کاربری خط فرمان برای مدیریت فایروال است که با بهرهمندی از فناوریهای فیلترینگ همچون iptables یا nftables مانند یک دیوار دفاعی قدرتمند، پیکربندی فایروال را برایتان ساده میکند و با کمک آن میتوانید بهراحتی و بهطور موثر فایروال سرور خود را پیکربندی و امنیت آن را تامین کنید. UFW همچنین از یک رابط کاربری گرافیکی کاربرپسند به نام GUFW نیز برخوردار است.
با نصب UFW در اوبونتو، حتی تازهواردان دنیای لینوکس نیز میتوانند بهسادگی تنظیمات فایروال را مدیریت کنند. دستور UFW در لینوکس با تنظیمات پیشفرض خودش زحمت تنظیم و پیکربندی دستی فایروال را برایتان به حداقل میرساند. دراصل، تنها چیزی که نیاز است بدانید این بوده که کدام برنامهها به مجوز دسترسی نیاز دارند.
iptables یا nftables رابطهای کاربری سنتی در Netfilter هستند. در جاییکه کار با Netfilter بهعنوان پکیج فیلترینگ هسته لینوکس به مهارت و زمان نیاز دارد، UFW با داشتن این دو رابط کار را برای مدیریت فایروال بسیار ساده کرده است.
نصب UFW در اوبونتو مثل یک نگهبان حرفهای برای دروازه لینوکس عمل میکند که قوانین ورود و خروج از این دروازه را بهراحتی به دست خودتان میسپارد. راه اندازی فایروال با UFW در سرور اوبونتو به شما کمک میکند تمامی ارتباطات و اتصالات سرور را مدیریت کنید. نصب فایروال با UFW به دانش فنی بالایی نیاز ندارد و با اجرای چند دستور ساده فایروال سرورتان نصب و فعال خواهد شد.
پیشنیازهای نصب و راه اندازی UFW در لینوکس
برای نصب UFW در اوبونتو نیاز است سرور اوبونتو ۲۲.۰۴ با دسترسی root یا sudo در اختیار داشته باشید. بهطور پیشفرض، UFW روی سیستم اوبونتو نصب شده است. اگر از نصب آن مطمئن نیستید، با تایپ کردن دستور زیر، میتوانید از وضعیت آن مطلع شوید:
sudo UFW status
اکنون اگر این فایروال روی سیستمتان نصب نبود، با دستور زیر میتوانید به نصب فایروال UFW در اوبونتو اقدام کنید:
sudo apt install UFW
نوبت آن است که قدم به قدم مراحل نصب و راه اندازی UFW در لینوکس را انجام دهیم.
برای آشنایی با نحوه نصب فایروال IPTables و استفاده از اصول اولیه دستور IPTables در لینوکس مقاله زیر را از دست ندهید.
قدم اول: نحوه پیکربندی IPV6 در UFW
اگر فقط فایروال IPV4 در سرور اوبونتوی شما در دسترس است، مطمئن شوید UFW برای پشتیبانی از IPV6 نیز پیکربندی شده باشد. دراینصورت، میتوانید برای سیستمی با هر دو فایروال IPV6 و IPV4 از آن استفاده کنید. ابتدا با دستور nano تنظیمات UFW را بررسی کنید:
sudo nano /etc/default/UFW
اگر سیستم شما IPV6 را نیز پشتیبانی کند، با پیغام زیر روبهرو خواهید شد:
/etc/default/UFW excerpt IPV6=yes
سپس فایل را ذخیره کرده و از آن خارج شوید. اکنون هر زمان UFW فعال شود، برای هر دو فایروال IPV4 و IPV6 قابل تنظیم خواهد بود. اجازه دهید قبل از فعالسازی UFW وضعیت تنظیمات فایروال را برای اتصال SSH بررسی کنیم.
قدم دوم: اجرای تنظیمات پیشفرض UFW
اگر بهتازگی فایروال UFW خود را راه انداختید، نیاز است قوانین پیشفرضی را تعیین کنید. قوانینی که نحوه مدیریت ترافیک را کنترل میکنند. بهطور پیشفرض، UFW بهگونهای تنظیم شده است که تمام اتصالات (Connection) ورودی را غیرمجاز میشناسد. بهاینترتیب، افراد غیرمجازی که درخواست اتصال به سرورتان را دارند، وارد سرورتان نمیتوانند شوند. این درحالیاست که هر برنامهای در داخل سرور بهراحتی میتواند به برنامهای در خارج از سرور متصل شود.
در این بخش از آموزش نصب 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
پس از نصب UFW در اوبونتو و اجرای تنظیمات دسترسی، سراغ فعال کردن UFW خواهیم رفت.
برای آشنایی با نحوه تغییر پورت SSH در سرور مجازی لینوکس و تنظیمات امنیتی آن مقاله زیر را بخوانید.
قدم چهارم: فعالسازی UFW
پس از نصب و راه اندازی UFW در لینوکس، برای فعالسازی آن دستور زیر را وارد کنید:
sudo UFW enable
در این زمان، ممکن است یک علامت هشدار دریافت کنید که میگوید دستور موردنظر دسترسی SSH را مختل میکند. شما قبلاً قوانین فایروال را طوری تنظیم کردید که اجازه دسترسی SSH بدهد. پس به این پیغام توجهی نکنید و ادامه روال را پیش بگیرید. با زدن دکمه «y» و کلید Enter فایروال فعال خواهد شد.
در ادامه آموزش نصب UFW در اوبونتو، راجع به جزییات UFW مانند دسترسی انواع اتصالات صحبت خواهیم کرد.
قدم پنجم: ارائه مجوز دسترسی به سایر اتصالات
اکنون نیاز است تنظیمات فایروال را طوری تعیین کنید که تمام دسترسیهای موردنیاز سرور را به او بدهد. اینکه چه دسترسیهایی مجاز شناخته شود بستگی به نیاز شما دارد. خوشبختانه اکنون شما میدانید چطور براساس شماره پورت یا نام سرویس، دسترسی لازم را به آن بدهید. همان کاری که برای دادن دسترسی به SSH کردید، برای گزینههای زیر انجام دهید:
HTTP با پورت ۸۰ برای وبسرورهای رمزگذاری نشده مورد استفاده قرار میگیرد. با تایپ از دستور زیر دسترسی لازم را به آن بدهید:
sudo UFW allow http
یا از شماره پورت استفاده میکنیم:
sudo UFW allow 80
HTTPS با پورت ۴۴۳ برای وبسرورهای رمزگذاری شده مورد استفاده قرار میگیرد. با استفاده از دستور زیر دسترسی لازم را به آن بدهید:
sudo UFW allow https
همچنین میتوان از شماره پورت HTTPS را وارد کرد:
sudo UFW allow 443
راههای مختلفی وجود دارد که از طریق آن بتوانید به یک پورت یا سرویس خاص دسترسی بدهید. در ادامه، آنها را بررسی خواهیم کرد:
۱. محدوده پورت را مشخص کنید
با نصب UFW در اوبونتو شما میتوانید به کمک UFW محدوده پورت را مشخص کنید. منظور از این قابلیت در UFW چیست؟ در پاسخ به این سوال باید بگوییم برخی از برنامهها بهجای یک پورت از چند پورت استفاده میکنند. برای مثال، برای دادن دسترسی به X11 که از پورتهای ۶۰۰۰ و ۶۰۰۷ استفاده میکند، دستور زیر را میتوانید بهکار ببرید:
sudo UFW allow 6000:6007/tcp sudo UFW allow 6000:6007/udp
زمانیکه قصد تعیین چند پورت برای یک سرویس یا برنامهای را دارید، نیاز است پروتکل آن را مشخص کنید. در دستور بالا ما پروتکل tcp و udp را برای هر پورت مشخص کردیم. با مشخص نکردن پروتکل، فایروال بهطور خودکار به هر دو پروتکل اجازه دسترسی میدهد.
۲. به آیپی آدرس مشخص دسترسی مجاز دهید
با UFW حتی میتوانید آیپی آدرس یک سرویس یا برنامه را برای دادن دسترسی مجاز تعیین کنید. برای مثال، اگر میخواهید به آدرس آیپی مانند 203.0.113.4 دسترسی مجاز به فایروال سیستم خود در خانه یا محل کار بدهید، نیاز است از دستور زیر قبل از آیپی استفاده کنید:
sudo UFW allow from 203.0.113.4
همچنین اگر میخواهید دسترسی آیپی موردنظرتان را برای اتصال پورت خاصی مجاز کنید، میتوانید از دستور to any port استفاده کنید. برای مثال، اگر میخواهید به آدرس آیپی 203.0.113.4 برای اتصال به پورت ۲۲ یا همان SSH مجاز کنید، دستور زیر را بهکار ببرید:
sudo UFW allow from 203.0.113.4 to any port 22
۳. مجاز کردن دسترسی سابنتها
اگر میخواهید به سابنتهای آیپی اجازه دسترسی دهید، نیاز است با استفاده از CIDR یک Netmask تعریف کنید. برای مثال، اگر میخواهید به تمام آیپی آدرسهایی که در محدوده 203.0.113.1 تا 203.0.113.254 قرار دارند، امکان دسترسی دهید، از دستور زیر میتوانید استفاده کنید:
sudo UFW allow from 203.0.113.0/24
بههمین ترتیب، میتوانید پورت مقصد بعدی را که سابنت 203.0.113.0/24 امکان اتصال به آن دارد، تعریف کنید. برای مثال، ما در دستور زیر برای اتصال سابنت به پورت ۲۲ یا همان SSH استفاده کردیم:
sudo UFW allow from 203.0.113.0/24 to any port 22
۴. دادن دسترسی مجاز به یک شبکه خاص
اگر میخواهید تنظیمات فایروال را طوری تعیین کنید که فقط امکان اتصال به یک شبکه خاص داشته باشد، شما میتوانید با استفاده از دستور allow in on و وارد کردن اسم شبکه این کار را انجام دهید.
برای این کار، با استفاده از دستور زیر ابتدا شبکه موردنظرمان را فراخوانی میکنیم:
ip addr
خروجی که به ما میدهد، بهصورت زیر است:
Output
Output Excerpt 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state . . . 3: 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
با این کار، سرور شما درخواستهای عمومی HTTP را از اینترنت دریافت خواهد کرد.
همچنین، اگر قصد دارید سرور دیتابیس MYSQL خود را با پورت ۳۳۰۶ برای اتصال به شبکه خصوصی eth1 مجاز کنید، دستور زیر را به کار ببرید:
sudo UFW allow in on eth1 to any port 3306
بهاینترتیب، سرورهای دیگر در سطح شبکه خصوصی شما قادر هستند به سرور دیتابیس شما دسترسی داشته باشند.
قدم ششم: مسدود کردن دسترسیها
اگر دست به تنظیمات پیشفرض UFW نزده باشید، این فایروال بهطور خودکار هر دسترسی را مسدود میکند. چرا که یک فایروال قدرتمند و کاملا جدی است که حتی با بیخطرترین اتصالات نیز شوخی ندارد. بااینحال، اگر خودتان بهطور مستقیم به برخی از پورتها و آیپیها اجازه دسترسی دهید، فایروال نیز مقاومتی برای اتصال آنها نخواهد کرد.
اما در برخی شرایط، بهخصوص زمانی که میدانید ممکن است سرور شما از جانب چه آیپی یا منابعی موردحمله قرار بگیرد، احتمالا قصد دارید برخی آیپی، پورت یا سابنتهای خاصی را بلاک و مسدود کنید. همچنین اگر بخواهید تنظیمات پیشفرض UFW را به allow تغییر دهید (که البته اصلا چنین چیزی را پیشنهاد نمیکنیم)، نیاز است یکسری قوانین مسدودسازی برای آیپی یا سرویسهایی که نمیخواهید به سرور شما متصل شوند، تعریف کنید.
کارتان برای این تعریف این قانون بسیار ساده است. فقط کافیاست بهجای allow در دستورات بالا، عبارت deny را تایپ کنید.
برای مثال، اگر میخواهید اتصالات HTTP را مسدود کنید، دستور موردنظر بهصورت زیر خواهد بود:
sudo UFW deny http
همچنین اگر بخواهید تمام درخواستهایی که از سمت آیپی 203.0.113.4 اعلام میشود، مسدود کنید، عبارت زیر را تایپ کنید:
sudo UFW deny from 203.0.113.4
پس از اینکه فهمیدیم چگونه نسبت به نصب فایروال UFW در اوبونتو و تنظیمات دسترسی اقدام کنید، نوبت آن رسیده تا نحوه حذف کردن یک قانون یا rule را بررسی کنیم.
اگر میخواهید از فایروال CSF استفاده کنید، آموزش نصب فایروال Config Server در اوبونتو را در مقاله زیر بخوانید.
قدم هفتم: حذف قوانین دسترسی
دانستن نحوه پاک کردن و حذف قوانین بهاندازه نحوه نصب UFW در اوبونتو اهمیت دارد. دو راه برای تعیین اینکه کدام دستورات و قوانین حذف شوند، وجود دارد:
- استفاده از شماره قوانین یا Rules Number
- استفاده از اسم قانون ( مشابه نحوه تعیین قوانین هنگام ایجاد آنها)
حال، بررسی خواهیم کرد هر کدام از این دو روش چگونه عمل میکند:
۱. استفاده از شماره قوانین یا Rules Number
برای استفاده از این روش، اولین چیزی که مهم بوده تهیه لیستی از تمام قوانین فایروالتان است. UFW از آپشنی برخوردار است که در کنار تمام قوانین بهکار رفته در آن، شماره هر قانون را نوشته است. پس کارتان راحت خواهد بود. برای دریافت لیست قوانین، دستور زیر را وارد میکنیم:
sudo UFW status numbered
نتیجهای که به ما نشان داده، بهصورت زیر است:
Output
Numbered Output: Status: active To Action From — —— —- [ 1] 22 ALLOW IN 15.15.15.0/24 [ 2] 80
برای مثال، اکنون قصد داریم قانون شماره ۲ را که دسترسی به پورت HTTP یا همان پورت ۸۰ را مجاز شناخته است، حذف کنیم. بهراحتی میتوانیم با دستور زیر این کار را انجام دهیم:
sudo UFW delete 2
درنهایت، برای تکمیل این پروسه نیاز است با وارد کردن کلید y و سپس زدن Enter آن را تایید کنید.
۲. استفاده از اسم قانون
در این روش بهجای نوشتن شماره قانون، خود قانون را مینویسیم. برای مثال، برای حذف دسترسی مجاز HTTP آن را رک و پوست کنده بهصورت زیر مینویسیم:
sudo UFW delete allow http
همچنین میتوانید بهجای نام پورت، شماره پورت (نه شماره قانون) را وارد کنید:
sudo UFW delete allow 80
قدم هشتم: بررسی وضعیت UFW و قوانین
هر زمانی که بخواهید با استفاده از دستور status میتوانید وضعیت UFW و قوانین را بررسی کنید:
sudo UFW status verbose
اگر UFW غیرفعال باشد، شما خروجی زیر را خواهید دید:
Output
Status: inactive
اگر UFW فعال باشد، خروجی که به شما نشان خواهد بهصورت active است. برای مثال، اگر فایروال UFW طوری تنظیم شده باشد که به پورت ۲۲ یا همان SSH اجازه دسترسی بدهد، خروجی بهصورت زیر است:
Output
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From — —— —- 22/tcp ALLOW IN Anywhere 22 (v6)
قدم نهم: غیرفعال یا ریست کردن دستور UFW
اگر میخواهید قید فایروال قدرتمندی همچون UFW را بزنید و آن را غیرفعال کنید، دستور زیر این کار را برایتان انجام خواهد داد:
sudo UFW disable
با این کار، تمام تنظیمات و قوانینی که تعریف کردید نیز غیرفعال میشود. هر زمان که قصد فعالسازی مجدد فایروال را داشتید، دستور زیر را وارد کنید:
sudo UFW enable
میخواهید تنظیمات UFW را بهحالت اولیه برگردانید؟ دستور زیر را وارد کنید:
sudo UFW reset
با سرورهای مجازی لینوکس پارس پک، خیالتان از نصب فایروال راحت است
تا تنور داغ است اجازه دهید این نکته را یادآوری کنیم که انجام تمام تنظیمات و پیکربندی سیستم لینوکس، یک ارائهدهنده همیشه در دسترس و با زیرساخت قدرتمند میطلبد. طوری که فارغ از دانش لینوکسی شما قادر باشد نیازتان را از داشتن یک سرور امن، قدرتمند، پایدار و با آپتایم بالا تامین کند. در این زمینه، زیرساخت ابری پارس پک یک بستر پایدار و قوی برای میزبانی سرورهای لینوکس فراهم کرده است که بهراحتی میتوانید انواع تنظیمات امنیتی و فنی را روی آن پیادهسازی کنید. اگر نیاز به راهنمایی بیشتر دارید، همین حالا با کارشناسان پارس پک تماس بگیرید.
جمعبندی
نصب UFW در اوبونتو یک نگهبان بیستوچهارساعته برای سیستم شما قرار میدهد که اجازه ورود غیرمجاز به هیچکس را نمیدهد؛ مگر اینکه قبلا از جانب شما تأیید شده باشد. در این مقاله، نصب و راه اندازی UFW در لینوکس را بررسی کردیم. همچنین برای دادن دسترسی به ورودیهای مجاز، بهجای تعریف قوانین پیچیده، از دستور UFW در لینوکس استفاده کردیم. از اینکه این مقاله را برای یادگیری نحوه نصب UFW در اوبونتو انتخاب کردید، از شما ممنونیم. اگر هرگونه سوال، پیشنهاد یا نیاز به راهنمایی دارید، نظرات خود را میتوانید در انتهای همین مقاله و در بخش کامنت برایمان بنویسید تا راهنماییتان کنیم.
سؤالات متداول
۱. منظور از فایروال UFW چیست؟
UFW یا Uncomplicated Firewall یک رابط کاربری قدرتمند و ساده برای کنترل و مدیریت فایروال در توزیعهای اوبونتو و دبیان لینوکس است.
۲. چگونه میتوان UFW را در سرور اوبونتو نصب کرد؟
برای نصب UFW در لینوکس اوبونتو دستور sudo apt-get install UFW را در ترمینال اجرا کنید.
۳. چگونه میتوان فایروال UFW را پیکربندی کرد؟
پس از نصب UFW در اوبونتو با دستور sudo UFW enable میتوانید UFW را فعال کنید. سپس قوانین دسترسی را مطابق با نیاز خود به شیوهای که در مقاله گفتیم، تعیین کنید.
۴. چگونه میتوان UFW را در سرور دبیان فعال کرد؟
برای فعال کردن UFW در دبیان، میتوانید دستور sudo apt install UFW را در ترمینال اجرا کنید. سپس قوانین دسترسی را براساس نیاز خود تنظیم کنید.