در مطالب قبلی به توضیح فعال سازی و نصب FirewallD و همچنین کانفیگ FirewallD پرداختیم و توضیحاتی نسبت به تاریخچه FirewallD منتشر کردیم. حال در این مطلب از سری مطالب آموزش FirewallD قصد داریم با آموزش تنظیمات پیشرفته FirewallD در خدمت شما باشیم.
FirewallD نسبت به iptables پیشرفتهتر است و تنظیمات آن به گونه ایست که فهم آن را برای کاربران سایر سیستم عامل ها سادهتر می کند.
مدیران شبکهای که با فایروال ویندوز و یا فایروالهای سخت افزاری دیگری کار کردهاند ، براحتی میتوانند با FirewallD کار کنند.
در این مطلب ما به 2 موضوع بازمانده از مطالب قبلی میپردازیم که به شرح ذیل می باشد.
1- ساخت یک مجموعه قوانین در FirewallD
2- نحوه تنظیم و نوشتن Rich Role
با ادامه مطلب همراه ما باشید.
تنظیمات پیشرفته FirewallD
ساخت و تنظیم یک مجموعه قوانین در FirewallD
همانطور که در مطالب قبلی ذکر شد FirewallD دارای zone های متعددی است که از قبل تنظیم شده و شما میتوانید هر یک از آنها به عنوان zone پیشفرض مشخص کرده و یا آن را به یک اینترفیس خاص نسبت دهید.
در مثال پایین قصد داریم ( DMZ ( demilitarized zone را به عنوان زون پیشفرض انتخاب کنیم.
sudo firewall-cmd --set-default-zone=dmz
نکته : همانطور که میدانید DMZ در فایروالهای به معنای محدودهای است که تمام پورتها بلاک بوده و تنها ICMP باز خواهد بود ، در لینوکس محدوده DMZ تنها به ICMP و SSH محدود شده و به غیر از این دو سرویس تمام پورتها و پروتکلها بلاک میباشند.
پس از فعال کردن زون DMZ ، در مثال بعدی این zone را به اینترفیس eth0 نسبت می دهیم.
sudo firewall-cmd --zone=dmz --add-interface=eth0
حال برای اجازه دسترسی به http و https در DMZ میتوانید دستورات زیر را وارد کنید.
sudo firewall-cmd --zone=dmz --add-service=http --permanent sudo firewall-cmd --zone=dmz --add-service=https --permanent
دقت داشته باشید برای سایر سرویسها شما میتوانید به جای http و یا https نام سرویس مورد نظر خود را بنویسید.
پس از وارد کردن دستورات بالا و اجرا شدن آنها یک بار firewalld را با دستور زیر ریلود کنید.
sudo firewall-cmd --reload
بدین شکل تنظیمات شما اعمال خواهد شد.
در ادامه به آموزش دستورات Rich role در این مطلب ( تنظیمات پیشرفته FirewallD ) می پردازیم.
نحوه تنظیم و نوشتن Rich Role
Rich Role در اصل نوعی از قوانین است که مدیر لینوکس میتواند بدون استفاده از سرویسهای از پیش تعیین شده و یا استفاده از حالت مختلف firewalld ، رول مورد نظر خود را نوشته و آن را اجرا کند.
نکته : یکی از قابلیتهای iptables ، اسکریپت نویسی و اجرای رولها نسبت به شرایط خاص بود. با استفاده از ربان Rich Role شما میتوانید اسریکپتهایی مانند iptables را نوشته و اجرا کنید.
ساختار دستورات Rich Role به شکل زیر است.
sudo firewall-cmd --zone=ZONENAME --add-rich-rule 'rule family="RICHROLENAME" source address=YOURADDRESS ACTION'
برای درک بهتر Rich Role ها به مثال های زیر توجه کنید.
در مثل زیر یک Rich Role به زون public با نام IPv4 اضافه شده و تمام ترافیکهایی که از سمت 192.168.0.10 ارسال میشود را قبول میکند.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.0.10 accept'
مثال بعدی ترافیکهای وارده از سمت 192.168.1.10 را میپذیرد ولی در صورت ارسال ترافیک بر روی پورت 80 ، ترافیک Reject خواهد شد.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=80 protocol=tcp reject'
مثال پیشرفتهتر همراه با port forward داخلی
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=192.168.1.10 forward-port port=80 protocol=tcp to-port=6540'
در مثال بالا ، ترافیکهای دریافت شده از سمت 192.168.1.10 که از پورت 80 ارسال شده را دریافت و به پورت 6540 در سرور فوروارد مینماید.
درمثالهای بالا نمونههایی از زبان Rich Role ها را ملاحظه کردید و در صورت نیاز میتوانید با وارد کردن دستور زیر اطاعات کاملتری نسبت به زبان Rich Role بدست آورید.
سایر دستورات کاربردی Rich role
man firewalld.richlanguage
برای دریافت لیست تمامی Rich Role های نوشته شده دستور زیر را وارد نمایید.
sudo firewall-cmd --list-rich-rules
برای پاک کردن یک Rich Role دستور زیر کاربردی است.
دقت داشته باشید که در پایان به جای RICHROLE باید نام رول خود را به صورت کامل وارد کنید.
sudo firewall-cmd --remove-rich-rule RICHROLE
به طور مثال rich role در مراحل قبلی اضافه کرده بودیم با دستور زیر حذف خواهد شد.
sudo firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address=192.168.0.10 accept'
امیدواریم آموزش تنظیمات پیشرفته FirewallD برای شما مفید واقع شده باشد.
پیشنهاد میگردد مطالب قبلی منتشر شده نسبت به FirewallD را مطالعه فرمایید.