Tuesday, January 14, 2014

How to Integrate Active Directory and Linux SAMBA File Server with CentOS 6.4



               မတူညီတဲ့ platform နှစ်ခုကို အသုံးပြုပြီးတော့ Implementation လုပ်ထားတဲ့ Tutorial ဖြစ်ပါတယ်။ ဒီနေရာမှာ ဘာလို့ File Server ကို Linux သုံးလဲဆိုရင် ကျွန်တော်ရဲ့အမြင်ကတော့ OS ရဲ့ Stable ဖြစ်မှု File Server ဖြစ်သည့်အလျောက် Traffic ကို Windows ထက် ပိုတည်ငြိမ်အောင်ထိန်းနိုင်မှု ကိုယ်သည် Security ပိုင်း ကျွမ်းကျင်သူဖြစ်ပါက Linuxသည် Windows ထက် Security ပိုင်းတွင် ပိုကောင်းမွန်မှု Clients များ ထံမှ Windows Virus များပါလာခဲ့သည်ရှိသော် platform မတူညီသောကြောင့် အနည်ဆုံး တော့ Virus ရန်မှ ကင်းနိုင်မှာ ဖြစ်ပါတယ်။

Requirement For This Tutorial 

 1. Windows Server 2008 ( Active Directory Installed ဖြစ်ထားရမည် )

 2. CentOS 6.4 ( SAMBA File Server အနေနှင့်သုံးရန် )

 3. Client Machine ( Win-7 or Xp )

1.Windows Server 2008
Windows Server ဘက်ခြမ်းမှာတော့ ကျွန်တော်တို့ Samba နဲ့ စမ်းဖို့အတွက် OU တွေ ဆောက်ထားမယ် နောက် သက်ဆိုင်ရာ OU အလိုက် Users and Groups တွေ ကြိုတင်ဆောက်ထားမှာဖြစ်ပါတယ်
   
2.Configuring SAMBA Server
                             အခုစတင် လုပ်ဆောင်တော့မယ့် SAMBA မှာ လုပ်ရမည့်အဆင့်တွေနည်းနည်းများပါတယ်။ အရင်ဆုံး summary ပြောမယ်ဆိုရင် SAMBA ကို Linux မှာ သွင်းရန် အရင်ဆုံး Centos ဖြစ်သောကြောင့် RPM ဖြစ် အခြေခံံထားတဲ့အတွက် "samba rpm packages" တွေ အရင်ဆုံးInstall လုပ်မယ် (Samba Linux OS ပေါ်တွင် packages download ဆွဲရန် Internet Connection ရှိထားရမည်) ပြီးရင် ကျွန်တော်တို့ ရဲ့ အခု SAMBA သည် Domain နဲ့ ပေါင်းမှာ ဖြစ်သည့်အတွက် SAMBA Server ကို Domain ရဲ့ Member အနေနှင့် သွင်းရပါမယ် (ယခု tutorial တွင် samba-winbind ဆိုသည့် service နှင့် လုပ်နိုင်သည်)

               နောက် SAMBA Config များ လုပ်ဆောင်မည်။ ထို့နောက် Active Directory သည် Kerberos Authentication သုံးတော့ကြောင့် Centos တွင်  kerberos config ပြုလုပ်ရမည်ဖြစ်သည်။ထို့နောက် Linux Firewall တွင် SAMBA နှင့် NetBIOS တို့အတွက် ports များဖွင့်မည်။ ထို့နောက် Folder Permission များ သက်မှတ်ပြီး Clients စက်များဖြစ် စမ်းသပ်မည်။ စမ်းသပ်ရာတွင် အဆင်ပြေစေရန် Linux ဧ။် Advance Feature ဖြစ်သော SELinux ကို ပိတ်ထားရမည်ဖြစ်သည်။


