31 Desember 2008

Backup LDAP server daily

Melihat kondisi MIS sini yang awalnya emang nggak terlalu tau Linux, gue berusaha cari ide. Gemana jika mereka operate server, akan tetep aman-aman saja resikonya. Coba bayangin nih. Mereka terbiasa bertahun-tahun pake Windows server dan Netware. Emang sih pake mail server redhat, tapi hanya untuk add user saja. Tanpa pernah delete user loh :-D Ya sejauh itu kemampuan mereka. Karena yang bikin server itu dah lama resign.

Sekarang hampir semua server dah berganti ke Ubuntu Linux 8.04 LTS. Dan gak cuman add user. Lebih komplex dari itu. Alias full kemampuan Linux kita pake. Kalo gue dah bertahun-tahun pake Linux tau resikonya jika salah jalanin perintan. Gemana dengan mereka yang masih baru? Pernah nggak bayangin jalanin perintah tapi salah tulis? And apa tuh efeknya ke sistem? :-D

Semua Ubuntu disini tersambung ke LDAP server. Juga Samba/NFS yang provide sharing folder yang sama. Akhirnya setelah cari ide, ternyata simple aja untuk kondisi ini. Gue harus slalu backup. Mereka slalu gue arahin ke penggunaan console. Jadi resiko salah perintah itu kadang-kadang terjadi. Tapi karena ada backup LDAP, kesalahan itu bisa gue atasin dengan restore aja. Juga sharing folder Samba/NFS, backup data akan penting disini.

Jadi kali ini gue akan bahas backup LDAP server. Dan next artikel gue bahas backup Samba/NFS dengan rsync. Simple banget. Tapi akan sangat berguna kalo ada hal buruk terjadi. Well... mereka itu manusia. Jadi kadang salah itu normal. Gue aja juga pernah salah tulis perintah. Apalagi yang masih baru :-D

How to backup

Semua account berada di LDAP server. Sekitar 500 user and group. Semuanya di kerjakan via console. Dan untuk membackupnya cukup simple. Oya, Ubuntu/Debian kasih utility untuk backup LDAP server. Coba aja check file /usr/share/doc/slapd/examples/slapd.backup. Cuman gue kurang cocok aja. Karena backup slalu disimpan ke directory /var/backups/slapd. Tanpa ada historynya.

Jadi gue bikin script sendiri untuk di cron tiap malem. Dan backupnya ada historynya:

/<path>/<tahun>/<bulan>/<tanggal>/<backup-filename>

Misal untuk backup LDAP tanggal 31 Desember 2008 akan disimpan disini:

/svr/backup/slapd/2008/12/31/slapd.tar.gz


Utilty untuk ngebackupnya cukup pake "slapcat" aja. Coba aja command ini di server yang running primary slapd service:

sudo slapcat

Semua outputnya adalah isi dari LDAP server. Simple kan? Sekarang giliran scriptnya:

#!/bin/bash
# Definition of backup directory and backup filename
backupdir="/svr/backup/slapd/"
filename="slapd.tar.gz"
# backup process
backupdir2="$backupdir`date +%Y`/`date +%m`/`date +%d`/"
/bin/mkdir -p $backupdir2
cd $backupdir2
/usr/sbin/slapcat -l domain.com.ldif
/bin/tar zcvf $filename domain.com.ldif
/bin/rm -f domain.com.ldif
echo "Backup SLAPD save on $backupdir2$filename"

Simpan saja ke /etc/cron.daily agar dijalankan tiap hari. Jangan lupa, permission di set ke 755.

How to restore

Untuk restorenya simple juga. Pake utility "slapadd". Nih contohnya:

