در این مقاله به بررسی فایروال UFW و نحوه کانفیگ آن برای سرورهای لینوکسی پرداخته میشود. با استفاده از UFW شما میتوانید پیکربندی را به شکلی انجام دهید که تنها کانکشنهای ورودی مورد نظر شما فعال باشند. ویژگی ها و قابلیتهای ارائه شده در UFW موجب افزایش قابل توجه امنیت سرور میشود.
فایروال UFW چیست؟
UFW مخفف Uncomplicated Firewall و نام برنامه ای میباشد که هدف آن تعریف rules (قوانین) در فایروال iptables است. iptables فایروال پیشفرض و بومی لینوکس میباشد. جهت آشنایی بیشتر با این فایروال پیشنهاد میشود که مقاله "فایروال iptables" را مطالعه نمایید.
به دلیل پیچیدگی دستورات iptables، استفاده از فایروال UFW روشی به مراتب ساده تر جهت انجام تنظیمات امنیتی سرور است.
تصویر(1)
نصب فایروال UFW
نصب پکیج فایروال UFW بسیار ساده خواهد بود. البته لازم به ذکر است که این فایروال در بسیاری از توزیعات لینوکسی به صورت پیشفرض نصب میباشد. در این بخش به دستورالعمل نصب آن در یک توزیع debian-based مثل Ubuntu پرداخته میشود. برای سایر توزیعها، دستورات میتواند متفاوت باشند.
جهت آپدیت لیست پکیج ها:
apt update
نصب پکیج UFW:
apt install ufw
توجه داشته باشید که جهت اجرای دستورات نیاز به دسترسی superuser دارید.
کانفیگ و فعالسازی فایروال UFW
پس از نصب و پیکربندی فایروال UFW، به بررسی دستورات مربوط به تعریف rule ها پرداخته خواهد شد.
1- تعریف رفتار پیشفرض
ابتدا باید اجازه دسترسی ترافیک ورودی و خروجی برای حالت پیشفرض فایروال UFW تعیین گردد.
این مورد از طریق دستورات زیر قابل انجام است:
ufw default deny incoming
دستور فوق به کانکشنهای ورودی که با هیچ یک از rule ها منطبق نباشند، اجازه دسترسی نمی دهد.
ufw default allow incoming
دستور فوق به کانکشنهای ورودی که با هیچ یک از rule ها منطبق نباشند، اجازه دسترسی میدهد.
در خصوص کانکشنهای خروجی دستورات به شرح ذیل است:
ufw default deny outgoing
دستور فوق به کانکشنهای خروجی که با هیچ یک از rule ها منطبق نباشند، اجازه عبور نمی دهد.
ufw default allow outgoing
دستور فوق به کانکشنهای خروجی که با هیچ یک از rule ها منطبق نباشند، اجازه عبور میدهد.
در کانفیگ اولیه پیشنهاد میشود که کانکشنهای ورودی را مسدود نموده و کانکشنهای خروجی را فعال نمایید. سپس نیاز به تعریف rule هایی جهت اعطای دسترسی به کانکشن ها، پروتکل ها و مواردی که از نظر شما مشکلی ندارد، میباشد.
2- مشاهده پیکربندی فایروال فعلی
پس از ایجاد اولین rule، شما میتوانید پیکربندی فعلی را با دستور زیر مشاهده نمایید:
ufw status
3- اجازه دسترسی کانکشن SSH (مهم)
جهت جلوگیری از قطع ارتباط با سرور پس از فعالسازی فایروال، بسیار مهم خواهد بود که یک rule برای اتصال از طریق پورت 22 (یا هر پورتی که برای سرویس SSH تعریف شده است) تعریف نمایید.
به منظور ایجاد rule برای دسترسی ترافیک ورودی به پورت مربوطه، نیاز است دستور زیر را وارد نمایید:
ufw allow 22
بدیهی است که در دستور فوق باید شماره پورت تعریف شده برای سرویس، وارد شود.
4- اجازه دسترسی به سایر کانکشن ها مطابق با پروتکل، IP و سایر پارامتر ها
در این قسمت چند مثال که نوشتار دستورات فایروال UFW را نشان میدهد، بررسی خواهند شد. همچنین شما میتوانید هر یک از آنها را مطابق با نیاز خود تغییر دهید.
ufw allow 80
به کانکشنهای ورودی از پورت 80 اجازه دسترسی میدهد.
ufw allow http
به کانکشنهای ورودی از پورت 80 اجازه دسترسی میدهد. در این مثال از نام مستعار "http" به جای شماره پورت استفاده شده است.
ufw allow 80/tcp
تنها به کانکشن ها با پروتکل TCP از طریق پورت 80 اجازه دسترسی میدهد.
ufw allow 1000-2000
امکان دسترسی کانکشنهای ورودی به پورتهای رنج مربوطه را تعریف میکند.
ufw allow from 10.0.0.30
کانکشنهای ورودی به هر پورت و با هر پروتکلی از آی پی 10.0.0.30 را قبول میکند.
ufw allow from 10.0.0.0/24
امکان دسترسی کانکشنهای ورودی به هر پورت و با هر پروتکلی از رنج IP تعریف شده با نماد CIDR (در این مثال از 10.0.0.0 تا 10.0.0.255 را شامل میشود) را فراهم میکند.
ufw allow from 10.0.0.30 to any port 22
امکان دسترسی کانکشنهای ورودی از آی پی 10.0.0.30 به پورت 22 را تعریف میکند.
ufw allow from 10.0.0.30 to any port 22 proto tcp
امکان دسترسی کانکشنهای ورودی با پروتکل TCP از آی پی 10.0.0.30 به پورت 22 را تعریف میکند.
موارد فوق تنها چند نمونه از ترکیبهای بیشماری است که در فایروال UFW قابل تعریف میباشد.
جهت مسدود سازی دسترسی، نیاز است در مثالهای فوق از دستور deny به جای allow استفاده نمایید.
5- حذف قوانین
به منظور حذف قوانین، نیاز است ابتدا قوانین را به صورت شماره بندی شده مشاهده نمایید.
برای انجام این کار میتوانید از دستور زیر استفاده کنید:
ufw status numbered
به وسیله شماره مندرج در کنار قوانین میتوانید اقدام به حذف آنها نمایید.
جهت حذف از دستور زیر استفاده نمایید:
ufw delete 3
دستور فوق rule شماره 3 را حذف میکند.
6- درج قوانین با یک شماره مشخص
شما میتوانید از دستور زیر جهت تعریف rule با یک شماره خاص استفاده نموده و جایگاه آن را در جدول مربوطه تعیین نمایید.
ufw insert 3 allow 22
یک قانون در ردیف 3 جهت اعطا دسترسی به کانکشنهای ورودی در پورت 22 درج میکند.
7- فعالسازی یا غیرفعالسازی لاگ برداری
فایروال UFW دارای قابلیتی جهت لاگ برداری از تمامی رویداد ها و همچنین تلاشهای ورود به سرور میباشد. شما میتوانید با دستور زیر لاگ برداری UFW را فعال یا غیرفعال نمایید.
فعالسازی لاگ:
ufw logging on
غیرفعالسازی لاگ:
ufw logging off
8- فعالسازی / غیرفعالسازی فایروال
در نهایت، پس از کانفیگ فایروال سرور، نیاز است آن را فعال نمایید.
ufw enable
فعالسازی فایروال و به اجرا درآوردن ruleهای تعریف شده
ufw disable
غیرفعالسازی (متوقف کردن) فایروال
ufw reset
حذف تمامی قوانین و شروع مجدد، به استثنا رفتار پیشفرض تعریف شده در مرحله 1
نتیجه گیری
UFW یک فایروال ساده و قدرتمند لینوکسی میباشد. در این مقاله اطلاعات لازم جهت کانفیگ و استفاده از فایروال UFW در سرورهای لینوکسی ارائه شده است. پیشنهاد میشود با نصب و استفاده از این فایروال، امنیت سرور خود را افزایش دهید.