1. SAMBA Packages Installation
အရင်ဆုံး "Terminal" ဖွင့်ပါ " Terminal " ထဲတွင် "root access" ဖြင့် " yum install samba-* " ဆိုလိုသည်မှာ YUM (online မှ တိုက်ရိုက် Install လုပ်ရာတွင် RPM Based OS များတွင်သုံးသည်)  samba နှင့် ပတ်သက်သမျှအကုန် Install လုပ်မည်ဖြစ်သည်။

 ပုံတွင် ပြထားသည့်အတိုင်း " yum install samba-* " ရိုက်လိုက်သောအခါ လိုအပ်သော samba packages များကို ပြပြီး.. Download ဆွဲချမည့် size ပမာဏကို ပြထားပါသည် "y" လုပ်ပါက Installation စတည်မည်ဖြစ်သည်။ ပြီးသွားသောအခါ "complete" ဆိုပြီးပြလိမ့်မည်။

  • နောက်တစ်ဆင့်အနေနှင့် Domain နှင့် Join မည်ဖြစ်ပါသည်။ ဒီနေရာမှာအရင်ဦးဆုံးလုပ်ဆောင်ရမည့်အချက်တစ်ချို့ရှိပါတယ် ပထမဦးစွာ SAMBA Server ဧ။် Computer Name ကို Domain ၏ Name ပါဝင်အောင် တစ်နည်းအားဖြင့် FQDN Name ဖြစ်ထားရပါမည်။ ဥပမာ Domain Name သည် svr1.openfire.com ဆိုပါက SAMBA ဘက်ခြမ်းတွင် linux.openfire.com ဆိုပြီး Computer Name ကို ပေးထားရမည်။ ထို့နောက် Domain ဘက်ခြမ်းမှ DNS တွင် SAMBA Serverအတွက် host(A) record တစ်ခုဆောက်ထားရမည်။


  • Domain ဘက်ခြမ်းတွင် လုပ်ဆောင်ပြီးပါက SAMBA ဘက်မှ Domain စတင် join မည်ဖြစ်ပါတယ်။
  • အရင်ဆုံး SAMBA ဘက် ခြမ်းတွင် Primary DNS သည် Domain Server IP ဖြစ်ရမည်။ ချိတ်ရန်အတွက် samba-winbind ဆိုသော Service ကို အသုံးပြုပါမည်။ 


 ပုံတွင် ပြထားသည့်အတိုင်း System => Administrator => Authentication ကို ရွေးပါမည်။ နောက်က Terminal တွင် Domain ၏ IP (192.168.10.1) သည် Primary ဖြစ်နေသည်။
ထို့နောက် Authentication ကို နှိပ်လိုက်သောအခါ Authentication Configuration ဆိုသော box တစ်ခုကြလာမည်ဖြစ်ပြီး ထိုထဲတွင်မှ လိုအပ်သည်များကို ပြုပြင်ရမည် ပုံထဲကအတိုင်းလုပ်ကြည့်ပါ။
ဒုတိယမြောက် Advanced Options ဆိုသော Tab တွင် " Create Home Directories on First Login " ဆိုသောနေရာတွင် အမှန် ခြစ်ထားခဲ့ပါက Domain Administrator အကောင့် ဖြင့် SAMBA ထဲသို့ ဝင်သုံးသောအခါ Profile Account Directory ထားထားရန်ဖြစ်ပါသည်။


  • ထိုနောက် ပထမ Tab ကို ပြန်သွားပြီး " Join Domain " ကို နှိပ်ပါ။
  • Username Password တောင်းလျှင် Domain ဘက်မှ Administrator နှင့် password ကို ရိုက်ထည့်ပါ။ ခနစောင့်ပြီးသောအခါ Active Directory ဘက်ခြမ်း Computer Container နေရာတွင် SAMBA Server ၏ Computer Name ပေါ်နေမည်ဖြစ်သည်။
  • Auto ပေါ်မလာပါက Refresh လုပ်ကြည့်ပါ။
  •  ထို့နောက် SAMBA ဘက်ခြမ်းတွင် Domain Admin Account ဖြင့် login ဝင်မည်ဖြစ်သည်။



  • ယခု SAMBA Server တွင် Domain Admin အကောင့်ဖြင့် login ဝင်ပြီးသွားပြီးနောက် File Server အတွက် Configurations များ စတင်မှာဖြစ်ပါတယ်။ အရင်ဆုံး samba_config file ကို ပြင်မှာဖြစ်ပါတယ်။ 

  • ပုံတွင်ပြထားသည့်အတိုင်း samba_config များပြုလုပ်ရမည်။ Share Directory ပါသတ်မှတ်ထားသည်။




  • samba_config ပြီးနောက် Active Directory သည် kerberos authentication ဖြစ်သောကြောင့် linux တွင် " /etc/krb5.conf (kerberos config) file ကို ပြင်မှာဖြစ်ပါတယ်။



  • နောက်တစ်ခုကတော့ /etc/nsswitch.conf ဆိုတဲ့ config file ဖြစ်ပါတယ်။ သူက ပြောရရင် Linux OS ရဲ့ name resolution ကို control လုပ်ပေးတဲ့ file ဖြစ်ပါတယ်။ ပြောချင်တာက linux သည် naming service အလုပ်လုပ်တဲ့အချိန်မှာ သူ့ထဲကနေ ဘယ် naming services တွေကို lookup လုပ်ဖို့ ကြိုတင်ပြီး သတ်မှတ်ထားနိုင်ပါတယ်။ ထို့အပြင် account database တွေကိုလဲ locate လှမ်းလုပ်နိုင်ပါတယ် အခု configurationလုပ်နေတဲ့အချိန်မှာ တော့  ကျွန်တော်တို့က linux server ကို ကြိုပြီး Domin ချိတ်ထားလိုက်သောကြောင့် ဒီ file ကို တော့ ထပ်ပြင်စရာ မလိုတော့ဘူး ဒါပေမဲ့ config တွေ အရင်လုပ်ပြီးမှ Domain ချိတ်မယ်ဆိုရင်တော့ အခုပုံထဲမှ ပြထားသော နေရာများကို ပြင်ရမှာဖြစ်ပါတယ်။ passwd , shadow, group စာကြောင်းများရဲ့နောက်မှာ winbind ကို ထည့်ထားရမှာပါ။ winbind ကို ထည့်မှသာ linux server ပေါ်မှ နေ ပြီး Domain users/groups များ သုံးကာ file/folder permission သတ်မှတ်နိုင်မှဖြစ်ပါတယ်။

