استفاده از gufw و ufw برای پیکربندی فایروال اوبونتو

در دروس قبل به پورتها و خدمات در سیستم اوبونتو پرداختیم. ما همچنین به طور خلاصه به قوانین فایروال iptables در اوبونتو از جمله ایجاد چند قانون بسیار ساده از خط فرمان پرداختیم. در این درس به یک رویکرد کاربر پسندتر برای پیکربندی iptables با استفاده از دو ابزار gufw و ufw میرسیم. همانطور که خواهیم دید، gufw و ufw سطح بالایی از کنترل را بر ترافیک و اتصالات شبکه ورودی و خروجی بدون نیاز به درک سینتکس سطح پایینتر iptables ارائه میدهند.
مروری بر gufw و ufw
همراه اوبونتو بستهای به نام ufw است که سرنام Uncomplicated Firewall است. این بسته یک رابط خط فرمان برای مدیریت و پیکربندی قوانین فایروال مبتنی بر iptables Netfilter ارائه میدهد. ابزار gufw یک رابط گرافیکی کاربرپسند برای ufw فراهم میکند که مدیریت فایروال را بدون نیاز به صدور فرمانهای ufw در خط فرمان ممکن میسازد.
نصب gufw در اوبونتو
در حالی که ufw به طور پیشفرض بر روی اوبونتو نصب شده است، بسته gufw اینگونه نیست. بنابراین برای نصب gufw، یک پنجره ترمینال (Ctrl-Alt-T) را باز کنید و ۶فرمان زیر را در اعلان حاصل وارد کنید:
1 |
# apt install gufw |
اجرا و فعالسازی gufw
پس از نصب، gufw را با فشار دادن Alt-F2 در دسکتاپ گنوم و وارد کردن gufw در کادر متنی دستور Run راه اندازی کنید. همانطور که در تصویر نشان داده شده است، هنگامی که برای اولین بار فراخوانی میشود، احتمالا فایروال غیرفعال میشود.
برای فعال کردن فایروال، سوئیچ وضعیت (A) را به موقعیت روشن ببرید. بهطور پیشفرض، پانل اصلی (D) صفحه اصلی gufw را نشان میدهد که حاوی اطلاعات اولیه درباره ابزار است. انتخاب گزینهها از ردیف دکمهها (C) اطلاعات نمایش داده شده در پنل را تغییر میدهد. برای مثال، دکمه Rules را برای افزودن، حذف و مشاهده قوانین انتخاب کنید.
ابزار gufw با مجموعه کوچکی از پروفایلهای از پیش تنظیم شده برای محل کار، خانه و محیط های عمومی ارائه شده است. برای تغییر پروفایل و مشاهده تنظیمات کافیست از منوی (B) Profile را انتخاب کنید. برای تغییر پروفایل موجود، آن را از منو انتخاب کنید و از منوهای Incoming و Outgoing برای تغییر انتخابها استفاده نمایید. برای پیکربندی قوانین خاص، صفحه Rules را نمایش دهید و قوانین را در صورت نیاز اضافه، حذف و اصلاح کنید. سپس این موارد در پروفایل انتخابی فعلی اعمال میشود.
پروفایل انتخاب شده در حال حاضر دیکته میکند که چگونه فایروال در غیاب قوانین خط مشی خاصی، ترافیک را مدیریت کند. به عنوان مثال، پروفایل Home به طور پیشفرض به گونهای پیکربندی شده است که تمام ترافیک ورودی را رد کند و به همه ترافیک خروجی اجازه دهد. این تنظیمات خط مشی پیشفرض با استفاده از منوهای Incoming: و Outgoing: (E) تغییر میکنند.
استثناهای خط مشی پیشفرض از طریق ایجاد قوانین اضافی تعریف میشوند. برای مثال، با پروفایل Home که ترافیک ورودی را رد میکند، باید قوانینی اضافه شود تا انواع خاصی از اتصالات ورودی قابل قبول را فعال کند. از چنین قوانینی در جامعه امنیتی به عنوان لیست سفید یاد میشود.
از طرف دیگر، اگر خط مشی ورودی به Allow all traffic تغییر داده شود، تمام ترافیک ورودی مجاز خواهد بود مگر اینکه قوانینی برای انواع خاصی از اتصالات ایجاد شده باشد که باید مسدود شوند. این قوانین، بدون تعجب، به عنوان یک لیست سیاه نامیده میشوند. رویکرد لیست سیاه/لیست سفید به طور یکسان برای اتصالات ورودی و خروجی اعمال میشود.
ایجاد پروفایل جدید
در حالی که امکان تغییر پروفایلهای از پیش تعریف شده وجود دارد، معمولا ایجاد یک یا چند پروفایل برای پیکربندی فایروال برای نیازهای خاص شما منطقی تر خواهد بود. پروفایلهای جدید با انتخاب Edit -> Preferences… ایجاد می شوند تا پنجره نشان داده شده تصویر زیر نمایش داده شود:
برای افزودن یک پروفایل جدید، روی دکمه «+» واقع در زیر لیست پروفایلها کلیک کنید. پروفایل جدیدی به نام Profile 1 در لیست ظاهر میشود. برای دادن نام توصیفیتر به پروفایل، روی ورودی دوبار کلیک کنید تا وارد حالت ویرایش شوید و نام جدیدی وارد کنید:
پس از ایجاد و نامگذاری پروفایل، روی دکمه Close کلیک کنید تا به صفحه اصلی بازگردید و آن را از منوی Profile انتخاب کنید:
افزودن قوانین فایروال از پیش تنظیم شده
قوانین جدید با کلیک بر روی دکمه Rules و سپس دکمه + واقع در پایین پانل قوانین همانطور که در تصویر مشخص شده است ایجاد میشود:
پس از انتخاب، پنجره نشان داده شده در تصویر با انتخاب زبانه Preconfigured ظاهر میشود.
پانل Preconfigured اجازه میدهد تا قوانینی انتخاب شوند که با برنامهها و خدمات خاص مطابقت داشته باشند. برای مثال، ترافیک ابزارهایی مانند Skype و BitTorrent را میتوان با انتخاب ورودی از منوی برنامه و منوهای Policy و Direction برای محدود کردن یا مجاز کردن ترافیک، فعال کرد.
برای کمک به یافتن یک برنامه یا سرویس خاص، از منوهای Category و Subcategory برای فیلتر کردن مواردی که در منوی برنامه ظاهر میشوند استفاده کنید. همچنین، به سادگی نام برنامه یا سرویس را در قسمت Application Filter وارد کنید تا آیتمهای منو فیلتر شوند:
منوی Policy گزینههای زیر را برای کنترل ترافیک برنامه یا سرویس انتخابی ارائه میدهد:
- Allow: تردد در پورت مجاز است.
- Deny: تردد در پورت ممنوع است. سیستم درخواست کننده از رد اطلاع داده نمیشود. بسته داده به سادگی حذف میشود.
- Reject: تردد در پورت ممنوع است. بسته داده حذف میشود و سیستم درخواست کننده از رد آن مطلع میشود.
- Limit: اگر همان آدرس IP تلاش کرده باشد ۶ یا بیشتر در یک بازه زمانی ۳۰ ثانیه برقرار کند، اتصالات رد میشوند.
هنگامی که یک قانون تعریف شد، با کلیک بر روی دکمه Add، قانون اجرا میشود، کادر گفتگوی Add Rule حذف میشود و قانون جدید در صفحه اصلی ابزار gufw (با قوانین برای پروتکلهای IPv4 و IPv6) فهرست میشود:
برای حذف یک قانون، آن را در لیست انتخاب کنید و روی دکمه “-” واقع در پایین پنجره کلیک کنید. به طور مشابه، با انتخاب آن و کلیک بر روی دکمه چرخدنده در سمت راست دکمه “-“، قوانین موجود را ویرایش کنید.
افزودن قوانین پیشرفته
تاکنون قوانینی را برای کنترل تنها نوع ترافیکی که باید مسدود شود (به عنوان مثال ترافیک ورودی در پورت ۲۲) بدون توجه به منبع یا مقصد ترافیک بررسی کردهایم. با این حال، اغلب اوقات لازم است قوانینی برای اجازه یا رد ترافیک بر اساس یک آدرس IP یا محدودهای از آدرسهای IP تعریف شوند.
برای اهداف یک مثال، فرض کنید که سیستم محلی دارای آدرس آیپی ۱۹۲٫۱۶۸٫۰٫۱۰۲ است. فایروال ممکن است طوری پیکربندی شود که فقط اجازه دسترسی به پورت ۲۲ را از سیستمی با آدرس IP مثلا ۱۹۲٫۱۶۸٫۰٫۱۰۵ بدهد. برای دستیابی به این هدف، قسمت From: پانل Advanced پیشرفته باید روی آدرس IP سیستمی که درخواست اتصال از آن منشا میگیرد تنظیم شود (در این مورد ۱۹۲٫۱۶۸٫۰٫۱۰۵).
فیلدهای To: گزینه ای را برای تعیین آدرس IP و پورت سیستمی که اتصال به آن برقرار میشود ارائه میدهد. در این مثال، این پورت ۲۲ در سیستم محلی (۱۹۲٫۱۶۸٫۰٫۱۰۲) خواهد بود. آدرس آیپی To: در واقع اختیاری است و ممکن است خالی بماند:
با فرض اینکه سیاست پیشفرض ورودی همچنان روی Deny یا Reject در صفحه اصلی تنظیم شده است، قانون فوق به SSH از طریق پورت ۲۲ به سیستم لوکال فقط از سیستم راه دور با آدرس آیپی ۹۲٫۱۶۸٫۰٫۱۰۵ دسترسی خواهد داشت. تلاشهای دسترسی SSH از سیستمهایی با آدرسهای IP دیگر با شکست مواجه خواهند شد. توجه داشته باشید که اگر سیستم مورد نظر سیستم لوکال باشد، قسمت آدرس آیپی To: ممکن است خالی بماند. فیلد Insert در پنجره فوق اجازه میدهد تا قانون جدید در مکان مشخص شده در لیست قوانین موجود درج شود، بنابراین به شما امکان میدهد ترتیب اعمال قوانین را در فایروال کنترل کنید.
همچنین با استفاده از bitmask آدرس IP میتوان محدودهای از آدرسها را مشخص کرد. به عنوان مثال، برای ایجاد یک قانون برای محدودهای از آدرسهای IP از ۱۹۲٫۱۶۸٫۰٫۱ تا ۱۹۲٫۱۶۸٫۰٫۲۵۵، آدرس IP باید در قسمت From: به عنوان ۱۹۲٫۱۶۸٫۰٫۰/۲۴ وارد شود.
به طور مشابه، برای تعیین قاعدهای که محدوده آدرس آیپی ۱۹۲٫۱۶۸٫۰٫۱ تا ۱۹۲٫۱۶۸٫۰٫۳۰ را پوشش میدهد، از bitmask 27 استفاده میشود، یعنی ۱۹۲٫۱۶۸٫۰٫۰/۲۷٫
یک ماشین حساب مفید برای شناسایی محدوده آدرس تحت پوشش هر مقدار bitmask به صورت آنلاین در http://subnet-calculator.com موجود است.
پیکربندی فایروال از خط فرمان با استفاده از ufw
تمام گزینههای پیکربندی فایروال که از طریق ابزار گرافیکی gufw در دسترس هستند نیز از طریق خط فرمان زیرین با استفاده از فرمان ufw در دسترس هستند. برای فعال یا غیرفعال کردن فایروال:
1 2 |
# ufw enable # ufw disable |
وضعیت فعلی فایروال را میتوان با استفاده از گزینه status بدست آورد:
1 2 3 4 5 6 |
# ufw status Status: active To Action From -- ------ ---- 22 ALLOW 192.168.86.30 |
برای اطلاعات بیشتر وضعیت، فرمان بالا را با گزینه verbose ترکیب کنید:
1 2 3 4 5 6 7 8 9 |
# ufw status verbose Status: active Logging: on (full) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN 192.168.86.30 |
خروجی در مثال بالا نشان میدهد که سیاست پیشفرض فایروال این است که تمام اتصالات ورودی و مسیریابی را رد کند و در عین حال همه اتصالات خروجی را مجاز کند. برای تغییر هر یک از این تنظیمات پیشفرض، از فرمان ufw با گزینه پیشفرض با استفاده از سینتکس زیر استفاده کنید:
1 |
# ufw default <policy> <direction> |
به عنوان مثال، برای فعال کردن تمام اتصالات ورودی به طور پیشفرض:
1 |
# ufw default allow incoming |
برای مجاز کردن یا مسدود کردن ترافیک در یک پورت خاص از فرمان زیر استفاده کنید:
1 |
# ufw <policy> <port number>/<optional protocol> |
به عنوان مثال، برای اجازه دادن به ترافیک ورودی TCP و UDP در پورت ۳۰:
1 |
# ufw allow 30 |
به طور مشابه، برای رد ترافیک TCP ورودی در پورت ۵۷۰۰:
1 |
# ufw deny 5700/tcp |
قوانین همچنین ممکن است با ارجاع به نام سرویس مربوط به پورت اعلام شوند. به عنوان مثال برای فعال کردن دسترسی SSH در پورت ۲۲:
1 |
# ufw allow ssh |
همانند ابزار gufw، ufw همچنین اجازه میدهد تا دسترسی از آدرسهای IP خارجی خاص کنترل شود. به عنوان مثال، برای اجازه دادن به تمام ترافیک ورودی از آدرس آیپی ۱۹۲٫۱۶۸٫۰٫۲۰:
1 |
# ufw allow from 192.168.0.20 |
برای رد کردن ترافیک از یک آدرس IP:
1 |
# ufw deny 192.168.0.20 |
برای محدود کردن دسترسی به آدرس آیپی ۱۹۲٫۱۶۸٫۰٫۲۰ فقط به پورت ۲۲:
1 |
# ufw allow from 192.168.0.22 to any port 22 |
برای محدود کردن بیشتر دسترسی به آدرس IP فقط به بستههای TCP، از فرمان زیر استفاده کنید:
1 |
# ufw allow from 192.168.0.20 to any port 22 proto tcp |
موقعیت یک قانون جدید در لیست قوانین موجود ممکن است با استفاده از گزینه درج اعلام شود. به عنوان مثال برای ایجاد یک قانون جدید و درج آن در موقعیت ۳ در لیست قوانین:
1 |
# ufw insert 3 allow from 192.168.0.123 to any port 2 |
برای نمایش لیست قوانین با اعداد مرتبط:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN 192.168.86.30 [ 2] 30 ALLOW IN Anywhere [ 3] 22 ALLOW IN 192.168.0.123 [ 4] 5700/tcp DENY IN Anywhere [ 5] 22/tcp ALLOW IN Anywhere [ 6] Anywhere ALLOW IN 192.168.0.20 [ 7] 22 ALLOW IN 192.168.0.4 [ 8] 30 (v6) ALLOW IN Anywhere (v6) [ 9] 5700/tcp (v6) DENY IN Anywhere (v6) [10] 22/tcp (v6) ALLOW IN Anywhere (v6) |
پس از شناسایی شماره اختصاص داده شده به یک قانون، میتوان از آن شماره برای حذف قانون از فایروال استفاده کرد:
1 |
# ufw delete 4 |
برای به دست آوردن لیست کاملی از قابلیتهای ابزار ufw دستور را با آرگومان –help اجرا کنید:
1 |
# ufw help |
ثبت فعالیت فایروال را میتوان با استفاده از گزینه خط فرمان logging به سیستم فعال و غیرفعال کرد:
1 2 |
# ufw logging on # ufw logging off |
میزان ثبت گزارش انجام شده توسط ufw ممکن است در هنگام روشن کردن ورود به سیستم شامل تنظیمات کم، متوسط، زیاد یا کامل نیز اعلام شود، به عنوان مثال:
1 |
# ufw logging on low |
فایل لاگ ufw را میتوانید در آدرس زیر پیدا کنید:
1 |
/var/log/ufw.log |
از گزینه reload برای راه اندازی مجدد فایروال و بارگیری مجدد تمام تنظیمات فعلی استفاده کنید:
1 |
# ufw reload |
در نهایت، برای بازنشانی فایروال به تنظیمات پیشفرض (در نتیجه حذف تمام قوانین و تنظیمات موجود):
1 |
# ufw reset |
خلاصه
هر سیستم رایانهای که به سیستمهای دیگر متصل است، چه از طریق یک شبکه داخلی یا از طریق اتصال به اینترنت، باید نوعی از فایروال را برای کاهش خطر حمله پیادهسازی کند. فایروال کامپایل نشده ارائه شده با اوبونتو یک فایروال ساده و در عین حال کارآمد را ارائه میدهد که اجازه میدهد قوانین اساسی با استفاده از خط فرمان یا ابزار گرافیکی gufw تعریف شوند. این درس اصول فعال کردن فایروال و پیکربندی قوانین فایروال را تشریح کرده است.
منبع: answertopia.com