01 Desember 2008

Service Samba dan NFS kerja bareng

Nggak terasa sudah 1 bulan proses migrate client. Dan udah mencapai 30 client using Ubuntu Linux 8.04 LTS Edition. Tentunya lumayan juga nih. Komplain yang masuk nggak terlalu berarti. Kebanyakan hal-hal simple yang udah gue tulis di blog ini. Dan karena udah gue coba di MIS selama 1 bulan sebelumnya, nggak ada perubahan berarti dari cloning image Ubuntu yang gue bikin.

Sekarang gue mo jelasin gemana 1 buah server dengan Ubuntu-Server 8.04 LTS edition gue gunakan untuk layanin semua user Windows and Linux. Dimana service ini sangat berarti dan saling berkaitan. Oya, pake Linux laen sama aja lah. Karena konsepnya emang sama.

Server Otentikasi

Pake paket "slapd" (openldap server). Tapi generate accountnnya gunakan "smbldap-tools". Sebenernya gampang banget. Coba baca file "/usr/share/doc/smbldap-tools/README.Debian.gz". Loe akan tau bikin LDAP server di linux itu gampang. Kalo butuh dokumentasi PDF nya, folder /usr/share/doc/smbldap-tools adalah tempatnya.

Dan ini penting karena semua server and client akan gunakan 1 username and 1 password aja. Baek itu client Linux dan client Windows. Simple aja untuk user. Tapi untuk administrator and programmer, well... kemudahan di user, terpusatnya security, itulah profesionalisme kita kan ;-)

Server Samba

Server ini akan layanin Windows client. Tentunya sambanya harus tersambung ke openldap server di atas. Sekali lagi, dokumetasi di file "/usr/share/doc/smbldap-tools/README.Debian.gz" akan sangat membantu.

Server NFS

Server ini akan layanin Ubuntu Linux client. Tau kan namanya NFS, paling simple banget settingnya. Nggak seperti setting Samba yang ribet dan acakaduk. Tapi urusan account/permission, NFS nggak mau tanggung jawab. Itu akan dihandle system.

Karena account di client and server harus sama. Itu artinya, loe harus pake NIS, NIS Plus atau LDAP. Dan openldap-server adalah pilihan gue. Server LDAP ini akan dipake semua server, client dan hampir semua service. Seperti otentikasi mail server, jabber server, web server, otentikasi CUPS, dan laennya.

Server DNS/DHCP

DNS lokal akan sangat bermanfaat. Karena gue butuh hostname semua client slalu terupdate DNS lokal. Ini karena gue nggak suka cara MIS hadalin ip address. Busyet... gue yang paling merana. Gue paling benci apalin angka :-D Kalo puluhan masih mending. Ini dah dekatin 400 ip address. Emangnya otak gue terbuat dari Intel core duo :-p

Jadi sekarang, DHCP auto update ke DNS udah berfungsi. Kalo ip gantipun, di DNS lokal slalu terupdate. Ganti hostnamepun akan sama terupdate. Efeknya sharing folder and sharing printer, cukup pake hostname. Dan ini lebih gampang and logis untuk diapalin. Juga hal-hal laen disini menggunakan hostname (from DNS). Bukan IP address.

Struktur directory dan ownership/permission

Ini struktur directory di server. Terutama folder /svr yang semua foldernya di share. Terdiri dari :
  • Netlogon folder
    Hanya untuk Windows Client
  • Personal folder
    Masing-masing username dapat 1 folder. Username berbeda nggak bisa akses
  • Division folder
    Masing-masing division dapat 1 folder. Member dalam 1 departemen bisa saling read/write. User dari departemen laen nggak bisa akses
  • Public folder
    Masing-masing division dapat 1 folder. Member dalam 1 departemen bisa saling read/write. User dari departemen laen hanya bisa read only

Dan ini details ownership/permissionnya:

drwxrwxr-x root root netlogon
-rwxr-xr-x root root dep1.bat
-rwxr-xr-x root root dep2.bat

drwxr-xr-x root root personal
drwx------ user1 Domain\ Users user1
drwx------ user2 Domain\ Users user2

drwxrwxr-x root root division
drwxrwx--- root dep1 dep1
drwxrwx--- root dep2 dep2

drwxrwxr-x root root public
drwxrwsr-x root dep1 dep1
drwxrwsr-x root dep1 dep2

Ati-ati untuk folder public/dep1 tuh. Pake chmod 2775. Supaya semua file didalamnya dan subfoldernya juga dimilikin group dep1.

Samba Setting

Settingnya gue sensor yah. Karena emang sama aja sih. Cuman bagian ini akan penting deh.

[global]
...
create mask = 0664
directory mask = 0775
force create mode = 0664
force directory mode = 0775

[personal]
comment = Home Directories of %u
path = /svr/personal/%u
browseable = no
writeable = yes

[dep1]
comment = Dep1 Folders
path = /svr/division/mis
writeable = yes
guest ok = no
force group = "Domain Users"
valid users = @dep1
write list = @dep1

[public]
comment = Public Folders
path = /svr/public
writeable = no
guest ok = yes
write list = "@Domain Users"

NFS export files

File /etc/exports untuk sharing folder /svr detailnya berikut. Gue pake NFS4 nih.

/svr 172.16.0.0/16(rw,async,no_subtree_check,fsid=0,crossmnt)
/svr/personal 172.16.0.0/16(rw,async,no_subtree_check)
/svr/division 172.16.0.0/16(rw,async,no_subtree_check)
/svr/public 172.16.0.0/16(rw,async,no_subtree_check)

Create account LDAP

Setiap username di LDAP server, udah di set login scriptnya. Jadi 1 departmen 1 login script saja. Ini contohnya:

