پیکربندی FirewallD در CentOS
همانطور که میدانید فایروال FirewallD جایگزین iptables در CentOS 7 و بسیاری از لینوکسهای نسل جدید شده است. در این مطلب از سری آموزشهای FirewallD با پیکربندی FirewallD در CentOS در خدمت شما خواهیم بود.
این فایروال که نسخه داینامیک iptables بشمار میرود از تنظیمات بسیار خوب و سادهای برخوردار است و برای تنظیم آن شما میتوانید از دستور firewall-cmd و یا محیط گرافیکی آن استفاده کنید.
در ابتدا شایان ذکر است که این فایروال دارای zone ها و تنظیمات زیادی است و در این مطلب به نحوه تنظیم zone ، پورت فورواردینگ ، کار کردن با سرویس ها و حذف و اضافه کردن پورت ها در خدمت شما خواهیم بود.
کانفیگ FirewallD در CentOS
ست کردن کانفیگ FirewallD در CentOS
برای وارد کردن و اعمال دستورات FirewallD به 2 شکل میتوان اقدام کرد.
Permanent : هنگامی که از permanent در دستورات خود استفاده میکنید ، دستورات در فایل XML فایروال وارد شده ولی تا زمانی که فایروال را reload نکنید یا سیستم ریبوت نشود ، اعمال نمی گردد.
RunTime : هنگامی که دستوری را بدون هیچ سوییچی جهت ست کردن وارد کنید، دستور بلادرنگ اجرا شده ولی پس از Reload و یا ریبوت CentOS حذف میگردد.
به عنوان مثال برای اضافه کردن سرویس http در FirewallD به صورت Permanent به شکل زیر دستور وارد میشود.
1
|
sudo firewall–cmd —zone=public —add–service=http —permanent
|
و همین دستور برای اجرای RunTime به شکل زیر می باشد.
1
|
sudo firewall–cmd —zone=public —add–service=http
|
حال پس از وارد کردن دستور اول به صورت Permanent ، برای اجرای آن باید دستور زیر را وارد کنید.
1
|
sudo firewall–cmd —reload
|
با وارد کردن دستور بالا ، فایروال یک بار دیگر راه اندازی شده و دستورات وارد شده را اعمال مینماید.
نکته مهم: هنگام Reload کردن فایروال برای چند لحظه تمام تنظیمات وارد شده برای فایروال متوقف شده و دوباره شروع بکار میکنند. ترجیحاً در صورت ترافیک زیاد بر روی سرور دستور را به صورت RunTime و Permanentt وارد کنید تا تنظیم شما اعمال شده و پس از ریبوت CentOS همچنان پا برجا باقی بماند.
Zone های FirewallD
zone ها به عنوان یک ساختار از پیش تنظیم شده میباشند و شما می توانید آنها را نسبت به شرایط امنیتی و قرار گیری سرور در اینترنت یا شبکه داخلی و یا … انتخاب نمایید.
هر یک از Zone ها برای یک شبکه خاص تنظیم شدهاند و ترافیک را نسبت به آن تنظیمات کنترل میکنند.
Zone پیش فرض در ابتدای فعال سازی فایروال Public می باشد.
Zone ها همچنین میتوانند بر روی کارت شبکههای مختلف تنظیم شوند و هر کارت شبکه و ترافیک آن توسط قوانین یک Zone کنترل شود.
برای دیدن Zone فعال در FirewallD دستور زیر را وارد کنید.
1
|
sudo firewall–cmd —get–default–zone
|
برای تغییر Zone پیشفرض میتوانید از دستور زیر استفاده نمایید.
1
|
sudo firewall–cmd —set–default–zone=internal
|
برای دیدن کارت شبکه و Zone فعال بر روی آن از دستور زیر استفاده میشود.
1
|
sudo firewall–cmd —get–active–zones
|
همچنین برای دیدن تمام تنظیمات Zone مورد نظر از دستور زیر میتوان بهره برد.
1
|
sudo firewall–cmd —zone=public —list–all
|
خروجی دستور بالا مشابه تصویر زیر خواهد بود.
با توجه به خروجی در تصویر بالا ، نشان میدهد IPv4 و IPv6 در این zone فعال است و پورتهای 80 ، 2222 و 2323 باز می باشند.
همچنین این Zone بر روی اینترفیس eno16777728 فعال می باشد.
برای دریافت تنظیمات تمام zone ها دستور زیر کاربردی است.
1
|
sudo firewall–cmd —list–all–zones
|
کار با سرویسهای FirewallD
FirewallD برای سادگی کار مدیران لینوکسی ، تنظیمات سرویسهایی را از پیش کانفیگ کرده و شما تنها نیاز است که از نام آنها استفاده کنید تا تنظیمات بر zone مورد نظر اعمال شود.
همچنین شما میتوانید به دلخواه خود سرویس را معرفی کنید.
فایل تنظیمات تمام سرویسها از پیش تعیین شده در دایرکتوری usr/lib/firewalld/services/ و سرویسهایی که کاربران تعریف میکنند در دایرکتوری etc/firewalld/services/ قرار دارند.
برای دریافت لیست سرویسهای از پیش تنظیم شده دستور زیر را وارد کنید.
1
|
sudo firewall–cmd —get–services
|
برای فعال و یا غیرفعال کردن یک سرویس میتوانید از دستورات زیر بهره ببرید.
1
2
|
sudo firewall–cmd —zone=public —add–service=http —permanent
sudo firewall–cmd —zone=public —remove–service=http —permanent
|
Allow و Deny کردن پورت و پروتکل دلخواه در FirewallD
برای دسترسی دادن به یک پورت به مانند پورت 12345 به شکل زیر اقدام کنید.
1
|
sudo firewall–cmd —zone=public —add–port=12345/tcp —permanent
|
همچنین برای حذف پورت 12345 که در دستور قبل دسترسی داده شد ، از دستور زیر استفاده میگردد.
1
|
sudo firewall–cmd —zone=public —remove–port=12345/tcp —permanent
|
تفاوت دو دستور قبل تنها در کلمات add و remove است که به ترتیب یک پورت را اضافه و یا حذف میکنند.
port forwarding در فایروال FirewallD
برای فوروارد کردن یک پورت به پورتی دیگر همانند دستور زیر میتوان اقدام کرد.
1
|
sudo firewall–cmd —zone=“public” —add–forward–port=port=80:proto=tcp:toport=12345
|
در مثال بالا پورت 80 به پورت 12345 فوروارد شده است.
حال برای فوروارد کردن یک پورت به سرور دیگر از روش زیر استفاده می گردد.
ابتدا قابلیت masquerade را با دستور زیر در zone مورد نظر فعال کنید.
1
|
sudo firewall–cmd —zone=public —add–masquerade
|
سپس به شکل زیر میتوانید پورت را بر روی یک سرور دیگر فوروارد کنید.
1
|
sudo firewall–cmd —zone=“public” —add–forward–port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1
|
در مثال بالا پورت 80 به پورت 8080 در سرور 192.168.1.1 فوروارد شده است.
در نهایت برای حذف دستور پورت فوروارد بالا از دستور زیر استفاده کنید.
1
|
sudo firewall–cmd —zone=public —remove–masquerade
|
در این آموزش نحوه باز و بستن پورت ها ، اضافه کردن و حذف سرویس ها و همچنین port Forwarding را در FirewallD فرا گرفتید.
در مقالات بعدی به تنظیمات پیشرفته کانفیگ FirewallD در CentOS و آموزش دستورات Rich Rules میپردازیم.
امیدواریم آموزش کانفیگ FirewallD در CentOS برای شما مفید واقع شده باشد.