What is RADIUS?
အားလုံးပဲ မင်္ဂလာပါ။ ဒီနေ့ ကျွန်တော် Knowledge Sharing လုပ်ပေးချင်တဲ့ အကြောင်းအရာကတော့ RADIUS အကြောင်းပဲ ဖြစ်ပါတယ်။ RADIUS ရဲ့ အရှည်ကောက်က (Remote Authentication Dail-in User Service) ဖြစ်ပါတယ်။ သူ့ကို RADIUS အပြင် Triple A (AAA) လို့လည်းခေါ်ပါသေးတယ်။ AAA ရဲ့ အဓိပ္ပာယ်ကတော့ Authentication, Authorization, Accounting ဖြစ်ပါတယ်။ တစ်နည်းအားဖြင့် RADIUS ရဲ့ Nickname ကတော့ Triple A ပေါ့နော်။ ဆိုတော့ နာမည်အတိုင်းပဲ အသုံးပြုသူ (User) တွေကို တစ်နေရာတည်းကနေ ထိန်းချူပ်ချင်တာမျိုး၊ ပြီးရင် Network ထဲမှာရှိတဲ့ Device တွေကို Authentication လုပ်ပြီးမှ Access လုပ်လို့ရတာမျိုး၊ တစ်နည်းအားဖြင့် ပိုပြီးလုံခြုံမှုရှိအောင်သုံးတဲ့ Service တစ်မျိုးပဲ ဖြစ်ပါတယ်။

RADIUS က Client/Server အမျိုးအစားဖြစ်ပြီးတော့ သူက Application Layer မှာအဓိက အလုပ်လုပ်ပါတယ်။ TCP/UDP နှစ်မျိုးကိုလည်းသုံးပါတယ်။ Client/Server မှာတော့ သူကိုယ်တိုင်က Server ဖြစ်ပြီးတော့ Client တွေ ကတော့ Network Devices တွေပဲဖြစ်ပါတယ်။ RADIUS Client တွေကို NAS (Network Access Servers) လို့ ခေါ်ပါတယ်။ ဒီနေရာမှာ Server ဆိုပေမယ့် Networking Devices တွေလည်းပါပါတယ်။ ဥပမာ - RADIUS ကို သုံးပြီးတော့ WiFi Hostspot လွှင့်တာမျိုးဆိုရင် WiFi Hotspot လွှင့်မယ့် Devices က (NAS) တစ်နည်းအားဖြင့် RADIUS Client ဖြစ်သွားပါပြီ။ Client နောက်မှာတော့ User ရှိပါမယ်။ User က RADIUS Client ကနေတဆင့် RADIUS Server ကို Authentication သွားလုပ်မှာပါ။ အောက်မှာ နမူနာပုံပြပေးထားပါတယ်။
AAA မှာ ပထမဦးဆုံးဖြစ်တဲ့ Authentication က User တွေကို ပထမအဆင့် အနေနဲ့ Authentication လှမ်းလုပ်ပါတယ်။ ဥပမာ RADIUS Server က Account တစ်ခုဆောက်ပေးထားတယ်။ Username: user01, Password: user123 ဆိုပါတော့၊ ဒီတော့ User ကနေသူရဲ့ Phone ဒါမှမဟုတ် တစ်နေရာရာ ကနေ ဒီ Username, ဒီ Password ကိုရိုက်လိုက်မယ်ဆိုရင် RADIUS Server မှာ Authentication သွားလုပ်ပါတယ်။ ဒီဟာက တကယ် ရှိနေလား၊ ရှိမနေဘူးလားပေါ့နော်၊ ဒီအဆင့်မှာ Pass ဖြစ်တယ်ဆိုရင်တော့ Authentication အဆင့်ပြီးသွားပါပြီ။
နောက်တစ်ဆင့်ကတော့ Authorization, ဒီအဆင့်မှာတော့ User က Authentication ဖြစ်သွားပြီဆိုရင် ဒီ User က ဘယ် Network, ဘယ် Device, ကိုလုပ်ပိုင်ခွင့်ပေးမယ်လို့ပြောလို့ ရပါတယ်။ ဒီ User က View Only လား၊ Read/Write လား စသဖြင့်ပေါ့။ User Privilege, User Restriction ကိုအဓိက သတ်မှတ်ပါတယ်။
နောက်ဆုံး Accounting အဆင့်ကတော့ User Activity တွေကိုသိမ်းထားတာပါ၊ ဥပမာအနေနဲ့ User Login Time, Logout Time, Session Duration, Amount of Data Transfer ကိုဆိုလိုချင်တာပါ။ ဒီ Record တွေကိုသုံးပြီးတော့ User တွေကို Report ထုတ်ပေးတာမျိုး ဒါမှမဟုတ် Auditing လုပ်တဲ့အခါမျိုးမှာဆိုရင် အသုံးဝင်ပါတယ်။
အောက်ကပုံကတော့ RADIUS Authentication လုပ်တဲ့ Process ပဲဖြစ်ပါတယ်။

RADIUS က Authentication လုပ်ဖို့အတွက် UDP 1812 ကိုသုံးပြီးတော့ Accounting အလုပ်ဖို့အတွက်ကိုတော့ UDP 1813 ကိုသုံးပါတယ်။ ဒီနေရာမှာ Authorization Port ကဘာလို့ပျောက်နေတာလဲ ဆိုရင် RADIUS Server က Authentication အတွက်ရော၊ Authorization အတွက်ရော 1812 ကိုသုံးထားလို့ ပဲဖြစ်ပါတယ်။ RADIUS Server ကို ကိုယ်တိုင်လုပ်ကြည့်ချင်တယ်ဆိုရင်တော့ Opensource FreeRADIUS ရှိပါတယ်။ Only CLI ပါ။ NAS ဆောက်တာ၊ User ဆောက်တာက အစ Configuration File မှာသွားပြင်ရမှာပါ။ ဒါကိုမှ တစ်ချို့က MySQL/Mariadb နဲ့တွဲပြီးသုံးကြပါတယ်။ အဲဒီ့အပြင်ကို DaloRADIUS လို့ခေါ်တဲ့ Web GUI နဲ့ တွဲသုံးလို့လည်း ရပါတယ်။ Web ကနေဆိုရင်တော့ Configuration လုပ်တာပိုပြီးမြန်တာပေါ့နော်။ ဒါကတော့ RADIUS ရဲ့ တစ်စိတ် တစ်ပိုင်းပဲရှိပါသေးတယ်။ ကြားထဲမှာ အလုပ်လုပ်သွားတဲ့ Process Details တွေမပါသေးပါဘူး။ Process Details တွေကိုတော့ နောက်လာမယ့် Blog မှာ သီးသန့်ထပ်ရေးပေးပါအုန်းမယ်။ ဒီနေ့ကတော့ ဒီမှာပဲ အဆုံးသတ်ပါရစေ ခင်ဗျာ။ ဝင်ရောက်ဖတ်ရှူပေးတဲ့သူတွေကို အထူးပဲ ကျေးဇူးတင်ရှိပါတယ်။ အဆင်ပြေတယ်ဆိုရင်တော့ သူများတွေ သိအောင် Share တစ်ချက်နှိပ်ပေးခဲ့ကြပါခင်ဗျ။ ကျေးဇူးတင်ပါတယ်။
Written By Aung Thu Myint
Last updated