Saturday, February 10, 2018

Managing Firewalld in RHEL7 Part-1

            အခု article မှာတော့ RHEL7 ရဲ့ default firewall အနေနဲ့အသုံးပြုသော #firewalld အကြောင်းကိုပြောချင်ပါတယ်။ RHEL 7 မတိုင်ခင်အထိ အရင် RHEL version တွေမှာ #iptables ကိုအသုံးပြုပြီး Linux firewall configuration ပြုလုပ်ပါတယ်။ #iptables နဲ့ #firewalld တို့က အလုပ်လုပ်ပုံခြင်း ကွဲပြားတဲ့အတွက် နှစ်ခု စလုံးကို system ပေါ်မှာ install လုပ်ရင် conflict ဖြစ်ပါတယ်။

Basic Understanding Firewalld
            ပုံမှန်ကတော့ အခု firewalld (or) iptables ပဲဖြစ်ဖြစ် packet filtering ပုံစံပါပဲ #firewalld ကိုအသုံးပြုပြီးတော့ အရင်အတိုင်းပဲ ဥပမာ ကျွန်တော့်တို့ services တွေကို "allow" လုပ်တယ် "deny" လုပ်တယ် #iptables နဲ့ ကွဲပြားသွားတာက #firewalld က service name တွေနဲ့ အသုံးပြုလို့ရသွားတယ်။ ဥပမာ #iptables နဲ့ဆို webserver allow လုပ်ဖို့အတွက် port 80/443 ဆိုပြီးသုံးရပြီး #firewalld မှာကျ http (or) https ဆိုပြီး "name" နဲ့အသုံးပြုနိုင်သွားတယ်။ နောက် ipv6 အတွက်ဆိုရင် #ip6tables command ကိုသတ်သတ်အသုံးပြုရပြီး #firewalld မှာ သတ်သတ် command ပြောင်းသုံးရတာမျိုးမရှိတာမျိုးကွဲပြားပါတယ်။ နောက်ထပ်ကွာပြားချက်တစ်ခုကတော့ #iptables သည် rules တွေကို read လုပ်ဖို့ အတွက် service restart လုပ်ဖို့လိုအပ်ပြီး #firewalld မှာကျ restart လုပ်ဖို့မလိုအပ်ပဲ rules တွေကို modify လုပ်နိုင်ပါတယ်။

             #Firewalld ကို firewalld daemon process နဲ့ထိန်းချူပ်ထားပြီး #iptables ရဲ့ အလုပ်လုပ်ပုံကတော့ daemon process မရှိပဲ low-level tool အနေနဲ့ netfilter kernel ကို တိုက်ရိုက်ထိတွေ့ပြီးအလုပ်လုပ်ပါတယ်။ Netfilter ဆိုတာက Linux firewalls တွေကို handle လုပ်ပေးတဲ့ kernel framework တစ်ခုဖြစ်ပါတယ်။  နောက်ထပ် တော်တော်များများ features {richrule, zones, puppet intergration,etc}  တွေပါ၀င်လာပါတယ်။ အသေးစိတ်သိချင်ရင် အောက်ကလင့်မှာလေ့လာလို့ရပါတယ်။ အခုဒီ article မှာတော့ zones ရယ် rich language rules အလုပ်လုပ်ပုံအကြောင်းကို ပြောသွားပါမယ်။
https://www.unixmen.com/iptables-vs-firewalld/
               #Firewalld ရဲ့ configuration file ကို /etc/firewalld & /usr/lib/firewalld အောက်မှာ သိမ်းထားပါတယ်။ Firewalld ကို manage လုပ်ဖို့အတွက် #firewall-config (GUI) နဲ့ firewalld-cmd (CLI) နှစ်မျိုးဖြင့် အသုံးပြုနိုင်ပါတယ်။ Systemd သည် firewalld ကို firewalld.service unit file နဲ့ ထိန်းချုပ်ပါတယ်။
           
ZONES
            #Firewalld ဟာ သတ်မှတ်ထားတဲ့ zones တွေနဲ့အလုပ်လုပ်ပါတယ်။ သူက incoming traffic တွေကို ကိုယ့်စိတ်ကြိုက် ဘယ် interface ကလာတာကိုတော့ ဘယ် zone မှာ အလုပ်လုပ် အဲ့ zones ထဲမှာကိုမှ ဘယ် services ကိုတော့ allow/deny ပေး ပုံစံမျိုး အလုပ်လုပ်ပါတယ်။ Incoming traffice တွေကို သတ်မှတ်ထားတဲ့ zones တွေနဲ့ check လုပ်ပြီး allow (or) deny လုပ်ဖို့အတွက် zones တွေပေါ်မှာ ပြုလုပ်ထားတဲ့ configuration အတိုင်း လုပ်ဆောင်ပါတယ်။
              #Firewalld မှာ default predefined zones ၉ ခုရှိပါတယ်။



              Zones တွေထဲကမှ "truested" zone သည် "allow all incoming traffic" ဖြစ်ပြီး ကျန် zones တွေကတော့ specific သတ်မှတ်ထားသော services တွေမှလွဲပြီး ကျန်တာ deny all ပုံစံဖြစ်ပါတယ်။ firewalld ရဲ့ default zone ကတော့ public zone ဖြစ်ပြီးတော့ Firewalld rules တွေကို XML format သိမ်းပါတယ်။ Default Zones တွေအပြင် customize zones ပါ တည်ဆောက်ပြီး configure လုပ်နိုင်ပါတꩻယ်။