ပြီးရင်တော့ Firewall မှာ smb traffic and authentication များအတွက် ports ဖွင့်ပေးရပါမည်။ port no. 139 , 445 ကို ဖွင့်ထားပေးရပါမည်။ ဒီ tutorial တွင် SELinux ကို ပိတ်ထားပါသည်။ SELinux ပိတ်ချင်လျှင် " vi /etc/selinux/config => SELinux = disabled " ထားရမည်။
  • Command " #wbinfo -u " ဟု ရိုက်လျှင် AD မှ User Lists များ ကျလာရမည်ဖြစ်ပါသည်။ 
  • Folder Permission များ သတ်မှတ်တော့မှာဖြစ်ပါတယ်။ Tutorial ထဲမှာတော့ Share Folder တစ်ခုရှိတယ် ထိုအထဲမှာ public_access folder ( everyone can login ) and department_folder ( only department group can login to their specific folder ) ဆိုပြီး သတ်မှတ်မှာပါ။ ယခုအချိန်မှာမှ winbind services (nsswitch.conf) ထဲတွင် မပြင်ထားပါက လှမ်းခေါ်ရျ် ရမည်မဟုတ်ပါ။ folder များအတွက် permissiong သတ်မှတ်ရာတွင် " chmod " ကို သုံးပြီး group များ ကန့်သတ်ရာတွင် " chown " commands များသုံးထားပါသည်။
  • ပုံတွင် ပြထားသည့်အတိုင်း " chown " " chmod " များ နှင့် လုပ်ဆောင်ထားပါသည်။ ဒီနေရာ မှာ သဘောတရား ကတော့ chown root:users ဆိုသည်မှာ owner ကို root ပဲထားမည်ဖြစ်ပြီး group ကို တော့ Domain Users ဟုပြောထားခြင်းဖြစ်ပါသည်။ winbind service သာအလုပ်မလုပ်ပါက users ဆိုပြီး ထည့်လို့မရပါ။ chmod ကတော့ r=read,w=write, x=execute ဖြစ်ပြီး public folder ဖြစ်သောကြောင့် full access ပေးထားပါတယ်။ နောက် ပုံတွင် Dept_Share ဖြစ်သောကြောင့် root နှင့် group တို့ကိုပဲ permission ပေးထားမှာဖြစ်ပါတယ်။

  • ပုံထဲကအတိုင်းပင် HR Folder ကို HR-Group နှင့် root မှ လွဲရျ် တစ်ခြား မည်သူမျှဝင်လို့မရအောင် ကန့်သတ်ထားခြင်းဖြစ်ပါတယ်။ linux permission အရ rwx(root)rwx(group)---(others) ပုံစံဖြစ်ပါတယ်။
  • အခုနောက်ဆုံးအနေနှင့် Client ဘက်ခြမ်းမှ စမ်းသပ်မည်ဖြစ်ပါတယ်။ Client မှာ HR users ဖြစ်ပြီး ပထဆုံး အနေနှင့် သူသည် public_access folder ကိုတော့ အကုန်ဝင်ကြည့်နိုင်ရမှဖြစ်ပြီး Dept_Share Folder ကို တော့ သူ့နှင့် သက်ဆိုင်သော HR Folder ကိုသာ access ရ ပြီး ကျန်တာ access denied ဖြစ်ရမှာ ဖြစ်ပါတယ်။



















Share:

1 comment:

  1. ေက်းဇူတင္လုိက္တာဗ်ာ...အားေပးေနပါတယ္...

    ReplyDelete