#smbldap-useradd -a -m -E dep1.bat -M user1@domain.fqdn -N Namadepan -S Namakluarga user1
#smbldap-passwd user1
#smbldap-groupadd -a dep1
#smbldap-groupmod -m user1 dep1

Additional features

Antivirus sangat sangat bagus deh. Coba pake aja dazuko+clamav. Bisa layanin ke 2 OS di client. Sayangnya harus gue harus disable karena servernya kurang gegas aja. Kalo server-server generasi baru yg multi processor, harddisk SCSI, dah memori gede sebaiknya aktifkan aja. Karena virus dari USB Flashdrive musimnya nih.


Fokus client

Karena ada 2 jenis OS (Windows and Linux), gue bagis fokusnya ke 2 OS itu deh. Walau ada 1 user kadang bawa notebook Mac-nya. Tapi no problem. Karena Mac bisa pake protocol SMB:// seperti di Linux.

Windows client

Cukup dengan join ke domain. Ini akan mendapatkan kemudahan map folder dari server ke My Computer. Mereka akan mudah mengaksesnya folder:

Drive P: \\server.fqdn\personal\<username>
Drive Q: \\server.fqdn\division\<department_name>
Drive R: \\server.fqdn\public\<department_name>

Linux client

Juga harus join domain (istilah M$ :-p). Sebenernya nggak sih. Cukup join ke LDAP server. Sehingga semua account di LDAP server bisa login ke Ubuntu tanpa perlu create masing-masing account di semua Ubuntu client lah. Dan NFS akan sangat terbantu dengan samanya account di client dan di server.

Install aja paket "ldap-auth-client" di semua Ubuntu client. Sehabis restart, Ubuntu client dah tersambung dengan LDAP server. Solusi Ubuntu yang simple and asyik deh. Kalo pake Fedora, system-config-auth kurang lebih sama deh.

Hal laen yang penting adalah default umask di Ubuntu. Defaultnya 022 di baris terakhir file /etc/profile. Gue ganti jadi 002. Ini supaya di folder "<division>" dan "public/<division>", user dalam 1 departemen bisa saling edit file.

File /etc/fstab di user:

server.fqdn:/personal /server/personal nfs4 rsize=8192,wsize=8192,timeo=14,intr 0 0
server.fqdn:/division /server/division nfs4 rsize=8192,wsize=8192,timeo=14,intr 0 0
server.fqdn:/public /server/public nfs4 rsize=8192,wsize=8192,timeo=14,intr 0 0

Untuk memudahkan user, di File-Browser (Nautilus) udah kita bookmarks folders masing:

personal -> /server/personal/<username>
division -> /server/division/<departemen_name>
public -> /server/public/<departemen_name>

Jadi user cukup klik menu Places -> Home, semua folder lokal dan folder di server udah ready.

Kendala

  1. Fresh install Ubuntu, ada kendala dengan Nautilus nggak bisa support umask 002. Selalu saja nyimpan file dengan umask 022. Versi updatenya dah nggak ada problem lagi.
  2. Change password dari Ubuntu client, password Windows nggak terupdate. Di LDAP server, setiap account punya 2 password (posix and LM). Gue sepertinya masih harus belajar penggunaan libpam-smbpass. Kalo dari Windows client, nggak masalah. Ke dua password terupdate dengan baek.
  3. Permission file dari USB flashdrive gak ngikutin umask. Hal yang nggak terlalu penting sih. Tapi kadang bikin ribet kalo harus jelasin ke client cara rubah permission.

6 komentar:

ashardi mengatakan...

meski ngerti dikit2 tapi tetep keren... bukmak!

iking mengatakan...

mas lutfi yang blognya saya bookmark (coz banyak elmunya)...nanya dong, saya niat migrasi server ke ubuntu (tp saya masih amatir), yg saya tanyakan data lama kan sya burning dari sebelumnya ada di msoft, nah pas saya taruh di hardy file2 yg dishare tersebut dada permissionnya, jadi gimana biar permission read and write pada semua data yang lama, saya dah googling, tp blm ketemu cara yang jitu.... maaf merepotkan tapi pastinya makasih bgt...

iking@perpus fkm

Yanuar mengatakan...

mas, sampeyan itu kayaknya dah expert banget soal linux dan mengintegrasikan aplikasi2 di dalamnya. sangar tenan.....

Lutfi mengatakan...

To Iking:
Coba ganti permissionnya. Caranya gampang banget. Klik kanan foldernya, pada tab permission set aja utk bagian Owner & Group:
- Folder Access: Create & deletes files
- File Access: Read & Write
Terakhir klik aja "Apply permission to enclosed files". Semua file n folders di dalemnya akan langsung juga diganti permissionnya.

Goodluck

Lutfi mengatakan...

To Januar:
Ya jelas gampang lah. Emang Linux gampang kok. Sapa bilang susah???
Coba aja install and cari tau ilmunya. Semuanya ada di harddisk kamu. Program dan dokumentasi tuh. Gila kan murahnya. Bukan cuman 1 software, semua software yang loe install ada paket dokumentasi. Kalo msh kurang, ada milist lokal, forum lokal, serta FAQ & milist dr pembuatnya. Bahkan loe bisa ikutan tanya ke pembuatnya kl kesulitan. Ato punya ide utk nambah feature :-D

Kurang apa lagi tuh
Dah murah, semua source & dokumentasi dibuka

So.. disini gue bagi juga hasil yg gue dpt. Semoga ada manfaat untuk yg laennya.

iking mengatakan...

makasih mas lutfi ...... emang linux (walo masih bisanya di gui doang) makyus...dendam ah buat belajar command linenya...