TACACS+ နဲ့ Windows AD ကိုတွဲပြီး အသုံးပြုနည်း – အပိုင်း (၁)
Last updated
Last updated
ဒီရက်ပိုင်းထဲမှာ စာရေးသူ အလုပ်နဲ့ ပတ်သတ်ပြီးတော့ ဘယ်လို Directory Services တွေကို production environment ထဲမှာ အသုံးပြုလို့ရသလဲဆိုတာကို လိုက်ရှာကြည့်ပါတယ်။ လက်ရှိ အလုပ်ထဲမှာ အသုံးပြုလို့ရအောင်လို့ စာရေးသူကိုယ်တိုင် TACACS+ ကို Ubuntu 18.04 LTS မှာတင်ပြီးအသုံးပြုနေတာ ၉ လကျော် ၁၀လ တောင်ရှိတော့မယ်ထင်ပါတယ်။ ဘာပြဿနာမှ ထွေထွေထူးထူး မရှိလို့ တော်တော်လေး အဆင်ပြေနေပါတယ်။ အစကနဦးပိုင်းမှာထဲက အလုပ်မှာ network device ပေါင်း ၅၀ ကနေ ၁၀၀ လောက်ရှိတဲ့ အထဲမှာ user login ရဲ့ authentication၊ authorization နဲ့ accouting (AAA) ကို centralized မလုပ်ထားလို့တော်တော်လေး လက်ဝင်ခဲ့ရပါတယ်။ AAA process ကို network device တစ်ခုချင်းစီမှာ local database နဲ့ local syslog ကိုပဲ အားကိုးခဲ့ရလို့ အချိန်လည်းကုန်၊ လူလည်း ပင်ပန်းနဲ့ ခရီးသိပ်မရောက်ခဲ့ ရပါဘူး။ တခါက privilege 15 local user account ရဲ့ password ကို ပြောင်းဖို့ကို ၂ ရက်လောက် အချိန်ယူပြီးတော့ တစ်ခုချင်းစီ လိုက်ပြီးတော့ လိုက်ပြောင်းရပါတယ်။ တော်တော်လည်းအချိန်ကုန်သလောက်၊ စိတ်လည်းတော်တော် ပင်ပန်းကြီးစွာ ပြီးအောင်လုပ်ခဲ့ရလို့ စာရေးသူစဉ်းစားမိတာတစ်ခုက အဲ့ဒီထက်လွယ်တဲ့ နည်းလမ်းများရှိမလား၊ နည်းလမ်း ရှိခဲ့ရင် ဘာဖြစ်လို့များ လွယ်အောင် မလုပ်သလဲဆိုပြီးတော့ အတွေးလေးဝင်လာမိပါတယ်။ စာရေးသူ ကိုယ်တိုင်ကလည်း အဲ့လိုမျိုး manual လုပ်ရတဲ့ အလုပ်တွေကို (လူကလည်း ငပျင်းမို့) မနှစ်မြို့ပါ။ automate လုပ်လို့ရတာမှန်သမျှကို မရရတဲ့ နည်းနဲ့ လူသက်သာအောင် လုပ်ထားချင်တာမို့ အမြဲတမ်းဆိုသလို နည်းလမ်းရှာတတ်တဲ့ သဘောလည်းရှိပါတယ်။ ဒါ့အပြင် human error ကြောင့် manual process တချို့တွေမှာ အမှားပိုပြီးတော့များနိုင်ပါတယ်။
အဲ့ဒီလိုနဲ့ centralized AAA server ကိုဘာဖြစ်လို့ အလုပ်မှာ မသုံးသလဲဆိုတာကို စူးစမ်းရင်းနဲ့ သိလိုက်ရတာကတော့ budget constraint ရှိနေလို့ Cisco တို့၊ Huawei တို့၊ HPE တို့ မှာရနိုင်တဲ့ user management application တွေကို အသုံးမပြုနိုင်တာကို သိလိုက်ရပါတယ်။ Networking infrastructure ထဲမှာက multi-vendor devices တွေကို အသုံးပြုလို့ cross-platform support/compatibility အတွက်လည်း implementation အပိုင်းမှာ အခက်အခဲအချို့ရှိနေတာကို သွားတွေ့ရပါတယ်။ အဲ့ဒီတော့ စာရေးသူအတွက် open-source ကမ္ဘာကနေ ရနိုင်တဲ့ solution တွေကို ရှာဖွေစမ်းသပ်ရင်းနဲ့ အလုပ်မှာ စတင် စမ်းသပ်အသုံးပြုဖြစ်တယ်လို့ ဆိုရမှာ ဖြစ်ပါတယ်။ ကိုယ့်အတွက်တော့ open-source ရဲ့ solution တွေကို production environment မှာ ဘယ်လိုအသုံးပြုနိုင်သလဲဆိုတာကို အလုပ်မှာ management နဲ့ principal network architect တွေကို စပြီးတော့ pitch လုပ်ရပါတော့တယ်။ စာရေးသူကိုယ်တိုင်က open-source သမားတစ်ယောက်ဖြစ်နေလို့ ကိုယ့်ဟာကို အလုပ်ဖြစ်နိုင်တယ်လို့တော့ ယုံကြည်နေမိပါတယ်။ Management ကတော့ open-source နဲ့ Linux မှာ free ရနိုင်ပေမယ့်လည်း GUI မပါလို့ Windows မဟုတ်လို့ဆိုပြီးတော့ သိပ်ပြီးတော့ လက်မခံချင်ခဲ့ပါဘူး။ နောက်ဆုံး တော့ budget မတက်နိုင်သေးလို့ စာရေးသူရဲ့ proposal ကိုလက်ခံလိုက်ရပါတယ်။
အစပိုင်းမှာတော့ ဘယ်ကနေဘယ်လို စရမှန်း ရေရေရာရာ မသိခဲ့သလို၊ ဘယ်လိုမျိုး ပုံစံမျိုးနဲ့ centralized AAA server ကိုအသုံးပြုပြီးတော့ network devices တွေကို authenticate၊ authorize လုပ်သလဲဆိုမျိုး သေချာရှင်းရှင်းလင်းလင်း မသိခဲ့ပါဘူး။ Open-source solution တွေကို production environment မှာဘယ်လို အသုံးပြုနိုင်သလဲဆိုတာကိုပဲ စိတ်အားထက်သန်စွာ စမ်းသပ်ချင်စိတ် တစ်ခုတည်းနဲ့ လုပ်ခဲ့တာပါ။ ကိုယ်တိုင်က proprietary မှာရနိုင်တဲ့ solution မှန်သမျှကို အယုံအကြည်သိပ်မရှိလို့ open-source က ရနိုင်တာတွေ အားလုံးကို လိုက်လံ ရှာဖွေခဲ့ရပါတယ်။ ပထမဆုံး အနေနဲ့ CentOS 7 ပေါ်မှာ FreeRADIUS ကိုတင်ပြီးတော့ run ကြည့်တာ အဆင်တော့ပြေပါရဲ့၊ သို့သော် network က multi-vendor devices တွေကို အသုံးပြုထားလို့ တချို့ vendor တွေက RADIUS နဲ့ အလုပ်သိပ်မဖြစ်ဘူးထင်ပါတယ်။ ဒါနဲ့ TACACS+ တို့၊ Diameter တို့ကို စတင်စမ်းသပ်ဖို့ ဖြစ်လာပြန်ပါတယ်။ ဒီလိုနဲ့ပဲ TACACS+ ကို CentOS 7 ပေါ်မှာစတင် အသုံးပြုနိုင်ဖို့ ကြိုးစားကြည့်ပါတယ်။ CentOS 7 မှာပါလာတဲ့ default repo မှာ TACACS+ package ကို YUM နဲ့ ရှာကြည့်တာမရှိလို့၊ Ubuntu 18.04 LTS မှာ ရှာကြည့်လို့ သွားတွေ့တာနဲ့ Ubuntu distro ကို အသုံးပြုဖို့ရာ ဖြစ်လာပါတော့တယ်။ အကျဉ်းချုပ်အားဖြင့်တော့ TACACS+ ကို Ubuntu 18.04 LTS နဲ့ staging အဆင့်မှာ ပုံစံမျိုးစုံ စမ်းသပ်လို့အောင်မြင်တာနဲ့ production environment မှာစတင် အသုံးပြုဖြစ်တာ အခုဆို တစ်နှစ်တောင်ပြည့်ပါတော့မယ်။
TACACS+ ကို install လုပ်ဖို့အတွက် စာရေးသူ Ubuntu 18.04 LTS ကိုအသုံးပြုပါတယ်။ Ubuntu 18.04 LTS ကို fresh install လုပ်ပြီးတော့နဲ့ အောက်ကအတိုင်း update ၊ upgrade လုပ်ပါ။
ပြီးတာနဲ့ TACACS+ ကို apt install command နဲ့အောက်ပါအတိုင်း စတင် install လုပ်လို့ရပါပြီ။
TACACS+ ကို install လုပ်ပြီးတာနဲ့ လက်ရှိ local user database နဲ့ တွဲဖက် အသုံးပြုပုံကို အောက်ပါအတိုင်း တွေ့ရမှာဖြစ်ပါတယ်။ အဓိက အနေနဲ့ USERS ACCOUNTS HERE ဆိုတဲ့ section မှာ ကိုယ့်ရဲ့ local user account နဲ့ သက်ဆိုင်ရာ group ကို member အားဖြင့် ထည့်လိုက်ရုံပါပဲ။ ဥပမာ အနေနဲ့ user “juno” ကို TACACS+ server မှာ system user အနေနဲ့ထည့်တာ ကိုပြထားပါတယ်။ user “tyla” ကတော့ Ubuntu installation လုပ်ကတည်း က sudoer အနေနဲ့ထည့်ထားတဲ့ user account ဖြစ်ပါတယ်။ GROUPS HERE ဆိုတဲ့ section မှာတော့ သက်ဆိုင်ရာ group တခုချင်းစီရဲ့ attributes/properties တွေကို အောက်ကအတိုင်းတွေရမှာ ဖြစ်ပါတယ်။ tac_plus.conf ရဲ့ configuration တစ်လိုင်းချင်းစီရဲ့ ဆိုလိုရင်းကိုတော့ အသေးစိတ်မသွားတော့ပါဘူး။ self-descriptive ဖြစ်ပြီးသားမို့ရှင်းပါတယ်။
လက်ရှိမှာတော့ network ပေါ်မှာ networking devices တွေကို login လုပ်ပြီးတော့ management လုပ်တဲ့ network engineer အများကြီး မရှိသေးပါဘူး။ နောက်တဆင့်အနေနဲ့ future proof ဖြစ်အောင်လို့ Junior Network Engineerတွေနဲ့ တခြား Sysadmin တွေပါ ဝင်ရောက်ကြည့်ရှုပြီးတော့ troubleshoot လုပ်ချင်တယ်ဆိုရင်တော့ လက်ရှိ setup ဖြစ်တဲ့ standalone TACACS+ server က နောင်တချိန်မှာ အလုပ်သိပ်ဖြစ်မှာ မဟုတ်ပါဘူး။ ဒါ့အပြင် အလုပ်မှာ စာရေးသူလိုရင် လိုသလို service တစ်ခုပြီး တစ်ခု deploy လုပ်လာလိုက်တာ အခုဆို manage လုပ်ရမယ့် service တွေဟာလည်း TACACS+ တစ်ခုတည်းမဟုတ်တော့လို့၊ တစုတစည်း တည်း user တွေကို manage လုပ်ဖို့ရာ directory services တွေကို ထပ်မံ ရှာပုံတော်ထွက်ရပြန်ပါတယ်။ ထုံးစံအတိုင်း open-source မှာရနိုင်တဲ့ solution တွေကိုပဲ အားစိုက်ပြီးတော့ ရှာဖွေခဲ့ပါတယ်။ Distro အနေနဲ့တော့ CentOS 7 ကို production မှာသုံးရတာ အကြိုက်တွေ့လို့ ဦးစားပေးပြီးတော့ စမ်းသပ်ပါတယ်။ နောက်ဆုံး အဆင်မပြေတော့မှ alternative အနေနဲ့ Ubuntu/Debian ဘက်ကိုလှည့်ပါတယ်။ တချို့ package တွေအတွက် တော့ dpkg ဟာပိုလို့ အဆင်ပြေပါတယ်။ ကိုယ်သုံးမယ့် ဟာပေါ်မှာမူတည်ပြီးတော့ အဆင်ပြေသလို distro ကို စာရေးသူ အသုံးပြုပါတယ်။ ပထမဆုံး အနေနဲ့ OpenLDAP ကို standalone အနေနဲ့ စမ်းသပ်ကြည့်ပါတယ်။ လုံးဝ အဆင်မပြေတာနဲ့ပဲ SAMBA ကို OpenLDAP နဲ့တွဲပြီးတော့ အသုံးပြုကြည့်တာလည်း ထင်သလောက် ခရီးမရောက်ခဲ့ပါဘူး။ WebUI အနေနဲ့တော့ LAM တို့ phpLDAPadmin တို့ ကို အသုံးပြုပြီးတော့ စမ်းသပ်ကြည့်ပါတယ်။ ဒါလည်း အဆင်ပြေတာနဲ့ အဆင်သင့် ပြင်ထားဆင်ထားပြီးသားဖြစ်တဲ့ Zentyal 6.0 Development Edition နဲ့ Red Hat ရဲ့ FreeIPA တို့ဘက်ကို တချက်လောက်တော့ ကြည့်မှဖြစ်မယ်ဆိုပြီးတော့၊ တခုပြီးတော့ တခု စမ်းသပ်ကြည့်ရပါတယ်။ အထူးသဖြင့် ဒီလို အဆင်သင့် ထုတ်ပြီးပိုးပြီးသား solution တွေဟာ deployment အတွက်တော့ အချိန်တော်တော်သက်သာသွားပြီး အလုပ်ပိုပြီးဖြစ်တာကို သွားတွေ့ရပါတော့တယ်။ Zentyal 6.0 ဟာ Ubuntu 18.04 LTS မှာ အခြေခံထားပြီးတော့ FreeIPA ကိုတော့ CentOS 7 ပေါ်မှာ စာရေးသူ တင်ပြီးတော့ အသုံးပြုကြည့်တာလည်း ဖြစ်ပါတယ်။ နှစ်ခုလုံး အစပိုင်းမှာ အားလုံး အဆင်ပြေသလို ရှိသော်လည်း နှစ်ရက်သုံးရက်လောက် စမ်းသပ်ရင်း ကနေ တစ်ခုမဟုတ် တစ်ခုတော့ ထပြီး ဖောက်ပါတယ်။ system/package update တစ်ခါနှစ်ခါ လုပ်ပြီးသွားရင် ပုံမှန် အလုပ်လုပ် နေတဲ့ directory service က error တစ်ခုမဟုတ် တစ်ခုတက်လာတတ်ပါတယ်။ နောက်ဆုံးမှာတော့ စာရေးသူ လုံးဝ လက်လျှော့ လိုက်ပြီးတော့ Windows 2019 ADDS ကိုပဲ directory service အနေနဲ့ သုံးတော့မယ်လို့ ဆုံးဖြတ်လိုက်ရပါတော့တယ်။ အဲ့ဒီလိုနဲ့ အောက်ကအတိုင်း Windows 2019 ADDS ကိုပဲ TACACS+ integration မှာသုံးရပါတော့တယ်။ Windows 2019 ADDS မှာ primary domain controller နဲ့ secondary domain controller ကိုဘယ်လို setup လုပ်သလဲဆိုတာကိုတော့ ဒီ post မှာ မထည့်တော့ပါဘူး။ Windows Sysadmins တိုင်း ဘယ်လို install လုပ်ရသလဲ၊ ADDS role ကို ဘယ်လို add လုပ်သလဲဆိုတာ သိနိုင်မယ်လို့ စာရေးသူ ယူဆပါတယ်။ ဒီတော့… နောက်တဆင့်မသွားခင်မှာ Windows 2019 ADDS ကိုအရင် setup လုပ်ပါ။ ပြီးတော့မှ… နောက်အဆင့်ကို ဆက်သွားပါ။ Windows 2019 ADDS ရဲ့ domain name ကိုတော့ စာရေးသူ gnu.net အနေနဲ့ ဒီ tutorial ထည့်သွင်း အသုံးပြုထားပါတယ်။
အခုဆိုရင်တော့ TACACS+ ကို run ထားတဲ့ Ubuntu 18.04 LTS box ဟာ GNU.NET ဆိုတဲ့ domain ကို join ပြီးသွားပါပြီ။ TACACS+ server ကို ssh နဲ့ ဝင်တဲ့အခါမှာ အောက်ကအတိုင်း ဝင်လို့ရပါပြီ။
ဒီ post မှာတော့ ဒီလောက်နဲ့ပဲရပ်လိုက်ပါတော့မယ်။ နောက် post မှာတော့ TACACS+ နဲ့ Windows AD ကိုဘယ်လို integration လုပ်ပုံဆက်ရှင်းပါ့မယ်။