sudo /etc/init.d/slapd stop
rm -f /var/lib/ldap/*
tar zxvf /svr/backup/slapd/2008/12/28/slapd.tar.gz
sudo slapadd -l domain.com.ldif
sudo /etc/init.d/slapd start


Ready deh. Ok kan?

21 Desember 2008

Programmer mulai beraksi

Setelah persis lewat 3 bulan, saatnya melihat hasil dari programmer. Ini bukan sekedar tuntutan. Karena kebutuhan mereka harus juga dipenuhin tentunya. Software Delphi yang mereka pake sebelumnya, tidak ada realisasi pembelian dari management. Server MSSQL pun yang mereka selalu pake juga tidak ada kejelasan. Jadi satu-satunya pilihan, pake server Linux.

Mereka sudah lumayan juga pake Ubuntu 8.04 LTS. Karena dalam 1 bulan pertama saja, sepertinya semua isi repo Ubuntu dah terinstall deh :-D Gue juga heran kenapa bisa begitu. Tapi udahlah. Itu pilihan mereka untuk mencoba semuanya. Masa belajar 3 bulan itu gue selalu tekanin, belajar belajar dan belajar. Tanpa ada tututan hasil sama skali. Cuman kasih tahu aja setiap weekly meeting minggu saat itu apa yang mereka pelajarin. Jadi kalo ada kesulitan, gue bisa arahin kemana harus cari informasinya.

Mereka udah coba Ruby on Rails, Turbo Gears, PHP + Quanta Plus, FreePascal + Lazarus, Javascript, Java + Netbeans dan beberapa laennya. Arahnya mereka jelas beda dari MIS yang laen. Mereka lebih ke programming dan MIS lebih ke penggunaan Ubuntu dan managemen Ubuntu servernya or Ubuntu client.

Setiap minggu gue kirim hal-hal menarik seputar Linux. Well ... refreshing lah. Kadang serius kadang hal-hal ringan yang menyenangkan mereka. Intinya cuman sharing knowledge aja. Biar mereka terbiasa sharing juga. Informasi bagus, send aja ke semua anggota MIS.

Kursus udah gue tawarin ke Bangkok. Tapi sepertinya mereka males. Lebih memilih beli buku. Beberapa buku-buku programming udah mereka beli. Tentu saja dana udah company penuhin. Juga tambahan RAM dan harddisk. Karena beberapa program Java emang rakus memori. Jadi waktu 3 bulan dah sangat cukup untuk mengenal jelas Ubuntu Linux. Dan menggunakannnya untuk bekerja setiap hari. Gue nggak mau pake cara: bikin webbase dari Windows kan bisa? No way !!!

Sejak awal udah gue tekanin. Gue nggak mau hasilnya doang. Gue butuh tau prosesnya juga. So ... sejak awal mereka harus jelasin. Kalo mereka kasih gue hasilnya doang dan gue nggak setuju, mereka bakal revisi banyak hal. Bahkan bisa saja ngulang kerjaan itu. Karena gue nggak mau seperti MIS Manager sebelumnya. Hanya liat hasilnya. Tanpa tau realitasnya. Akhirnya tetep software bajakan yang mereka pake. Baek sisi client maupun servernya :-(

Dan minggu lalu adalah minggu realisasinya. Dua request software harus mereka presentasikan ke departemen yang membutuhkan. Satu payroll dan satu lagi management. Gue nggak pernah kasih batasan harus pake apa di Linux. Syarat cuman ini saja:
  • Software harus running di 2 jenis client (Windows dan Ubuntu Linux)
  • Otentikasi via LDAP
  • Reporting harus bisa export ke ODF
  • Report harus berupa PDF
  • SQL backendnya pilih aja MySQL, PostgreSQL or Oracle (license)
Kedua software tersebut jalan web base dan ke 2 pihak puas banget. Programmer bisa selesain tugas dengan sangat baek. Baek payroll dan pihak management. Well... good work for them.

Dan abis meeting, biasa deh. Request software laen dah menanti. Tapi gue tunda dengan sopan. Karena beberapa software for Windows yang mereka bikin pake Delphi sebelumnya, mereka harus konversikan ke webbase. Cuman interfacenya aja. Karena SQL backendnya udah MySQL. Bahkan beberapa webbase software yang dibikin oleh programmer lamapun, harus mereka revisi. Karena hanya bisa dijalankan pake IE saja. Bener-bener banyak tugas menanti deh.

Oya, Salah satu programmer yang paling muda udah bisa bilang: enakan di linux. Banyak library pendukungnya :-D


15 Desember 2008

Fungsi Scanner di Brother MFC-8460N

Kalo sebelumnya gue pernah tulis tentang printer jaringan Brother HL-5250DN (di sini), sekarang laen lagi. Yaitu printer multi fungsi Brother MFC-8460N. Cara install CUPS sama persis dengan HL-5250DN yaitu menggunakan driver PCL6. Sedangkan fungsi network scannernya akan gue bahas disini. Detail product ini coba check link ini: Brother MFC-8460N.

Install dulu paket ini. Karena akan dibutuhkan nanti:

sudo apt-get install sane-utils

Lalu install drivernya dalam format DEB yang diprovide di online supportnya untuk Debian. Kita bisa pake tanpa ada masalah:

sudo dpkg -i brscan2-0.2.4-0.i386.deb
sudo dpkg -i brscan-skey-0.2.1-1.i386.deb


Add saja network scannernya dengan cara ini:

sudo brsaneconfig2 -a name=BrotherMFC8460N model=MFC-8460N ip=10.0.0.20

Bagian "name" cuman nama saja. Bisa set apa aja. Bagian "model" harus sama. Dan yang terakhir "ip" adalah ip address machine itu.

Lalu liat aja hasil penambahan tadi dengan command ini:

sudo brsaneconfig2 -q
...
Devices on network
0 BrotherMFC8460N "MFC-8460N" I:172.16.111.20


Sekarang taruh "brscan-skey" di autostart Gnome. Supaya bisa langsung di nikmati tanpa restart dulu, jalankan di terminal (not as root):

brscan-skey

Dan liat apa bisa ngenalin network scannernya:

brscan-skey -l


BrotherMFC8460N : brother2:net1;dev0 : 10.0.0.20 Active

Great! Siap dicoba. Dari beberapa fitur, yang ini langsung ready dilakuin di depan machinenya:
  • Scan to File
    Hasilnya akan tersimpan di $HOME/brscan dalam format PNM image
  • Scan to Image
    Hasilnya akan langsung terbuka dalam Gimp
  • Scan to Email
    Harus install sendmail/postfix. Gue disable karena faktor resiko aja
  • Scan to OCR
    Nggak berfungsi
  • Scan to FTP
    Built in lah. Nggak ada hubungan ma client
Gue rasa printer ini hebat juga. Karena ada dukungan Linuxnya yang sangat baek. Sehingga user pengguna Linux di company gue nggak perlu ngiri ama pengguna Windows. Karena semua fungsinya bisa di provide oleh Linux. Check aja lebih jauh di online supportnya:

http://solutions.brother.com/linux/en_us/index.html


14 Desember 2008

Problem di Payroll division

Kali ini gue kasih cerita tentang payroll division. Gemana gue handle problem license divisi ini. Lumayan ribet karena kesalah pahaman :-D

Setelah kita rubah XP license ke 8 clientnya, semua PC harus join domain dan set as user level (not administrator level anymore). Well... ini departemen paling banyak virusnya dulu. Dan mereka paling sibuk siapin gajian worker sebulan 2x. Jadi bener-bener sibuk.

Ada kendala yang nggak gue duga sebelumnya. Karena survey MIS rupanya nggak lengkap. Nih detailnya:
  1. Setiap PC mereka ada 2 OS. Windows 98 (unlicense) and Windows XP (license). Wah ... :-(
  2. Setiap PC mereka ada Office 2003 small business OLP (license)
  3. Bosnya bikin database MS.Access (unlicense) dan 4 client juga mengaksesnya :-(
  4. BPlus (local payroll thai software) for Win98-XP untuk 8 client (license) butuh MSSQL 2000 server (unlicense)
  5. Thaipro (another local payroll thai software) for DOS untuk 6 client (unlicense)
  6. Custom software by MIS for Win98-XP untuk 6 client (from Delphi unlicense)
  7. Beberapa software laen juga for XP only (license)
Gue berusaha pake XP licensenya. Tapi sialnya yang no.5 hanya bisa jalan di Windows 98. Di XP, thai language support under Ms. DOS nggak berfungsi. Karena solusi itu emang dari local thai software. Bukan dari MS. Setelah cari tau, semua softwate under DOS with thai, emang nggak compatible sama XP. Cuman dengan DOSBox for XP bisa jalan. Sayangnya pelan tuh. Kan DOSBox emulasi. Jadi kurang memuaskan hasilnya. Mereka nggak puas karena slow akses data di jaringannya. Nggak bisa dipindah ke local harddisk, karena harus di server untuk multi user.

Lagi ribet-ribetnya mikir solusi yang bagus and hemat, bosnya manggil salah satu director (director baru) and complaint. Karena takut kalo program DOSnya nggak bisa jalan. And si director ikut-ikutan kelimpungan. Gemana nih MIS? Mreka nggak bisa kerja kalo Windows 98 gak berfungsi? Dan blah blah blah ... Semuanya pada berdiri sambil hakimin gue. Duh ... :-( :-( :-(

OK. Gini aja. Bos payroll and director gue ajak ke ruangan MIS. Juga admin server dan head programmer gue aja meeting. Kedua MIS ini udah 8 taon disini. Dan udah beberapa kali ganti manager. Jadi tau history di MIS. Sekarang waktunya harus ubah persepsi.
  • Policy company untuk kurangin software bajakan dengan gunakan Linux, udah dipublish ke semua department. Dan setiap manager harus tanggung jawab masing-masing inventarisnya. Ini termasuk PC, software, dll. Bukan gue sbg MIS. Gue baru di sini. Sama skali nggak tau history company ini.
  • Gue bantu nyelesain masalah. Bukan nambah masalah. Itu paling utama. MIS bukan hakim, lalu hakimin semua departemen. Itu salah kaprah !!! Gue diminta bantu beresin license. Gue diminta bantu nangani kesulitan tentang license. Kalo payroll merasa gak ada problem license, itu bukan urusan gue.
  • Berusaha sehemat mungkin. Kalopun mau boros, apa bisa??? Dijual aja kagak lagi.
  • Payroll division license cuman: XP, Office 2003 small business (tanpa Ms.Access) dan Bplus only. Itu harta milik mereka.
So .. gemana solusinya untu payroll?
  • Tidak punya license Windows 98
  • Tidak punya license Thaipro (companynya dah ilang)
  • Tidak punya license Access 2003
  • Tidak punya license MSSQL 2000 Server and CAL
Sapa yang harus tanggung jawab? Gue? Gue baru juga di company ini !!! Sapa dong? Sapa yang dulu kasih putusan pake ThaiPro? MIS manager lama? Juga bukan. Bos payroll ngaku kalo dia lanjutin dari bos payroll sebelumnya. Tapi itu nggak selesain problem kan??? Dan 8 taon dia pake, itu artinya 8 taon tau ThaiPro unlicense tetep aja masih dipake :-D

Untuk Access 2003, kenapa juga tau bajakan masih aja dipake? Gampang katanya. Bisa nambah beli Office 2007 Prof OLP license. Tapi itu gue tolak. Cuman program employee history doang kenapa harus beli 8 license Ms. Office 2007 Prof? Kalo gue setuju beli, kedepannya akan smakin banyak dong file MDB dari payroll :-(

Untuk SQL 2000 yang jadi backend databasenya BPlus, dah nggak dijual lagi. Kita test pake SQL2005 server, bisa. Sayangnya Navision software milk accounting nggak berfungsi tuh. Dan Windows98 mo beli dimana? Di jual aja kagak? Gemana dengan antivirus? Harus pake deh.

Inilah yang harus MIS selesain? Problem license !!! Jadi gue harus tanggung jawab problem license ini???? Mereka diam aja. Termasuk programmer dan admin MIS. Sekali lagi gue tekannya, sangat gampang bikin Win98 online dengan Samba. Sangat gampang install ini itu. Tapi itu bukan selesain problemnya. Ini problem license !!! Artinya, kita mo install kalo punya license !!!

Ada ide pake PC kuno yang ada license Windows 98 di gudang. OK. Sekarang ini detailnya:
  • Windows 98 (license)
  • BPlus (license) tapi butuh Office 2000/XP (unlicense). Office 2003 minimal butuh W2k.
  • ThaiPro (unlicense)
  • Antivirus for Win98? (unlincense)
Mo cari license dimana? Dah nggak ada lagi di M$ !!!

Akhirnya bos payroll setuju. Mereka akan pake 1 bulan kedepan Thaipronya. Setelah itu mereka akan request untuk beli tambahan 2 license BPlus for Windows XP dan harus input ulang semuanya. Good Sekitar 2juta doang deh. Jadi gue sambungkan Win98 nya ke Samba hanya untuk 1 bulan saja. Tanpa antivirus di Win98. Duh :-(

Untuk MSSQL 2000 server sebagai backend database, setelah cek Bplus software (seperti dibikin pake Delphi), bisa konek ke MySQL server. Setelah diitung-itung:
  • 5 MSSQL 2000 server di 5 company
  • 30 CAL di semua company
  • Pertimbangan virus
Sedangkan untuk backend MySQL server, hanya butuh kocek $99, akhirnya ada keputusan untuk dicoba dulu. Versi download DbxMda dapat trial 1 bulan. Dan payroll setuju untuk coba selama 2-3 hari. Kalo cepet and nggak ada kendala, bisa pake backend MySQL. Itu artinya nggak perlu make MSSQL lagi.

Dan sisanya employee history, head programmer setuju bikin versi webbase. Bulan depan kelar. Emang sih ... programmnya simple banget. Well done.

Total tambahan cost sekitar 3 jetian

Meeting kelar juga deh :-D

Progress satu bulan berjalan ...

Nggak terasa installasi client Linux udah 1 bulan lewat. Kerja keras juga nih. Tapi itulah yang harus gue lakuin. Mereka kasih imbal balek yang lumayan tinggi. Jadi yah, harus ada hasil yang real untuk company ini. Mungkin di blog ini cuman migrasi yang gue tekanin. Walau sebenernya lebih dari itu.

Ada 5 company disini. Jadi ke 5 company itu bakal gue kasih threat migrasi. Karena BSA 2 taon lalu datang hanya mengobok-obok 3 company doang, jadi ke 3 company itu jadi target utama harus diselesaikan dahulu. Ke 3 company itu walau dalam satu group, tapi mereka menggunakan gedung yang berbeda-beda.

Sejauh ini, sudah satu bulan berjalan install Ubuntu client. Baru company 1 yang gedungnya paling gede. Dan emang 2/3 PC serta semua server berasal dari company ini. Special untuk company ke 1, ada 2 bagian: office and production. Officenya kelar minggu ini. Dan dalam 2 minggu ke depan bagian productionnya juga.

Total ada sekitar 40 Ubuntu client di main officenya. Itu diluar server. Dan semua berjalan dengan sangat baek. Hampir tidak ada problem. Setelah 1-2 hari client menikmatinya, mereka akan terbiasa. Dan setelah itu akan banyak pertanyaan dan tuntutan yang gue harus penuhin. Karena menurut gue bagus juga beberapa ide mereka.

Penggunaan LDAP+NFS untuk Ubuntu client nggak ada hambatan disini client. 100% lancar tanpa problem. Sedangkan LDAP+SAMBA juga OK. Beberapa kali kasus account and change password, gue selesain dengan cara restart service samba malem hari. Tapi ini bukan masalah besar. Karena gue provide baek Ubuntu client dan Windows client kurang lebih sama. Mereka bisa mengakses: personal folder, division folder, public folder & TEMP folder dari Ubuntu server. Email using Thunderbird, IM using Pidgin dan support Thai language.

Well ... Windows and Linux client 100% sama pendekatannya. Tapi caranya beda. Beberapa MIS kasih pendekatan dengan rubah interface yang mirip Windows. Tapi itu gue tolak mentah-mentah. Wah... gue nggak demen namanya kemiripan seperti itu. Nikmati aja Ubuntu/Gnome dengan menu di atas. Kalo Windows menu di bawah. That's the different. And that's the fun :-D

Windows ya Windows. Linux ya Linux. Yang standart itu dokumen dan protokol. Cara penggunaan yang beda, justru itulah kenikmatannya. Mungkin awalnya kagok. Tapi mereka akan tau, perbedaan itu justru bagus. Fresh .... and Windows interface ... thats for my father. Old fasion .... :-p

Sekarang mengenai pertukaran dokumennya. Dulu banyak pengguna personal notebook yang nggak mau install OpenOffice.org. Tentunya karena policy MIS Manager yang lama, mengubah setting OpenOffice.org di semua client agar selalu menyimpan ke folder DOC/XLS/PPT. Dan ini banyak kendala, format file binary M$ itu suka berubah di OpenOffice.org kalo udah sangat kompleks. Juga penyimpanan dari OpenOffice.org ke format itu akan menghilangkan beberapa hal. Nah loh ...

Sejak gue handle, semua setting OpenOffice.org harus kembali ke default. Dan ODF (ODT/ODS/ODP/ODG) harus jadi format yang bisa diterima semua pihak. Tanpa ada perkecualian. Lah wong yang nggak gratis (alias loe harus beli/bajak seperti Ms.Office) loe mau trima, kenapa juga format yang gratis loe justru nggak mau terima??? Dont be stupid ... Jangan pake alasan sulit. Kalo alasan mudah, Macintosh paling mudah. Kenapa loe pake Windows??? Windows yang lebih sulit dari Mac :-p Kan sama-sama tinggal bajak :-0 So... problem realnya, bukan karena mudah or sulit. Karena ... you dont want to change !!!

So policy untuk install OpenOffice.org di semua PC mulai keliatan hasilnya. Dengan banyaknya client Linux pake ODF. Juga MIS departemen gue kasih policy semua dokumen keluar MIS harus ODF (or PDF to outside is ok). Dan semua dokumen MIS di server harus ODF. Well... what's you think about this :-D Management pun sekarang dah bisa maklum dengan sangat baek.

Greeting from Thailand :-)

07 Desember 2008

Share TEMP folder

Kebiasaan yang jelek yang gue temukan di company gue adalah kurang memanfaatkan computer. Satu contoh nih. Mereka masih suka pake USB Flashdrive untuk copy file antar PC. Lucu kan? Udah ada computer yang tersambung jaringan, masih juga untuk nyalin file seperti itu. Hal ini karena strategi MIS lama yang gue rasa culun. Maklum deh karena manager MIS lama bukan orang IT. Cuman menang persodaraan aja ma salah satu direktor. Jadi asal jalan aja :-D

Ini semua diperparah dengan banyaknya server yang saling nggak tersambung. Jadi user masing-masing server suka kelimpungan. Itulah kenapa mreka suka pake flashdrive. Dan penggunaan flashdrive harus gue kurangin. Karena resiko virus aja. Walo udah pake antivirus, namanya virus baru perlu jadi perhatiian juga kan?

Disini server samba di Ubuntu Linux 8.04 LTS Edition beraksi. Simple aja. Sediakan share folder TEMP yang bisa diakses siapa aja tanpa perlu masukin username and password. Client yang sudah join ke samba, mapfolder TEMP udah terintegrasi di logon script. Dan yang pake Linux, TEMP folder di NFS server udah ke bookmark. Tinggal kirim email ke semua user yang masih di server-server lama tentang folder TEMP yang bisa diakses dari semua client, cukup dengan:
  1. Start -> Run
  2. Type: \\SERVER\TEMP
  3. Silakan copy file ke folder ini dan bisa diakses dari client mana saja
  4. Kalo udah kelar urusannya, lupain !!! Tanpa perlu repot-repot apusnya
Karena share folder TEMP emang akan dikosongkan tiap malem. Well ... dalam 1 minggu MIS nggak pake USB lagi. Dan dah mulai nyebar ke temen-temen mereka tuh.

Caranya tentunya gampanglah. Pasti ente-ente semua juga tau setting sambanya:

[temp]
    comment = Temporary Folders
    path = /svr/temp
    writable = yes
    guest ok = yes


Setelah itu jangan lupa dibuka permission folder /svr/temp untuk semua:

sudo chmod 777 /svr/temp

Sedang untuk pengosongan folder itu tiap malem, buat script simple ini di /etc/cron.daily/empty-temp saja:

#!/bin/bash
/bin/rm -Rf /svr/temp/*
echo FYI ... >> /svr/temp/README.TXT
echo All files in this folder will delete every night  >> /svr/temp/README.TXT
echo Just for temporary folder only  >> /svr/temp/README.TXT
echo >> /svr/temp/README.TXT
echo MIS >> /svr/temp/README.TXT
/usr/bin/unix2dos /svr/temp/README.TXT
/bin/chown root.root /svr/temp/README.TXT
/bin/chmod 444 /svr/temp/README.TXT


Kalo udah, ubah permissionnya agar bisa jalan di cron:

sudo chmod 755 /etc/cron.daily/empty-temp

Script tadi juga akan menambahkan file README.TXT ke dalam folder TEMP. File text doang, just untuk informasi bagi siapa aja yang akses. File text ini harus bisa dibuka pake notepad. Jadi loe butuh program unix2dos. Intall aja paket "tofrodos" untuk dapetinnya.

sudo apt-get install tofrodos

Oya, jangan gunakan /tmp folder untuk share ini yah. Folder /tmp dipake untuk system Linux. Bahaya :-D
Urusan security chmod 777, wah jangan ngejeplak haram deh. Semua itu ada alasan dan tempatnya. Ini untuk local network. No problem sama skali.

06 Desember 2008

Mirroring LDAP server

Mirroring LDAP. Itu yang gue pake. Jadi setiap kali nambah account/group di LDAP server pertama, LDAP server ke 2 akan dapat juga updatenya. Ini penting banget. Karena gue butuh 2 LDAP server yang harus slalu online. Dan kedua samba PDC dan BDC mengarah ke 2 ldap server ini. Perhatiin LDAP backend di smb.conf yang gue pake:

passdb backend = ldapsam:"ldap://ldap.domain.com/ ldap://ldap2.domain.com/"

Ke dua LDAP server configurasinya sebaiknya sama. Terutama schema yang diincludekan dan juga index. Tambahkan module di kedua LDAP server:

moduleload syncprov

Bedanya hanya bagian untuk mirroring saja. Ini akan gue tuliskan bagian untuk mirroring aja. Di kedua configurasi LDAP server. Taruh aja bagian paling bawah (setelah access control).


LDAP Server pertama (masternya)


overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100



LDAP Server ke dua (mirrornya)

syncrepl rid=001
    provider=ldap://ldap.domain.com:389
    bindmethod=simple
    binddn="cn=admin,dc=domain,dc=com"
    credentials=<password>
    searchbase="dc=domain,dc=com"
    schemachecking=off
    type=refreshAndPersist
    retry="60 +"

mirrormode on



Jangan lupa, penambahan/perubahan account slalu masternya. Yang ke dua cuman mirrornya. Jadi "smbldap-tools" harus terinstall di masternya.

Goodluck


Samba PDC dan BDC

Mungkin karena selalu kepikiran backup server, semua service gue usahakan ada 2. Termasuk Samba server.  Satu sebagai PDC dan satu lagi BDC. Jadi kalo PDC error, BDC masih berfungsi dengan baek. Asal inget juga yah. Ada mirror data di BDC nya.

Setting PDC

Setting PDC tentu saja sama lah. Selalu saja seperti ini point-pointnya?

[global]
netbios name = server1
workgroup = MYCOMPANY
domain logons = yes
domain master = yes
local master = yes
preferred master = yes
os level = 60
...


Setting BDC

Untuk BDC, sama aja dengan setting PDC. Inget aja yang beda hanya "domain master", "local master" dan "preffered master". Kebalikan dari PDC nya.

[global]
netbios name = server2
workgroup = MYCOMPANY
domain logons = yes
domain master = no
local master = no
preferred master = no
os level = 20
...


Yang jangan sampai terlewatkan adalah logon script aja. Slalu samakan logon script di PDC dan BDC.


05 Desember 2008

Ubuntu client dengan LDAP otentikasi

Di artikel sebelum ini, udah gue jelasin kalo gue gunakan LDAP server sebagai backend account untuk samba (dan tentu saja bisa sebagai backend account Linuxnya). Dokumentasi yang sangat bagus di paket "smbldap-tools" sangat memudahkan untuk membuatnya. Berikut ini gemana mensetting client Ubuntu untuk gunakan otentikasi dari LDAP.

Salah satu kemajuan di Ubuntu adalah mudahnya setting client untuk gunakan otentikasi LDAP. Ini akan gue jelasin dari terminal aja yah. Jadi loe yang mau setting Ubuntu server pun bisa juga.

Settingnya sebenernya ada 3 hal:
  1. Configurasi /etc/ldap.conf dan /etc/ldap.secret agar Ubuntu tau LDAP server mana yang dipake
  2. Configurasi PAM di /etc/pam.d agar username di LDAP bisa dipake login
  3. Serta setting /etc/nsswitch.conf agar semua username & group di LDAP bisa terintegrasi di sistem
So... itu semuanya dulu paling ribet settingnya :-D Tapi meta paket "ldap-auth-client" disediakan untuk keperluan ini. Dan sekarang jadi lebih mudah saja.

Install aja paket "ldap-auth-client". Di dalamnya udah disertakan libnss-ldap juga beberapa paket laennya.

sudo apt-get install ldap-auth-client

Sehabis install paket itu, debconf langsung menanyakan beberapa hal berkaitan dengan libnss-ldap. Coba jawab aja seperti ini:
  1. Should debconf manage LDAP configuration?
    Yes
  2. LDAP server Uniform Resource Identifier:
    ldap://ldap.domain.com/ ldap://ldap2.domain.com/
  3. Distinguished name of the search base:
    dc=domain,dc=com
  4. LDAP version to use:
    3
  5. Make local root Database admin:
    Yes
  6. Does the LDAP database require login?
    No
  7. LDAP account for root:
    cn=admin,dc=domain,dc=com
  8. LDAP root account password:
    <your-ldap-password>
  9. Local crypt to use when changing passwords:
    md5
Oya, gue di atas pake 2 LDAP server. Jaga-jaga aja. Kalo LDAP server pertama error, yang ke 2 bisa langsung gantikan. Laen kale gue bahas deh termasuk sinkronisasi ke 2 LDAP server itu. Sedangkan kalo abis setting merasa ada yang salah tulis or hal laen, coba ulang aja dengan command ini:

sudo dpkg-reconfigure ldap-auth-config

Pertanyaan itu semuanya hanya untuk generate /etc/ldap.conf (config LDAP client) dan /etc/ldap.secret (password LDAP). Selanjutnya config PAM dan NSSWITCH nggak perlu lakukan setting manual. Udah terinstall utilities "auth-client-config" yang menyertakan file sample configurasi.

Coba check ke dalam folder /etc/auth-client-config/profile.d/

ls -ls /etc/auth-client-config/profile.d/
total 16
4 -rw-r--r-- 1 root root  326 2008-04-10 05:27 acc-cracklib
4 -rw-r--r-- 1 root root 2202 2008-04-10 05:27 acc-default
4 -rw-r--r-- 1 root root  948 2007-09-21 02:13 ldap-auth-config
4 -rw-r--r-- 1 root root  610 2008-09-12 15:54 ldap-domain.com

cat /etc/auth-client-config/profile.d/ldap-auth-config
#
# Clients should be able to authenticate with this profile if following
# Network Authentication in the Ubuntu Server guide.  Please note that
# these settings are not suitable for sometimes disconnected (eg laptop)
# systems.  The example is taken from LDAPClientAuthentication at:
# https://help.ubuntu.com/community/LDAPClientAuthentication
#
[lac_ldap]
nss_passwd=passwd: files ldap
nss_group=group: files ldap
nss_shadow=shadow: files ldap
pam_auth=auth       sufficient   pam_ldap.so
    auth       required     pam_unix.so nullok_secure use_first_pass
pam_account=account    sufficient   pam_ldap.so
    account    required     pam_unix.so
pam_password=password   sufficient   pam_ldap.so
    password   required     pam_unix.so nullok obscure min=4 max=8 md5
pam_session=session    required     pam_unix.so
    session    required     pam_mkhomedir.so skel=/etc/skel/
    session    optional     pam_ldap.so
    session    optional     pam_foreground.so


Loe bisa pake file itu untuk configure PAM dan NSSWITCH-nya. Cara seperti ini:

sudo auth-client-config -a -p lac_ldap

Setelah restart, loe langsung bisa pake username dari LDAP server. Dan juga fasilitas auto create home foldernya.

Laen waktu pengen meresetnya (disjoint dari LDAP server), pake seperti ini:

sudo auth-client-config -a -r -p lac_ldap

Utility laen yang perlu loe pertimbangakan untuk mengurangi query ke LDAP server, loe bisa install pake "nscd" di client. Ini digunakan untuk mencache passwd, group dan hosts. Terutama untuk yang koneksi ke LDAP servernya pelan.

Goodluck pren

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.