#Firewall-cmd Commands

          #firewall-cmd command အသုံးပြုပုံကို ပြောသွားမှာဖြစ်ပါတယ်။ Commands အသုံးပြုပုံများကို Man Page သို့မဟုတ် google မှာလဲ အလွယ်တကူရှာလို့ရတဲ့အတွက် Common ဖြစ်တဲ့ commands တွေကိုပဲ ပြောပြသွားမယ်။

#Check Status

         #firewalld service running ဖြစ်နေလား မဖြစ်နေလားသိချင်ရင် #firewall-cmd --state (or) systemctl status firewalld command ဖြစ်ကြည့်လို့ရပါတယ်။



#View Default Firewall Zone
          လက်ရှိ default ဖြစ်နေတဲ့ zone ကိုသိချင်ရင် #firewall-cmd --get-default-zone command ဖြင့်ကြည့်လိုရပါတယ်။

#Set default zone
            #firewall-cmd --set-default-zone ဖြင့် default zone ကိုပြောင်းချင်ရင်အသုံးပြုပါတယ်။

#List Active Zones
         Active ဖြစ်နေတဲ့ zones တွေကိုသိချင်ရင်တော့ #firewall-cmd --get-active-zones ကိုသုံးပါတယ်။ အောက်ပုံမှာဆိုရင် active zones "internal & Truested" ဆိုပြီးပြထားပါတယ်။ zone တစ်ခုချင်းဆီမှာ interface တစ်ခုချင်းဆီ အသုံးပြုလို့ရပါတယ်။

#Display all-available services
        Firewalld မှာ services name နဲ့ သတ်မှတ်နိုင်လို့ရတဲ့ available services list.တွေကိုသိချင်ရင် #firewall-cmd --get-services command ဖြင့် ကြည့်နိုင်ပါတယ်။

#Configuring Basic Firewalld Rule for Services
          Setting up basic firewall rule မှာတော့ သာမန် services တွေကို allow ပြုလုပ်ပေးတာဖြစ်ပါတယ်။ အောက်က ဖော်ပြထားတဲ့ သတ်မှတ်လိုက်သော rules တွေမှာ specific zone ကို မထည့်ထားလို့ရှိရင် firewalld က default zone မှာပဲ rules တွေကို apply သွားလုပ်ပါတယ်။ အရေးကြီးတာတစ်ခုမှာ firewall rule တစ်ခု ရေးတိုင်း "--permanent" option ပါရမည်ဖြစ်ပြီး rule တစ်ခု ထည့်ပြီးတိုင်း firewall reload လုပ်ပေးရမှာဖြစ်ပါတယ်။


#Check Firewall rules in default zone
              #firewall-cmd --list-services --zone=public ဆိုတာကတော့ zone တစ်ခုမှာ သတ်မှတ်ထားတဲ့ rules တွေကို သိချင်ရင်အသုံးပြုပါတယ်။ "--zone" option မပါရင်တော့ default zone မှာသတ်မှတ်ထားတဲ့ rulesတွေကိုပြပေးမှာဖြစ်ပါတယ်။ အောက်ပုံမှာ {ssh,http,dhcpv6-client} service တွေကို allow လုပ်ပေးထားတာ တွေ့ရမှာဖြစ်ပါတယ်။




*အခုထိ ဆိုရင်တော့ firewalld အကြောင်းရယ် firewalld ရဲ့ useful commands တွေကိုပြောပြထားပေးတယ်။ အခုထိဆိုရင်တောင် server တစ်ခုပေါ်မှာ services installation လုပ်ပြီးနောက် servicesတွေကို allow လုပ်ပေးရမယ်ဆိုရင် ဒီ article ကိုကြည့်ပြီးအသုံးပြုလို့ရနိုင်ပါတယ်။ နောက် article တွေမှာ ထပ်ပြီး firewalld အကြောင်းရေးပေးပါမယ်။

Please also Like and Follow Root Of Info Page
Share:

1 comment: