23 Desember 2009

Firestarter dan openVPN client

Notebook gue pake firewall instant. Tentunya pake Firestarter aja. Tinggal klik klik klik udah ready secure firewall untuk personal. Dan langsung ready di gunakan. Keren bukan? Sapa bilang linux susah??? :-D

Sekarang giliran VPN-nya. Karena kebutuhan personal jadi meninggi, gue pake ADSL. Lumayan kenceng. Tapi ente tau sendiri deh. Kerjaan di network terpisah, tentu jadi ribet. Terutama kalo mau mengakses client dan server internal office nggak semudah dulu. Sekarang notebook gue di luar network office. Jadi VPN sangat menunjang banget.

Setelah setting openVPN di network-manager, dan berhasil koneksi ke VPN server office. Rupanya nggak ada hasil real. Bener koneksi, tapi ping ke server office nggak berhasil. Ternyata Firestarter belum ndukung VPN client. Komunikasi VPN-nya jadi ditolak. Setelah cek sana-sini, akhirnya nemu solusi simple aja.

Nggak perlu rubah setting GUI di Firestarter. Cukup jalankan ini saja:

sudo echo "iptables -A INPUT -i tun+ -j ACCEPT" >> /etc/firestarter/user-post
sudo echo "iptables -A OUTPUT -o tun+ -j ACCEPT" >> /etc/firestarter/user-post


Lalu restart service Firestarter:

sudo service firestarter restart


Coba lagi udah ok sekarang.


15 Desember 2009

Buat system yang tahan virus

Bukan masalah Linux. Tapi network dengan banyak OS, disini kelihatan manfaat Linux dan kehandalannya terhadap virus. Dan karena network gue disini ada banyak juga Windows client, jadi akan keliahatan deh gemana gue menghandle ke duanya. Eh 3 deh. Mac OS juga ada 2 notebook client :-D

Sebenernya nggak susah sih bikin sistem yang tahan virus. Asal kita tau sumbernya dari mana, lalu kita tahan atau bentengi disitu. At least, umumnya saat ini ada 3 sumber yang plaing sering jadi penyebaran virus (umumnya berefek pada Windows client):
  • Email
  • Web
  • USB flashdrive
Dari ke 3 nya sumber diatas, mungkin paling simple di bagi lagi jadi 2 aja:
  • External/Internet (Email dan web)
  • Internal (USB flashdrive dan network local)
OK. Sekarang hal ini akan kita pilah lagi lebih jauh.

Pertahanan disisi Server
  1. Virus dari web: usahakan buat proxy server (squid misalnya) dan kawinkan dengan antivirus (HAVP+clamav). Sehingga semua web request akan di scan dengan antivirus terlebih dulu.
  2. Virus dari email: usahakan buat mail server (postfix misalnya) dan kawinkan dengan antivirus juga antispam (amavis+clamav+spamassin)
  3. Gateway pake firewall: Tutup semua port!!! Dan buka yang diperlukan saja. Kalo ada penggunaan mail server diluar office, ada baeknya di intercept dengan antivirus.
Dari ke 3 hal diatas, berusahalan untuk memblok file2 versi M$ yang beresiko bervirus (EXE, COM, PIF, SCR, dll). Restriction ini lumayan ketat emang. Tapi akan sangat bermanfaat mengurangi kerja server dan antivirusnya. Karena tanpa banyak pertimbangan, file2 yang beresiko itu langsung di TOLAK !!!

Pertahanan disisi Client

Linux client
  1. Jangan gunakan root (atau level root/administrator). Berilah user level aja. Semua software di Linux bisa jalan dengan user level saja. It's perfect ;-)
  2. Always update system. Kalo sudah mulai banyak Linux client, kalo perlu sediakan repo sendiri. Jadi updatenya lebih cepet.
  3. Hindari penggunaan Wine !!!
Windows client (more complicated)
  1. Jangan gunakan administrator (atau level poweruser/administrator) untuk kerja sehari-hari. Terus terang hal ini rumit di Windows. Karena banyak skali software yang hanya berfungsi jika running dengan level administrator. Tapi .... itu bukan pilihan. Alias harus dihindari !!! :-p
    Kalo software nggak mau jalan di level user, coba gunakan utility Steel RunAs. User tetep harus kerja di level user, dan software bisa running dengan level admin. No choice on Windows. Paling nggak, virus/spyware/trojan nggak bisa langsung terintall lagi (karena user kan nggak pake level admin lagi) :-p
  2. Disable autorun/autoplay di setiap computer. Ini akan kurangin virus dari USB flashdrive. Coba gunakan software USBVaccine untuk hal ini.
  3. Windows update penting banget. Kalo mulai banyak Windows client, saatnya mikirin bikin WSUS server sendiri. Keuntungannya, loe bisa pantau mana client yang update and mana yang nggak mau update (alias ngambek). Windows client yan nggak terupdate, beresko jadi zombie. Ini paling gampang tertular virus via network (seperti conficker) !!!
  4. Install antivirus di semua Windows client. Dan harus selalu update juga. Kalo mulai banyak Windows client, saatnya mikirin antivirus server sendiri.
Gak jamin 100% Windows akan aman dr virus. Tapi cara ini bisa memberikan hasil nyata. Udah lebih 1 tahun disini gak ada virus yg lolos ;-)

Oya, kebutuhan network bisa beda. Dan solusi bisa disesuaikan lagi. Itupun kita harus slalu mempelajari virus dan antivirusnya. Kalo ada perkembangan baru, sistem kita harus disesuaikan untuk mengcover hal terbaru itu.

OK, pren. Good luck.


31 Oktober 2009

Beresin Usplash yang nggak berfungsi

Notebook bos mendadak di kirim ke ruangan gue. Nggak ada yang aneh sih. Ternyata dia nggak terima gara-gara proses booting Ubuntu 9.04 muncul text. Rupanya booting graphicnya nggak berfungsi. Nggak jelas awalnya gemana, tapi dia mau proses booting ke GUI lagi.

Problemnya di Usplash. Abis booting dengan serentetan text, setelah itu muncul menu login Gnome (GDM). Jadi sebenernya bukan problem yang gede. Cuman namanya user baru, maunya booting Ubuntu harus pake GUI semua. OK lah. Gue coba beresin hal ini.

Setelah obok-obok internet, ternyata hal ini nggak rumit diselesaikan. Coba ikutin aja cara ini:
  1. Pastikan Ubuntu telah terupdate dengan baek.
  2. Lakukan ini di terminal:

    sudo blkid

  3. Cek isi file /etc/fstab dan pastikan "swap" menggunakan UUID yang sama dari hasil no.2 di atas.
  4. Cek isi files /etc/initramfs-tools/conf.d/resume dan pastikan menggunakan UUID yang sama dari hasil no.2 di atas.
  5. Update initrd.img file dengan cara:

    sudo update-initramfs -u

  6. Terakhir restart Ubuntu untuk tau hasilnya.
Goodluck, pren

19 September 2009

Happy Iedul Fitri 1430H

Faith makes all things possible. Hope makes all things work. Love makes all things beautiful. May you have all of the three. Happy Iedul Fitri 1430H. Mohon maaf lahir & batin yah semuanya ...

08 September 2009

Change password via web

Setelah kirim ke semua user tentang keharusan ganti password setiap 100 hari dan juga cara ganti password di Linux client maupun di Windows client (join domain), muncul beberapa komplain. Pengguna notebook yang umumnya menggunakan Windows tidak bisa melakukan pergantian password. Hal ini dikarenakan Windows OS tidak join di domain Samba.

Selain hal itu, pengguna notebook (karena tidak join domain) tidak akan mendapatkan menu pergantian password secara otomatis. Tapi mereka bisa menikmati reminder via email kalo passwordnya mau expired. Cek artikel gue sebelum ini.

Waktunya obok-obok internet. Akhirnya dapat solusi yang paling mudah. Yaitu pergantian  password via web. Dan gue bisa nemukan webldappasswd untuk keperluan ini. Program yang simple banget tuh. Dan emang mungil juga ukurannya.

Cukup install apache dan php5 di server tempat LDAP server berada. Extract file webldappasswd_20060329.tar.gz ke dalam directory /var/www. Selanjutnya edit file ldap.php dan rubah 2 parameternya:

$ldapPasswd    = '/usr/bin/ldappasswd';
$ldapFullUsername = "uid=$userLogin,ou=Users,dc=mydomain,dc=com";

Yang belon ada file "/usr/bin/ldappasswd", silakan install paket ldap-utils dari repo. Selanjutnya tinggal arahin browser ke alamat:

http://myldap.mydomain.com/webldappasswd

Sekarang semua client bisa ganti password dengan leluasa.


31 Agustus 2009

Password reminder

Gue mau menerapkan rutinitas ganti password. Dan ini penting di network gue. Karena sebelumnya dengan netware server, semua user diberi blank password. Dan bertahun-tahun nggak pernah diganti. Aneh kan? Tapi itulah yang terjadi. Dan itu kecurigaan gue kenapa mail server lama pernah di obok2 orang dari internet.

User akan langsung menikmati proses pergantian password. Setiap 100 hari, baek client Windows maupun Linux akan langsung disodorin proses ganti password. Dan ini nggak jadi masalah.

Problemnya user suka lupa saja. Setelah weekend atau beberapa libur dari kerja, ternyata accountnya udah nggak bisa dipake lagi. Alias sudah non aktif karena lupa ganti password. Dan seperti biasa mereka akan lapor ke MIS untuk bantu di resetin password.

Dari beberapa solusi bagus, akhirnya gue pilih password reminder. Sekitar 28 hari sebelum passwordnya expired, email peringatan akan langsung terkirim ke mailbox mereka. Dan ini lebih gampang ngeceknya. Karena kita sebagai admin juga dapat list user yang passwordnya bakal expire atau udah expire setiap minggunya.

Cukup gunakan software passwd_exp untuk melakukannya. Karena mail server udah tersambung ke LDAP server, akhirnya gue install di mail server. Tinggal compile dan install "Text-Tokenizer" dari website yang sama, lalu compile dan install "passwd_exp" juga.

tar zxvf Text-Tokenizer-0.4.2.tar.gz
cd Text-Tokenizer-0.4.2
perl Makefile.PL
make
make test
make install

tar zxvf passwd_exp-1.2.10.tar.gz
cd passwd_exp-1.2.10
./configure
make
make install


Software ini langsung menginstall scheduler di cron. Secara harian akan check password yang hampir expired (minimal 28 hari sebelumnya). Dan mingguan akan check semua user dan listnya dikirim ke administrator. Configure aja di passwd_exp.conf.

/usr/local/etc/passwd_exp/passwd_exp.conf:
module                = shadow.linux
module opt[getent]    = 1
module opt[host]      = myserver.mydomain.com
module opt[shell]     = 1
module opt[uid_min]   = 30000
module opt[uid_max]   = 40000


Untuk check manually di console, cukup lakukan perintah ini:

# passwd_exp -l



19 Agustus 2009

Netbook Acer Aspire 1810T

Anaknya si bos mendadak hari ini bawa barang baru. Saat gue lagi sibuk-sibuknya nyiapin audit salah satu buyer gede. Tanpa babibu langsung minta Vistanya diresize dan sebagaian besar harddisknya harus pake Ubuntu. Alasannya simple aja. Untuk download movie dari internet. Kalo pake Linux, kan nggak ribet sama virusnya.

Ini barang baru. Sepertinya Acer baru launch bulan kemaren. Jadi tentunya agak ribet juga. Pasti banyak kendala. Itulah sebabnya gue minta diundur 1 minggu. Karena proses audit harus gue perhatiin. Tapi gitu deh. Karena anaknya bos, masih juga bersikeran harus kelar hari itu juga. Duh :-(

Antara notebook or netbook, bener-bener nggak jelas. Tapi yang gue baca lebih banyak disebut netbook. Mungkin karena nggak pake CD/DVD drive kalee. Jadi gue coba install Ubuntu Netbook Remix (UNR) 9.01 aja.

Installasi

Pake USB flashdrive 1GB tentunya. Cukup install software USB Image Writer (usb-imagewriter) yang ada di repo Jaunty. Ato bisa juga diambil dr sini:

https://launchpad.net/~ogra/+archive/ppa

Kalo pake cara traditional, bisa juga. Nggak perlu software tadi:

unmount /dev/sdb1
dd if=/home/lutfi/Download/iso/ubuntu/Ubuntu-9.04/ubuntu-9.04-netbook-remix-i386.img of=/dev/sdb1 bs=1M


Pastiin netbook booting dari USB. Berikutnya UNR akan muncul dan siap install. Nggak bedalah ama install Ubuntu LiveCD. Dan proses installnya jalan mulus. Nggak ada masalah.

Booting

Proses booting pertama kali tanpa USB, macet di jalan. Sepertinya error ada masalah sama harddisk. Jadi kemungkinan besar problem driver dr SATA controlernya. Karena susah dapet info dari internet tentang netbook model ini, ya akhirnya check lebih jauh netbook Acer model-model laennya. Akhirnya ketemu juga.

Tambahkan parameter ini di kernel untuk booting:

libata.noacpi=1

Kalo nggak tau caranya, coba booting lagi pake USB tadi, mount harddisk netboot ke /mnt dan edit menu grubnya. Tambahkan parameter itu di file /mnt/boot/grub/menu.lst pada 2 baris ini:

# defoptions=quiet splash
# altoptions=(recovery mode) single

Rubahlah jadi seperti ini:

# defoptions=quiet splash libata.noacpi=1
# altoptions=(recovery mode) single libata.noacpi=1

Simpan dan akhiri dengan:

chroot /mnt
sudo update-grub


Setelah restart dan booting dari harddisk netbook, problem tadi udah hilang.

LAN

Pertama kali, gue pilih menu recovery. Jadi masuk ke prompt saja. Masalah baru muncul karena NIC nggak terdeteksi. Wireless sih OK. Buktinya di LiveCD normal. Tapi rupanya NIC nggak langsung online. Jadi gue harus beresin yang ini dulu.

Berikut ini hasil lspci dan lsusb:
<font face="Courier New">$ lspci 
00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory
Controller Hub (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series
Chipset Integrated Graphics Controller (rev 07)
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset
Integrated Graphics Controller (rev 07)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #4 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio
Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port
1 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port
4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev
03)
00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller
(rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev
03)
01:00.0 Ethernet controller: Attansic Technology Corp. Device 1063 (rev c0)
02:00.0 Network controller: Intel Corporation Wireless WiFi Link 5100

$ lsusb
Bus 002 Device 002: ID 04f2:b175 Chicony Electronics Co., Ltd
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 002: ID 0a5c:2151 Broadcom Corp.
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 1b1a:0000
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub</font>
Setelah googling tentang "Ethernet controller: Attansic Technology Corp", driver bisa didownload dari:

http://partner.atheros.com/Drivers.aspx

Pilih "R81Family Linux Driver". Setelah salin ke /usr/local/src. Install pake ini:

cd /usr/local/src
tar zxvf AR81Family-linux-v1.0.0.10.tar.gz
make
make install


Reboot lagi dan pilih recovery mode lagi. Sekarang NIC dan berfungsi.

GUI

Berikutnya muncul masalah GUI. Muncul GDM, tapi nggak bisa login. Setelah cari di Internet, sepertinya ini masalah driver VGA Intel. Jadi gue reboot lagi, dan masuk recovery mode. Well... VGA driver Intel di Jaunty emang bermasalah. Jadi versi updatenya akan lebih bagus digunakan. Bisa dicoba link ini:

http://ubuntuforums.org/showthread.php?t=1130582

Rupanya harus gunakan PPA yang ini:

https://launchpad.net/~ubuntu-x-swat/+archive/x-updates/

Setelah dapat update VGA driver Intel terbaru dan update semua package, sehabis booting langsung bisa menikmati desktop UNR.

Laen-laen

Karena nggak terlalu fokus, gue cek sepintas aja. Webcam langsung OK. Card reader juga OK. Wireless OK. Compiz + Emerald juga OK.

Goodluck, pren



08 Agustus 2009

NIC Realtek error failed -16

Hari ini ada satu client yang mendadak komputernya nggak berfungsi. Sama salah seorang MIS diganti sama CPU yang laen. Harddisk Linuxnya di pindah ke CPU yang ini. Tapi mereka minta bantuan. Kenapa networknya jadi nggak berfungsi? Yah... waktunya ajarin cara trace masalah nih.

Paling nggak kita harus tau apa merk network card yang dipake. Mungkin cara yang paling simple ini:

lspci

Nih hasilnya.

00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] System Controller (rev 25)
00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] AGP Bridge (rev 01)
00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-756 [Viper] ISA (rev 01)
00:07.1 IDE interface: Advanced Micro Devices [AMD] AMD-756 [Viper] IDE (rev 07)
00:07.3 Bridge: Advanced Micro Devices [AMD] AMD-756 [Viper] ACPI (rev 03)
00:07.4 USB Controller: Advanced Micro Devices [AMD] AMD-756 [Viper] USB (rev 06)
00:09.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
01:05.0 VGA compatible controller: Trident Microsystems CyberBlade/XP (rev 63)


Jelas tuh "Ethernet controller" pake chip Realtek (RTL8139). Dan kebanyakan di sini emang gunakan network card dengan chip yang sama. Jadi gue trace lebih jauh kenapa gagal. Simple aja. Gunakan "dmesg" dengan filter keyword "ethernet" atau nama modulnya "8139too" kalo emang kita tau nama modulnya.

dmesg | grep 8139too

Ternyata dapat error ini:

Aug 7 22:05:27 hostname kernel: [ 26.707978] 8139too Fast Ethernet driver 0.9.28
Aug 7 22:05:27 hostname kernel: [ 26.708596] 8139too: probe of 0000:00:09.0 failed with error -16


Rupanya motherboard kuno ini nggak bagus. Setelah obok-obok internet gunakan Google, ketemu solusi. Tambahkan option "pnpbios=off pnpacpi=off" sebagai parameter kernel.

OK. Mari kita coba. Nggak rumit juga. Edit menu grub dengan cara ini:

sudo nano /boot/grub/menu.lst

Cari baris ini:

# defoptions=quiet splash

Dan tambahin dengan parameter tadi.

# defoptions=quiet splash pnpbios=off pnpacpi=off

Save dan lakukan upgrade Grub dengan cara ini.

sudo update-grub

Success, pren. Abis restart langsung ke network tanpa masalah.

02 Agustus 2009

Group mail lokal dan mailbox lokal (2)

Kalo artikel sebelumnya udah ngebatesin group mail agar terproteksi dari luar, sekarang adalah lanjutannya. Gemana ngebatesin user (atau mailbox tertentu) hanya bisa kirim ke domain milik kita. Jadi disini, Postfix gunakan pendekatan 2 arah. Group mail atau mailbox kita batesin terima email dari luar, dan juga kita batesin supaya tidak bisa kirim email ke luar.

Kalo artikel sebelumnya, hanya butuhkan class untuk ngebatesin terima email dari luar, sekarang lengkapin aja dengan class ke 2 untuk ngebatesin user kirim email ke domain selain milik kita.

/etc/postfix/main.cf:
smtpd_restriction_classes = local_only,local_user
# restrict mailbox from receiving email from outside
local_only = permit_mynetworks, permit_sasl_authenticated, reject
# restric mailbox for sending email to outside
local_user = check_recipient_access hash:/etc/postfix/maps/local_domain, reject

smtpd_client_restrictions =
check_sender_access regexp:/etc/postfix/maps/internal_user,
permit_mynetworks,
permit

smtpd_recipient_restrictions =
check_recipient_access regexp:/etc/postfix/maps/internal_only,
...

Lalu definisikan group mail dan mailbox yang mau dibatesin terima email dari luar.


/etc/postfix/maps/internal_only:
# Local group mail here
/^everyone@(my\.domain|my\.domain2|my\.domain3)$/ local_only
# Local user here
/^user1@(my\.domain|my\.domain2|my\.domain3)$/ local_only
/^user2@(my\.domain|my\.domain2|my\.domain3)$/ local_only
...

Juga definisikan mailbox yang mau dibatesin kirim email hanya ke domain kita.

/etc/postfix/maps/internal_user:
# Local user here
/^user1@(my\.domain|my\.domain2|my\.domain3)$/ local_user
/^user2@(my\.domain|my\.domain2|my\.domain3)$/ local_user
...

Dan ini list dari domain kita.

/etc/postfix/maps/local_domain:
my.domain OK
my.domain2 OK
my.domain3 OK
...

Done, pren.

26 Juli 2009

Group mail lokal dan mailbox lokal

Gue cukup seneng dengan mail server baru. Karena banyak option di Postfix yang sangat berguna untuk customization. Salah satunya, tentang group mail. Yang belom tau, group mail itu cuman alias doang. Jadi alias yang selalu ada di semua mail server, itu akan jadi masalah. Kala alias ini terbuka untuk pihak luar.

Contoh nih:

support: john, mike, mee
everyone: :include: /etc/postfix/groupmail/everyone.aliases


Dari 2 contoh di atas, ada 2 group mail. Group mail support@my.domain cuman punya 3 member. Sedangkan group mail ke 2, yaitu everyone@my.domain punya 400 lebih member.

Coba bayangkan. Kalo ada spam/virus masuk ke group mail pertama? No big deal lah. Cuman 3 user. Gemana kalo masuk ke group mail ke 2? Bisa bayangkan nggak? Sekitar 400 user (gampangnya 400PC), bakal terima hal itu. Duh .... ini bisa bener-bener bencana. Kalo cuman spam, paling komplain user saja yang krang kring melulu. Tapi gemana juga kalo virus genersi baru?. Pekerjaan tambahan untuk MIS. Karena harus beresin 400PC tadi :-D

Untuk itu di mail server baru ini, ada ide untuk membatasi group mail jadi lokal saja. Yang artinya group mail dengan banyak member, harus dibatasin cuman user lokal saja yang bisa kirim. Sedangkan user dari internet harus di tolak. Karena emang tujuan group mail ini untuk keperluan internal saja.

Well ... konfigurasinya sangat susah di Sendmail. Tapi lumayan mudah di Postfix. Untuk Sendmail (dulu), gue sampe pake Mailman. Dan ini artinya kerjaan tambahan kan? Sedangkan di Postfix, itu fasilitas build-in. Tanpa software tambahan. Di websitenya sudah sediain tutorial untuk ini. Coba cek aja ke website Postfix. Kan banyak tuh dokumentasinya. Dan link yang ini jelasin dengan cara yang simple. Bagian "Protecting internal email distribution lists".

Problemnya disini, beberapa company ada di kota laen. Juga beberapa notebook selalu mobile. Artinya, mereka diluar network kita. Dan mereka gunakan SMTP-AUTH untuk pengiriman email. Dan contoh itu nggak bisa handle hal ini.

/etc/postfix/main.cf:
smtpd_restriction_classes = local_only
local_only = permit_mynetworks, permit_sasl_authenticated, reject
smtpd_recipient_restrictions =
check_recipient_access regexp:/etc/postfix/maps/internal_only,
...

/etc/postfix/maps/internal_only:
# Local group mail here
/^everyone@(my\.domain|my\.domain2|my\.domain3)$/ local_only
# Local user here
/^user1@(my\.domain|my\.domain2|my\.domain3)$/ local_only
/^user2@(my\.domain|my\.domain2|my\.domain3)$/ local_only
...

Penggunaan "smtp_restriction_classes" di sini sangat membantu. Dengan mengijinkan "permit_mynetworks" (user lokal) dan "permit_sasl_authenticated" (user remote yg gunakan SMTP-AUTH). Dan selain ke 2 macem user itu, langsung di tolak.

Dan hal itu bisa dipake untuk ngebatasin nggak cuman group mail. Tapi mailbox juga. "user1" dan "user2", hanya bisa terima email dari dalam saja. Oya, file /etc/postfix/maps/internal_only hanya untuk definisikan group mail lokal dan mailbox lokal. Dan contoh diatas gunakan share domain. Bukan virtual domain.

22 Juli 2009

MacBook jadi client

Gak tau kenapa, salah satu bos gue sepertinya udah mulai sadar akan notebooknya. Aslinya dia pake Vista. Selalu ngeluh pelan. Gue sekalian ejek tuh. Bukan sekali dua kali. Setiap kali ketemu. Hari gini pake Vista? Makan tuh problemnya. Dari 5 orang bos yang pake Vista, semuanya ngeluh hal yang sama :-D

Kemaren mendadak dia bawa MacBook. Sepertinya punya couplenya deh. Dan dia pengen coba kerja pake itu. Wah... belon pernah deh gue configure MacBook. Tapi sepertinya MacBook yang sekarang kan udah banyak dukungan FOSS softwarenya. Jadi nggak ada salahnya gue coba deh.

Ini bener-bener pengalaman pertama pegang MacBook. Jadi support sitenya Apple dan Google tentunya akan sangat membantu. Dah akhirnya bisa juga install ini:
  • Firefox 3.5
  • Thunderbird 2.0.22 + Lightning addon
  • OpenOffice.org 3.1
Itu semua kebutuhan dasar. Walaupun udah ada Safari dan MacMail, tapi software FOSS lebih bisa dipercaya deh. Kenapa? Ya karena gue butuh untuk pindahkan konfigurasi/data dari Windows tentunya. Karena di Windows udah pake itu semua, akan jadi gampang menggunakan software yang sama di Mac. Tinggak pindahin juga profilesnya.

Juga walaupun udah ada Ms.Office 2008-nya, tapi OpenOffice.org for Mac tetep dibutuhkan untuk akses ODF files yang banyak betebaran di server.

Beberapa software yang gue configure juga:

  • iChat
    Untuk instant messaging gunakan ejabberd server. Segampang Pidgin sepertinya.
  • TunnelBlick
    OpenVPN client for Mac. Karena bos satu ini slalu mengakses server Samba dari rumahnya, VPN solusi untuk dia. Dan setelah copy semua config files OpenVPN dr Vista ke Mac, langsung bisa connect. Tanpa configure apa2 lagi.
  • Printing
    Ini yang paling ribet. Printer Epson Stylus Photo 1390 di PC laen, nggak bisa dihubungin dari MacBook. Apapun yang dicetak, selalu menghilang entah kemana. Padahal udah gunakan CD driver official dr Epson. Karena printing di Mac pake CUPS juga, gue cobain driver FOSS aja. Berhasil juga akhirnya.
Hal laen yang juga gue coba adalah mengakses Samba server gunakan Finder. Mudah juga. Nggak beda ama di Linux lah. Jadi.... kalo gue sih, mending pake Linux aja. Murah booo ....

Well pren .. FOSS everywhere ...

11 Juli 2009

Mail Server baru

Setelah satu bulan sibuk dengan hal laen yang nggak terlalu berhubungan sama IT, sekarang gue baru sempet lagi. Nyambungin cerita proses migrasinya. Kalau loe ngikutin ceritanya, terakhir kali Netware 5.1 server udah di museumkan. Dan proses selanjutnya adalah memperbarui mail server. Bener-bener belajar dari awal untuk guenya.

Sekitar 6 tahun di Jakarta gue terbiasa Sendmail di Redhat Linux sampe Fedora Core. Tapi di sini gue ganti gunakan Ubuntu Server 8.04 LTS Edition. Secara konsep semua Linux itu sama. Jadi emang nggak sulit lah beradaptasi dari Redhat/Fedora ke Ubuntu. Termasuk juga mail server. Semua mail server ya cara kerjanya seperti itu deh. Jadi di sini gue perlu belajar (atau penyesuaian) dari Sendmail ke Postfix. Well... bukan hal yang sulit. Karena banyaknya dokumentasi yang bertebaran di Internet.

Sekitar 1 bulan gue coba-coba banyak options di Postfix. Yang mana karena MIS di sini 8 tahun menggunakan Redhat Linux tentunya gue harus memikirkan di sisi mereka juga. Tapi juga kebutuhan baru tentunya. Terutama nerapin teknologi baru di mail server. Jadi solusinya, untuk sementara pindahin semua account dan system kerja dari Sendmail ke Postfix. Tapi ke depannya bakal gue percanggih lebih advanced lagi.

Beberapa hal yang dulu ada di Sendmail bener-bener gue udah check. Seperti berikut:
  1. Pemindahan semua mailbox (inbox dan folder laennya)
  2. Pemindahan semua alias (atau group mail)
  3. Open Relay
  4. SMTP AUTH
  5. Antivirus
  6. DNSBL
  7. Filtering attachment
  8. Sender Address Verification
  9. Greylisting
  10. Spamassasin
  11. LDAP support
Well .... semua gue cek secara sangat detil. Karena menurut gue itu kebutuhan dasar bagi mail server di sini sebelumnya. Jadi gue harus provide semua itu. Dan hasilnya, sangat sangat memuaskan :-D

Suprise juga deh. Terus terang configure sendmail dengan semua tambahan fasilitas di atas bener-bener bukan hal mudah. Bahkan susah deh. Karena harus nambahin banyak sekali milter. Dan solusi Postfix bukan main. Postfix sangat gampang di configure. Dan hampir semua di atas secara build in udah disediakan. Dan... bahkan gue dapat lebih itu :-D

Sekitar 2 minggu lalu proses pergantian mail server gue lakukan. Dan...sukses!!! Email-email lama bagi pengguna webmail tetep tersedia. Dimana webmailnya dari Squirremail menjadi RoundCube. Email keluar masuk sampe detik ini bener-bener kenceng. Dan semua mailbox tidak ada yang terlewatnya. Semua sekarang gunakan 1 username & password untuk login Windows/Linux, email and instant messaging (Pidgin).


10 Juni 2009

Xerox Document Center C320

Sebelumnya gue udah pernah setting printer ini. Karena nggak ada driver yang cocok, gue pilih driver generic PCL6 seperti biasa. Dan emang bisa cetak. Sayangnya ya cuman hitam putih aja. Cetak warna semuanya akan di convert ke hitam putih. Huh?

Nggak sengaja smalem waktu baca-baca milist, ada yang tanya mengenai Xerox tapi model laen. Waktu Googling nemukan driver Linuxnya justru untuk Xerox Document Center 240/C320/C400 yang ada di company sini. Jadi tertarik pengen nyoba lagi.

Setelah download driver dari sini:

http://www.support.xerox.com/go/results.asp?Xtype=download&prodID=WCM24&Xlang=en_au&Xcntry=AUS

Ternyata nggak ada tuh untuk Xerox Document Center 240/C320/C400. Semua ppd filenya justru untuk model laennya. Gemana nih Xerox? Bener-bener deh. Linknya jelas, tapi setelah di extract justru nggak ada untuk model itu. Bahkan udah gue intip setiap ppd filesnya satu persatu, emang nggak ada keterangan untuk model itu.

Nggak sengaja lagi, ada link "Documentation" di link download tadi. Setelah gue klik, justru menuju ke sini:

http://www.support.xerox.com/go/results.asp?Xtype=docs&prodID=WCM24&Xlang=en_au&Xcntry=AUS&prodName=Document%20Centre%20C240/C320/C400

Aneh! Semua yang muncul di halaman ini adalah Xerox WorkCenter M24. Bukan support dari Xerox Document Center 240/C320/C400. Nggak jelas nih. Gue yang bego, or Xerox yah? :-D Karena gue coba klik skali lagi, emang muncul lagi semua dokumentasi link Xerox WorkCenter M24.

Ya udah. Akhirnya gue cari dari ppd file tadi untuk Xerox WorkCenter M24. Lalu ppd file (xrxwcm24.ppd) ini gue coba pake untuk Xerox Document Center 240/C320/C400 milik kita. Well... color bisa dicetak dengan sempurna. :-D

07 Juni 2009

Generate otomatis Logon script di Samba

Sebenernya idenya udah dari tahun lalu pengen bikinnya. Tapi karena melihat keadaan user sini yang nggak terlalu komplek waktu itu, cukup bikin 1 departemen 1 macem logon script saja. Dan MIS udah terbiasa dengan hal ini. Maklum, mereka baru kenal Linux. Banyak nggak taunya kalo sebenernya server Linux bisa di customize untuk kebutuhan macem-macem. Dan kali ini loe akan liat hasilnya ;-)

Setelah baca artikel Vavai (link), baru inget lagi. Dan tepat juga dengan keluhan beberapa bos sini. Mereka pengen akses di banyak departemen folder. Maunya semuanya langsung muncul seperti Linux user. Well ... Ubuntu (Gnome) client di sini menikmati logon script juga loh :-D Sekali login ke Gnome, semua folder di server NFS langsung terbookmark otomatis. Baca deh artikel gue tentang ini (link).

Karena mulai banyak user yang maunya akses beberapa folder departemen laen, mau nggak mau harus cari solusi. Setelah baca-baca "samba-doc" muncul ide juga. Sayangnya contoh logon script yang di generate pake Python dan Perl. Dan gue nggak ngerti tuh ke 2 bahasa itu. OK, no problem deh. Pake scripting yang laen juga bisa di Linux. Karena dikit-dikit tahu tentang Bash, akhirnya gue pilih Bash script saja. Dan berhasil :-D

Kondisi sharing di server (Samba)

Setiap user disini, akan langsung menikmati folder-foldernya di server:
  1. Personal (masing-masing username dapat folder sendiri)
    Default Samba pake nama [home], tapi sengaja gue ganti nama sharenya.
  2. Department (semua user di departemen yang bisa akses)
  3. Public (Semua user bisa baca, hanya perdepartemen yang bisa baca/tulis)
  4. Software (software for Linux/Windows untuk kebutuhan MIS support ke client)
  5. Temp (Temporary folder)
Untuk No.1,3,4,5 setiap user akan menikmati mapping folder ini. Kendala munculnya di no.2 di atas. Ada user yang maunya akses folder ke 3 departemen. Padahal logon scriptnya udah kita set ke default department. Mau nggak mau, MIS akan mount manual di Windows. Dan ini akan jadi masalah, saat user pake komputer laen departemen selain default nggak muncul lagi.

Pake logika yang sama seperti bikin script untuk Gnome, disini ada perbedaan cara kerja. Windows client memiliki fasilitas logon script saat udah join ke Windows/Samba server. Jadi tanpa perlu nambah apa-apa di client. Murni generate script dan deteksi group semuanya dilakukan di server Linux/Samba. Sama skali tanpa perlu nambah software di client.

Bandingkan dengan Ubuntu/Gnome client di artkel sebelumnya (link). Script emang ada di NFS server. Tapi setiap user login via GDM, script di server tersebut harus di load. Jadi autostart programnya akan bermanfaat disini. Cukup buat 1 shortcut yang sangat simple dan copy ke semua client Ubuntu. Siapapun yang login ke Ubuntu client, shortcut itu akan meload script di NFS server dan langsung folder di NFS akan terbookmarks di File Browser (Nautilus). Solusi beres. Baca artikel di link atas selengkapnya.

Konfigurasi Samba

Ini konfigurasi di Samba server. Terutama bagian yang berkaitan dengan netlogon saja yah:

[global]
logon script = %U.bat

[netlogon]
path = /samba/netlogon
writeable = no
guest ok = no
root preexec = /usr/local/bin/genlogonscript.sh %U
root postexec = rm -f /samba/netlogon/%U.bat


Dan ini adalah script bash untuk mengenerate logon scriptnya. Yang harus di simpan ke /usr/local/bin/genlogonscript.sh dan buat jadi executable. Kalo ragu copy paste, bisa ambil salinan script ini di dropbox gue (link).

#!/bin/bash
# Logon script generator using Bash
# created by Lutfi <lutfi.arab@gmail.com> @2009
#
# Requirement software:
# - tofrodos
#
# Limitation:
# - ldap group have to same with department folder
# - mapping drive from drive L until drive Y
#
# define your server here

servername=SAMBASVR
logonscriptdir=/samba/netlogon
logonscript=$logonscriptdir/$1.bat
user=$1

# starting to generate logon script
# set time on client
echo "NET TIME \\\\$servername /SET /YES" > $logonscript

# delete old mapping
drive=( J K L M N O P Q R S T U V W X Y )
for (( i=0; i<${#drive[@]}; i++ )); do
echo "NET USE /DEL ${drive[$i]}:" >> $logonscript
done

# map personal folder
# default samba using \\<samba-server>\<username>
echo "NET USE J: \\\\$servername\\PERSONAL" >> $logonscript

# map public folder
echo "NET USE K: \\\\$servername\\PUBLIC" >> $logonscript

# map department folder
drive=( L M N O P Q R S T U V W )
let driveno=-1

for i in `/usr/bin/groups $user` ;
do
for j in `/bin/ls /samba/department/` ;
do
if [ $i == $j ] ; then
let driveno++ ;
echo "NET USE ${drive[$driveno]}: \\\\$servername\\$i" >> $logonscript ;
fi ;
done ;
done

# map software folder
echo "NET USE X: \\\\$servername\\SOFTWARE" >> $logonscript

# map temp folder
echo "NET USE Y: \\\\$servername\\TEMP" >> $logonscript

# add space here
echo >> $logonscript

# convert text to dos format
cd $logonscriptdir
/usr/bin/unix2dos $logonscript
/bin/chmod 644 $logonscript

#finishing
exit

Contoh hasil generate

Misal generate logon script untuk gue, bisa di cek dulu gue masuk groups apa nih? Oya, gue pake sambldap-tools. Jadi groups udah ada di LDAP dan udah terintegrasi dengan sistem. Tapi kalopun nggak pake LDAP server (murni samba), script ini tetep bisa. Karena deteksi groups gunakan sistem Linux. Misal nih gue masuk groups apa aja:

root@sambasvr:~# su lutfi
lutfi@sambasvr:/root$ groups
Domain Users Domain Admins Administrators mis management

Jadi gue masuk di groups (department): "mis" dan "management". Dan ke dua groups ini punya folder di /samba/department. Group yang laen (Domain Users, Domain Admins dan Administrators) adalah default groups dari Samba. Yang mana nggak ada foldernya. Jadi ini akan diabaikan. Jadi untuk yang ini, jangan punya folder department bernama: Domain, Admins, Administrators dan Users. Inget yah!

Berikut contoh hasil script yang di generate:

root@sambasvr:/samba/netlogon# cat lutfi.bat
NET TIME \\SAMBASVR /SET /YES
NET USE /DEL J:
NET USE /DEL K:
NET USE /DEL L:
NET USE /DEL M:
NET USE /DEL N:
NET USE /DEL O:
NET USE /DEL P:
NET USE /DEL Q:
NET USE /DEL R:
NET USE /DEL S:
NET USE /DEL T:
NET USE /DEL U:
NET USE /DEL V:
NET USE /DEL W:
NET USE /DEL X:
NET USE /DEL Y:
NET USE J: \\SAMBASVR\PERSONAL
NET USE K: \\SAMBASVR\PUBLIC
NET USE L: \\SAMBASVR\mis
NET USE M: \\SAMBASVR\management
NET USE X: \\SAMBASVR\SOFTWARE
NET USE Y: \\SAMBASVR\TEMP

Laen-laen

Script ini akan gunakan drive mapping mulai drive J sampe drive Y. Jadi kalo butuh manually mount, sebaiknya jangan gunakan drive itu. Karena setiap login akan di diskonek dan di bikin drive mapping baru.

See pren, dengan Linux semua jadi bisa kan;-)

31 Mei 2009

Memuseumkan Netware

Akhirnya berhasil juga nih menghilangkan Netware bajakan kuno dari factory ini. Goodluck for MIS team sini. Setelah 8 bulan kerja keras, tiga company berhasil menggunakan Ubuntu Server 8.04 LTS Edition tanpa kehilangan data dan juga tanpa adanya perubahan disisi client Windows. Mungkin yang beda sekarang separohnya adalah client Ubuntu Linux 8.04 LTS Edition :-D

Baek client Linux maupun client Windows bisa mengakses folder yang sama persis. Jadi mereka nggak terlalu pusing. Dan sekarang nggak terlalu heboh seperti pertama kali dulu. Denger Linux banyak yang bilang sulit. Tapi anehnya sekarang lancar-lancar aja. Bahkan beberapa notebook personal minta diinstall Linux. Termasuk anaknya bigbos :-D

Sebelumnya juga, ada satu Windows 2003 server juga bajakan udah dilenyapkan terlebih dulu. Bayangin yah (pada saat itu). Client Windows 2003 server bisa akses netware (karena ada netware client). Sedangkan client Netware server bisa akses Windows 2003 karena mereka juga punya account di server ini. Jadi semua user punya 2 account di server berbeda. Sialnya accout namenya beda. Dengan password yang beda juga. Tapi struktur directory dan usernya .... bener-bener kaco abis. Belon lagi virus virus virus dan juga seperti biasa. Restart tiap minggu.

Well... kedua server bajakan udah disatukan menjadi Ubuntu Server 8.04 LTS Edition dengan Samba+LDAP dan NFS+LDAP. Service Samba+LDAP akan layanin Windows client. Sedangkan service NFS+LDAP layanin Ubuntu client. Total sekitar 300 user (di 3 company) udah menikmati tanpa problem. Cukup 1 username dan 1 password untuk akses Samba/NFS, instant messaging (pidgin). Dan 2-3 minggu ke depan mail server bisa gunakan username and password yang sama.

Itulah rencananya. Minggu depan akan mulai serious uji coba mail server baru. Dan dalam 2-3 minggu ke depan mail server harus baru. Juga gunakan Ubuntu Server 8.04 LTS Edition dengan postfix+amavis. Karena mail server lama masih Redhat 7.3 yang nggak sanggup handle 2GB mailbox :-D

Sebenernya masih ada 2 company lagi. Satu company pake Windows 20003 license (OEM). Sayangnya nggak punya ACL license. Itu juga bakal kita ganti ke Samba. Dan satu company lagi nggak pake server. Cuma company ini ada di kota laen. Jadi solusi OpenVPN juga akan diterapin disini. Supaya mreka bisa mengakses server Samba disini. Juga beberapa intranet website yang dari dulu mereka nggak pernah bisa akses. Well... keduanya juga bakal gunakan client Ubuntu Linux.

Ok. Pren. Keep watching ...

24 Mei 2009

Ubuntu Server Guide

Sering banget dapat pertanyaan. Belajar dari mana? Wah... susah jawabnya. Bukan karena susah dapat informasinya. Justru karena terlalu banyak pilihan informasi. Hingga mau jawab jadi bingung. Sebegitu banyaknya guide masa nggak bisa nemukan yah? :-D

Ubuntu itu distro yang bikin gue seneng karena banyak dokumentasinya. Dan karena dukungan komunitas yang banyak, lebih banyak lagi tuh versi turunannya. Dan ini membuat banyak pihak menyumbang ke Ubuntu. Termasuk guide untuk bikin server. Bagus dan mudah di akses.

Anehnya banyak yang nanya gue belajar dari mana? Apalagi di mailing list? Sering kali gue temukan pertanyaan itu. Gemana buat server? Harus belajar dari mana? Dan laennya yang intinya sepertinya Ubuntu Server itu beda sama Ubuntu Desktop. Padahal keduanya sama aja.

Gemana cara mudah menemukan "Ubuntu Server Guide"? Wah... mudah banget. Di semua Ubuntu desktop selalu disertakan tuh. Jadi mending loe obok-obok dulu helpnya. Semuanya ada disitu. Hebatnya, Ubuntu Server Guide ini selalu terupdate di setiap versi baru Ubuntu. Jadi smakin lengkap saja.

Cara menemukannya simple. Coba ikutin cara ini:
  • Klik menu System
  • Help and Support
  • Advanced Topics
  • Installing Server Applications


Lengkapkan? Betul sekali. Kebutuhan dasar untuk pemula yang pengen mengenali Ubuntu sebagai server bisa dipelajari di sini. Hampir semua applikasi server bisa ditemukan di sini. Cukup coba semua itu di Ubuntu Desktop. Ubuntu Desktop akan bisa berfungsi sebagai server.

Cara laen yang lebih kilat untuk mengakses Ubuntu Server Guide, tekan Alt+F2 dan command ini:

yelp ghelp:serverguide

Yang butuh versi HTML, jadi bisa diakses dari LAN (jika dipasang di webserver), bisa diinstall paket ini:

sudo apt-get install ubuntu-serverguide

Lalu buka aja webbrowser dan masukkan file ini:

file:///usr/share/ubuntu-serverguide/html/C/index.html

Tapi kalo pengen mengaksesnya dari internet, Ubuntu juga menyediakannya:

https://help.ubuntu.com/9.04/serverguide/C/index.html



Dan juga bisa di download versi PDF:

https://help.ubuntu.com/9.04/serverguide/C/serverguide.pdf

So pren, banyak sekali cara untuk mengakses Ubuntu Server Guide. Kalau butuh guide yang laen tersedian di Internet, coba kunjungin ini:

https://help.ubuntu.com/community
http://www.ubuntuguide.org
http://wiki.ubuntu-id.org/PanduanUbuntu
http://www.howtoforge.org (macem-macem distro)

Keep update, pren

21 Mei 2009

Sharing folder/printer client Linux untuk client Windows

Kali ini gue bahasa gemana cara paling mudah untuk sharing folder atau sharing printer client Linux untuk client Windows. Sorry, ini bacaan untuk MIS/IT di perusahaan. Bukan untuk user biasa yah. Karena memang ini cocok diterapkan di jaringan komputer dalam perusahaan. Terutama yang ada client Linux atau client Windowsnya.

Semua client Linux (Ubuntu) disini menggunakan NFS+LDAP. Sedangkan client Windows menggunakan Samba+LDAP. Keduanya sudah tersambung ke LDAP dengan baek. Sekarang gemana sharing printer dan folder di client Linux untuk client Windows? Itu akan gue bahas disini.

Sharing printer

Semua client Linux sharing printernya menggunakan CUPS. Sama sekali nggak pake Samba. Ngapain sharing printer pake Samba? CUPS jauh lebih mudah dari teknologi Windows. Check link ini yah untuk tahu detailnya.

Sharing folder

Hal laen yaitu sharing folder client Linux agar bisa diakses client Windows. Gue pernah singgung artikel beberapa bulan yang lalu tentang nautilus-share di link ini yah. Nah ini yang gue pake. Sorry, gue nggak mau ribet ajarin setting Samba secara lengkap panjang lebar ke MIS. Karena mereka masih baru. Dan terus terang itu nggak simple kan? Jadi solusi dengan nautilus-share akan simple untuk mereka.

Walau hampir semua user menyimpan data di server, solusi seperti harus gue sediakan. Karena dengan user sekitar 400 orang, pasti nggak semuanya ngikutin aturan. Dan itu ternyata ada. Tapi sudah kita tegasin, resiko hilang data di client, kita nggak bisa restore. Kalau data di server hilang, kita bisa restore dari backupnya.

Nautilus-Share

Karena setiap client Ubuntu Linux menggunakan NFS+LDAP, ini contoh saja. Home folder gue sendiri. Fokuskan di permission dan ownershipnya.

root@lutfi:~# ls -l /home/lutfi/
total 1740
-rw-rw-r--  1 lutfi Domain Users   8781 2008-11-28 07:39 todo.txt
-rw-rw-r--  1 lutfi Domain Users   3229 2008-10-29 13:27 avahi.txt
drwxrwxrwx  3 lutfi Domain Users   4096 2009-03-11 16:31 Desktop
drwxrwxr-x 24 lutfi Domain Users   4096 2009-03-09 09:59 Documents
drwxrwxr-x 18 lutfi Domain Users   4096 2009-02-23 08:09 Downloads

Jelas dari hasil di atas, group ownership adalah "Domain Users". Ini karena gue buat LDAP server pake smbldap-tools. Yang hasilnya LDAP server bisa digunakan untuk otentikasi terpusat. Dipake untuk Samba dan semua client Ubuntu. Semua client Ubuntu akan masuk dalam group "Domain Users".

Dan masing-masing home folder, ini listnya:

root@lutfi:~# ls -l /home/
total 16
drwxr-xr-x 120 lutfi    Domain Users 12288 2009-03-11 16:17 lutfi
drwxr-xr-x  32 sysadmin sysadmin      4096 2009-02-23 09:19 sysadmin

User "sysadmin" itu di create waktu install Ubuntu. Levelnya root (administrator) tentunya. Jadi bisa gunakan sudo dengan user ini. Sedangkan user "lutfi" hanya sebagai user saja. Tidak bisa gunakan sudo. Jadi tidak bisa melakukan fungsi-fungsi root.

Jadi jelas disini, untuk melakukan perubahan sistem, harus gunakan user "sysadmin". Termasuk untuk melakukan share dengan nautilus-share, gunakan login "sysadmin". Karena login user masing-masing tidak akan diijinkan.

Untuk install nautilus-share, lakukan ini:

sudo apt-get install nautilus-share samba libpam-smbpass

Setting nautilus-share sebenernya nggak beda sama Samba. Cuman udah dibuat sesimple mungkin. Ini contoh settingnya default dari Ubuntu Linux 8.04 LTS:

root@lutfi:~# cat /usr/share/doc/nautilus-share/examples/smb.conf

[global]
workgroup = HOME
security = share

usershare path = /var/lib/samba/usershare
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
wins support = no

Dengan memperhatikan permission dan ownership tadi, sekarang kita akan rubah setting defaultnya seperti ini dan simpen ke /etc/samba/smb.conf.

root@lutfi:~# cat /etc/samba/smb.conf

[global]
workgroup = DOMAINKU
security = share

usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
wins support = no
force group = "Domain Users"
force create mode = 0664
force directory mode = 0775


Oya, ada sedikit bug di sini. Pada bagian "usershare path" defaultnya adalah "/var/lib/samba/usershare". Ganti menjadi "/var/lib/samba/usershares" (hanya menambah satu hurus S saja).

OK. Restart aja service Samba. Dan ready untuk digunakan. Ingat, harus login dengan "sysadmin" dan silakan share folder. GUI untuk sharenya sesimple Windows. Klik kanan foldernya, lalu klik "Sharing options".

Umask penting juga

Client Linux sangat berkaitan dengan umask dalam melakukan penulisan/perubahan baek file dan directory di system. Secara default umask=022. Dan nilai itu akan menjadi masalah kalau menginginkan sharing folder dengan user laen. Baik user Linux laen (dengan NFS) ataupun dengan user Windows. Gue nggak mau jelasin panjang lebar hal ini, tapi ada baeknya dirubah menjadi umask=0002. Silakan rubah di file /etc/profile tentunya root/admistration yang bisa merubah ini.

Spread to all client

Ubah umasknya, copy /etc/samba/smb.conf filenya, install paketnya. Ready deh. Semua client bisa sharing dengan mudah. Tentunya, hanya untuk MIS/IT deh.

Goodluck pren

19 Mei 2009

Script untuk switch secara otomatis proxy APT di notebook

Beberapa user minta di install Ubuntu di personal notebook. Bahkan ada satu yang dulu slalu bawa Mac, sekarang ikutan pake Ubuntu juga. Karena mereka hidup di dua alam (office dan home), lumayan ribet deh kalau jelasin ke mereka gemana harus ganti2 proxy (apt-cacher).

Dalam office sini semua client pake proxy apt-cacher. Tujuannya tentu saja untuk menghemat bandwidth. Karena semua request software Ubuntu (.deb) akan di simpan (cache) di server. Laen user jika request software yang sama, akan langsung diberi dari cachenya (tanpa perlu download ulang).

Cukup gunakan ini di semua client:

$cat /etc/apt/apt.conf.d/01proxy
Acquire::http::Proxy "http://repo.mydomain.com:3142";

Problem muncul untuk notebook. Kalo mereka kembali ke rumah, proxy itu harus dimatikan (atau hapus saja file itu). Untuk kita jelas sangat simple. Tapi untuk user biasa, melihat console itu seperti melihat setan saja. Selalu ada keluhan :-D

Dari situ akhirnya gue dapat ide untuk mempermudahkan. Karena network kita pake DHCP, domain dari DHCP yang dijadikan patokan. Kalo di file /etc/resolv.conf terdapat domain company kita, maka file proxy akan di generate. Di rumah DHCP server beda (umumnya dr ADSL modem). Dan ini tentunya menggunakan domain laen lagi. Domain selain company kita yang terdeteksi, akan menghapus file proxynya. Simple kan?

Untuk mengetahui perubahan domain, script ini paling cocok di simpan ke directory /etc/network/if-up.d/ yang akan di execusi setiap kali notebook online. And here the script:

#!/bin/bash
# This script special for mobile user (notebook)
# To make easy switch proxy server for apt (apt-cacher server) on office or direct connection on home
# It will detect domain from DHCP server (in file /etc/resolv.conf)
#
# created by Lutfi <lutfi.arab@gmail.com> @2009
#
# How to:
# Save this file on directory /etc/network/if-up.d/
# and don't forget to set: chmod +x /etc/network/if-up.d/switch-proxy-apt

# define your apt-cacher server here
proxyname="repo"
proxyport="3142"

# define your company domain (DHCP domain)
companydomain="mydomain.com"

# don't change this !!!
grep -q $companydomain /etc/resolv.conf && \
echo "Acquire::http::Proxy \"http://$proxyname:$proxyport\";" > /etc/apt/apt.conf.d/01proxy || \
echo "Acquire::http::Proxy \"http://\";" > /etc/apt/apt.conf.d/01proxy

Atau (kalo males copy/paste) bisa download script ini dari dropbox gue: here. Simple aja tekniknya. Simpan ke dalam directory /etc/network/if-up.d/ dan rubah permission supaya dapat di execute.

wget http://dl.getdropbox.com/u/382552/switch-proxy-apt
nano switch-proxy-apt #Edit sesuaikan proxy dan domainnya !!!
sudo mv switch-proxy-apt /etc/network/if-up.d
sudo chmod +x /etc/network/if-up.d/switch-proxy-apt


OK. Smoga bermanfaat, pren.

16 Mei 2009

PDF file yang amburadul

Salah satu user komplain. Karena Linux nggak bisa menampilkan PDF file dengan bener. Padahal di Windows, PDF filenya bisa dibaca dengan baek. Khususnya text bahasa Thai. Dan ini sepertinya kasus menarik untuk gue tulis di blog ini. Pengalaman bagus untuk menilai kenapa Linux bisa seperti ini.

Di Windows hampir semua client menggunakan Foxit PDF reader. Beberapa notebook menggunakan Adobe Reader. Tidak ada masalah menampilkan file PDF yang dimaksudnya. Tapi di Ubuntu Linux 8.04 LTS Edition, ada problem. Banyak text yang ditampilkan hanya kotak-kotak saja. Khususnya ini text bahasa Thai. Dan loe tau kan? User langsung menyalahkan Linux jelek!!! :-D

Ini contoh PDF file yang bermasalah. Beberapa text latin ditampilkan dengan baek. Sedangkan text yang kotak-kotak sebenernya adalah bahasa Thai.



File PDF umumnya akan menyertakan font (umumnya truetype font) yang dibutuhkan untuk merender dokumen tersebut. Rupanya setelah cek lebih jauh ke propertiesnya, ketemu problemnya. File PDF ini tidak menyertakan fontnya. Tuh ada keterangan "Not embedded" !!! Dan kecurigaan jatuh pada font "Tahoma" dan "Tahoma Bold".



Font "Times New Roman" dan "Times New Roman Bold" umumnya nggak menjadi
masalah. Karena font ini udah terinstall di semua client Ubuntu Linux. Font ini akan
di download kalo kita install paket "msttcorefonts" (Jaunty: ttf-mscorefonts-installer) yang udah ada di
repository Ubuntu. Jadi karena di system Ubuntu Linux ada font ini, makanya text latin bisa ditampilkan dengan bener.

Sedangkan font "Tahoma" dan "Tahoma Bold" tidak ada dalam system. Dan ini menjadikan tampilalan error seperti tadi. Well ... ini bukan salah Linux. Tapi salah software yang dipake oleh pembuat file PDF tadi. Software ini nggak bekerja dengan baek. Sehingga fonts tidak disertakan.

Akhirnya untuk membikin user yakin ini bukan kesalahan Linux, gue kirim kembali yang udah bener. Caranya simple aja. Pinjem client Windows, buka file PDF itu, dan cetak pake PDF Creator. Voila ... inilah hasilnya.



Tuh kan. Linux juga bisa. Problem ada di filenya. :-D


15 Mei 2009

Hari ini ... Virus :-(

Resiko nih. Karena masih banyak menggunakan Windows XP, tentu resiko ini terjadi. Hari ini ada lumayan banyak komplain karena muncul peringatan trojan di beberapa computer client. Tentu saja hanya Windows client. Linux client tetep tenang-tenang saja.

Beberapa user complain (terutama notebook), AVG nggak bagus katanya. Buktinya client Windows deketnya nggak kena. Tapi setelah cek lebih jauh, client Windows yang gunakan SAV CE (Symantec Antivirus Corporate Edition) juga alamin hal ini. Juga sodaranya Norton 360. Bahkan personal notebook yang pake NOD32 juga sama. Walah ... sampe siang belon ada juga solusinya.

Beberapa client udah nggak bisa akses Samba server. Hanya client Windows loh. Anehnya dari linux client bisa akses Samba dan juga NFS server. Aman-aman saja. Karena beberapa user mulai komplain nggak bisa kerja, ya harus kasih solusinya. Tapi gemana bisa kasih solusi. Tiga antivirus berbayar hanya bisa ngedetek doang, Masih belon bisa clean. Ini artinya virus baru ....

Terpaksa harus umumin juga. Kalo butuh kerjaan urgent, please pinjem client Ubuntu Linux di sekitarnya. Login username dan password seperti biasa (yang di pake di Windows). Dan semua file di server akan ready tanpa virus. Hanya itu yang bisa dilakukan sementara sambil neliti lebih jauh virusnya. Sambil gerutu juga.

Windows slalu bikin susah hidup ...

10 Mei 2009

Mengupdate semua key Launchpad (PPA)

Setiap 6 bulan sekali, notebook gue akan menikmati Ubuntu versi baru. Ini jatahnya Jaunty. Tentu saja pengen tau hal-hal baru. Dan biasanya akan jelas perubahannya kalau fresh install. Bukan hal memberatkan. Tapi yang paling menyebalkan adalah bagian update PPA key.

Gue pake banyak tambahan software. Hampir semuanya dari PPA Launchpad. Updating satu-persatu tenyata menyebalkan.

Nggak sengaja dapat script dari sebuah blog Web Upd8. Tapi setelah gue trace, itupun udah dirubah. Karena asalnya script dari UbuntuForums.org. Sepertinya bagus deh. Sekali dijalankan, semua key akan di download dan langsung di add otomatis. Betul, jalan sesuai rencana pembuatnya. Tapi tidak bisa di notebook gue :-(

Setelah gue cek lebih jauh, karena gue pake apt-cacher. Contoh nih untuk PPA Ubuntu-Tweak:

deb http://ppa.launchpad.net/tualatrix/ubuntu jaunty main

Dengan apt-cacher (nggak CGI mode), akan seperti ini:

deb http://repo:3142/ppa.launchpad.net/tualatrix/ubuntu jaunty main

Hal laen, gue kurang suka outputnya. Script itu jalan tanpa output sama sekali. Jadi nggak tau apa udah sukses semuanya atau gagal.

Karena bakal sering gue pake, mau nggak mau ya harus di modif untuk mempermudah kerjaan nih. Gue harus rubah script itu agar bisa ngenalin apt-cacher. Juga output harus di tambahkan. Biar jelas semuanya deh.

File "launchpad-update" ini udah gue upload di Dropbox gue. Yang pengen, ya silakan download saja. Simple aja nih cara pakainya. Download dan rubah permisiionnya:

chmod +x launchpad-update
sudo ./launchpad-update

Kalo dibelakang proxy server, pake cara ini:

env http_proxy=http://proxy.mydomain.com:3128 sudo ./launchpad-update

Dan ini hasilnya outputnya:

Release: jaunty
Please Wait...
add vperetokin key ...
OK
add paul-climbing key ...
OK
add bisigi key ...
OK
add tualatrix key ...
OK
add rvm key ...
OK
add webkit-team key ...
OK
add chromium-daily key ...
OK
add blueman key ...
OK
Done. All keys imported ... :-D

Ini enaknya FOSS. Kalo 1000 orang rubah script ini, 1000 kali akan lebih canggih lagi.



05 Mei 2009

Printer HP Deskjet f2235 All in one di Hardy

Di sini client Linux menggunanakan Ubuntu Linux 8.04 LTS Edition. Sengaja pake LTS. Karena gue butuh dukungan update sampe 3 tahun.

Kali ini ada kasus printer baru. Biasa printer HP. Dan MIS udah tau yang namanya HPLIP. Jadi mereka langsung nambahin pake menu printing. Hasilnya nggak bisa nyetak. Lalu gunakan "hplip-gui" untuk melakukan deteksi otomatis dan fungsi-fungsi lain yang disediakan. Tapi anehnya, printer tidak terdeteksi.

Setelah cek lebih jauh ke website ini:

http://hplipopensource.com/hplip-web/supported_devices/index.html

Untuk HP Deskjet f2235 al in one dibutuhkan hplip minimal versi 2.8.6. Sedangkan yang terinstall di Ubuntu Linux 8.04 LTS Edition adalah:

hplip 2.8.2

Jadi jelas. Ubuntu 8.04 LTS yang kita pake hplip-nya versi lebih lama. Sedangkan untuk ngenalin printer model ini dibutuhkan hplip versi lebih baru.

Untungnya ini Ubuntu. Jadi lebih mudah updatenya. Website itu udah sediain cara upgrade hplip-nya ke versi yang lebih baru. Ikutin aja cara ini:

http://hplipopensource.com/hplip-web/install/install/index.htm

Sekarang hplip-gui udah bisa tersambung dengan baek. Printer bisa digunakan. Dan fasilitas scanner juga bisa.




03 Mei 2009

Roundcube dengan share domain

Sebenernya masih ada satu server lagi yang bakal kita ganti. Yaitu mail server. Masih pake Redhat 7.3. Betul sekali! Redhat 7.3 yang kuno abis :-D Wah gemana lagi. Karena udah Linux dan udah gue tambahin beberapa fasilitas antivirus, antispam, greylisting, filtering dan banyak lagi lainnya ternyata berjalan baek, akhirnya dimasukkan prioritas rendah untuk upgrade. Rencananya setelah Netware di shutdown, mail server akan diganti dengan Ubuntu Server 8.04 LTS Edition yang tentunya lebih modern.

Gue dulu terbiasa pake Redhat lalu Fedora. Jadi tentunya Sendmail adalah makanan gue sehari-hari. Tapi situasi berubah. Sejak pake Ubuntu Server, menunya udah pake postfix. Mau nggak mau yah harus belajar lagi. Dan udah sejak awal minggu ini Ubuntu Server udah running dan udah gue pake untuk kirim email saja. Rencananya minggu depan MIS juga bakal ikutan nyoba juga. Bisa dikatakan tahap beta deh.

Suprise juga. Ternyata postfix gampang banget configurenya :-D Ini hasil setelah 2 minggu belajar. Dan yang lebih suprice lagi, banyak sekali features yang tidak bisa dilakukan Sendmail (alias harus pake milter), ternyata semuanya bisa dilakukan postfix tanpa tambahan software. Dan juga dengan cara yang sangat simple.

Mail server ini harus menghandle multi domain. Karena emang ada 5 company di sini. Dan karena mereka sejak pake Sendmail menggunakan share domain, postfixnya juga kita arahin share domain saja. Kalo pengen tau share domain, ini contohnya:
  • user20@domain1.com
  • user20@domain1.co.th
Keduanya akan masuk ke mailbox user20. Juga disini user kadang pindah company. Jadi biar nggak ribet, cara ini lebih simple.

Kalo bertahun-tahun mereka pake Squirrelmail untuk webmailnya, sekarang giliran Roundcube akan gantikan posisinya. Roundcube lebih modern dan lebih mudah. Jadi disini gue akan bahas gemana gunakan Roundcube dengan multi domain (share domain).

Disini ada 5 company. Dan tiap company bisa saja ada 1-2 domain (contoh domain di atas tadi). Karena mail servernya cuman satu, tiap-tiap company dikasih hostname yang beda. Misal untuk domain "company1.com" mail servernya "mail.company1.com". Demikian juga untuk company yang laen.

Roundcube secara default cuman munculin pertanyaan "username" dan "password". Dan kita akan tambahain dengan pilihan domain. Cuman untuk lebih memudahkan user, pilihan domainnya harus otomatis. Bisa dengan deteksi hostnamenya. Kalo user menuju "mail.company1.com" maka default domain adalah "company1.com".

Tambahkan ini di atas baris "$rcmail_config = array();" pada file /etc/roundcube/main.inc.php

//deteksi hostname
$server_url = $_SERVER['SERVER_NAME'];

//deteksi domain name (defaultnya company1.com)
$arrayURL = explode('.',$server_url);
if (count($arrayURL)==4){
        $domain_url = $arrayURL[1].'.'.$arrayURL[2].'.'.$arrayURL[3];
} else {
        $domain_url="company1.com";
};

//bentuk array untuk pilihan domain
$host_url = array(
        $server_url       => $domain_url,
        'mail.company1.com' => 'company1.com',
        'mail.company2.com' => 'company2.com',
        'mail.company3.com' => 'company3.com',
        'mail.company4.com' => 'company4.com',
        'mail.company5.com' => 'company5.com'
);

Lalu bagian bawahnya sesuaikan ke 2 variabel ini:

$rcmail_config['default_host'] = $host_url;
$rcmail_config['mail_domain'] = $domain_url;

It' done. Sekarang Roundcube akan muncul pilah "username", 'password" dan "server". Di mana servernya ini akan melakukan deteksi domain yang digunakan user. Hmm ... opensource paling gampang kan kalo di modif.

Well done :-D


02 Mei 2009

Progress migrasi sejauh ini

Salah satu server disini adalah Netware 5.1. Yang pelan-pelan kita migrate ke Ubuntu Server 8.04 LTS Edition dengan Samba/NFS. Samba untuk melayani client Windows XP dan NFS untuk melayani client Ubuntu Linux 8.04 LTS Edition. Dan hasilnya sudah 98% client pindah ke server baru. Itu sekitar 250 PC deh. Dan sisanya sekitar 15 PC akan selesai dalam 2 minggu ke depan.

Kalo loe baca blog sini sejak awal, sudah gue bahas semuanya. Gemana mounting netware. Struktur Samba dan NFS jika dibandingkan Netware. Proses penyalinan data dari Netware ke Linux. Sampe gemana MIS sini melakukan migrasi client dari tiap department ke server Linux terbaru.

Wuih... Seneng juga rasanya. Dalam 2 minggu ke depan bisa kurangi 1 server unlicensed lagi. Dan itu adalah server Netware yang udah dipake sekitar 10 taun lalu. Akhirnya bisa kita hapuskan dari company sini :-D

Di sini totalnya ada 5 company. Cuman 3 company saja yang menggunakan server Netware ini. Jadi kalo 2 minggu lagi Netware bisa kita shutdown, itu artinya 3 company pertama udah kelar migrasinya. Well done!

Sisa 2 company nggak terlalu rumit. Company ke 4 udah pake Windows 2003 server license (OEM). Sayangnya nggak pernah mikirin CAL license. Jadi kita bakal ganti juga pake Samba/NFS di server Ubuntu Linux. Dengan sekitar 50 client. Yah udah masuk plan kita sejak awal. Dan udah disetujuin sama management.

Company ke 5 yang lokasinya jauh di kota laen, nggak pake server. Nggak terlalu banyak usernya sih. Kita bakal migrasikan juga. Karena sejauh ini mereka selalu merasa terpisah. Kalo sebelumnya penggunaan email dan instant messaging (pidgin) dengan ejabberd server udah nyambungkan mereka dengan mudah ke head office. Selanjutnya OpenVPN akan menyambungkan network mereka ke head office. Jadi mereka akan lebih merasa dekat lagi ke semua user sini.

01 Mei 2009

Mengamankan Windows gunakan cara account Linux

Ada kejadian lucu di company gue. Dan ini sudah ke 3 kalinya dalam 2 bulan terakhir. Sebuah notebook yang sama selalu balek ke MIS gara-gara virus. Dan ini ke 3 kalinya balek ke MIS juga gara-gara virus dan tetep nggak bisa booting. Aneh ....? Ya tentu saja aneh. Karena notebook itu milik bekas MIS manager sini. :-D

Bisa dibayangkan nggak sih? Kalo level manager aja masih seperti itu. Gemana juga usernya? Betul sekalee. Bahkan beberapa MIS gue liat suka ngeformat notebook Windowsnya. Juga programmernya sama aja. Baru gue sindir, beberapa minggu berikutnya balek lagi notebooknya dengan kisah yang sama. Virus virus and virus. Bener-bener buat gue .... eh. Gemana ngomongnya yah. Membosankan !!!

Linux mereka aman-aman saja. Tapi desktop/notebook mereka yang dirumah masih pake Windows. Yah wajar aja sih. Namanya milik pribadi. Tapi ini keterlaluan. Bekas manager MIS dan MIS staff nya sama saja. Bener-bener nggak bisa mengatasi keamanan Windows dengan baek. Bener-bener nggak nguasain keamanan kerjaannya. Aneh bin ajaib yah? :-D

Emang! Itulah kenapa semua client Windows disini harus direvise securitynya. Semua join ke Linux server, gunakan user level account. Tidak boleh administrator level account lagi. Tapi ente perlu tau juga. Untuk notebook pribadi, gue nggak ada hak untuk maksa harus seperti ini. Padahal notebook pribadi banyak banget disini. Dan anehnya, mereka selalu saja lakuin cara pamungkas bersihin virus dengan cara format. Sebaliknya, semua client Ubuntu Linux, belum pernah sekalipun di format :-D

Client Ubuntu Linux

Security di client adalah pertimbangan yang bagus. Itulah kenapa semua client nggak boleh pake account level administrator/root. Baek client Ubuntu Linux maupun client Windows XP. Semuanya harus gunakan level user.

Jadi karena kita pake Ubuntu, pertama kali install kita bikin account "sysadmin". Umumnya account ini akan punya hak selevel administrator/root dengan gunakan sudo. Dan ini hanya dipake untuk MIS untuk configure saja. Karena dengan tersambung ke LDAP server, semua user punya account masing-masing tapi hanya selevel "user" saja. Account user tidak bisa melakukan sudo. Karena sudo sudah kita proteksi hanya boleh account "sysadmin".

Jadi jelasnya ada 2 jenis account di setiap computer:
  • sysadmin
    Dengan sudo bisa jadi root/administrator
  • user
    Tidak bisa jadi root/administrator. Murni cuman untuk pemakaian komputer
Kelebihan linux, semua configurasi ada di $HOME foldernya masing-masing. Jadi user bener-bener tidak perlu melakukan apapun. Murni bener-bener hanya menggunakan komputer. Enaknya semua software di Linux mengikuti aturan ini. Global configurasi di folder /etc dan personal configurasi di folder $HOME. Sweet kan? ;-)

Gemana configure Windows XP

Ok. Kita akan pake cara itu. Mungkin untuk Vista nggak terlalu perlu lagi. Karena vista akan UAC features yang sama seperti PolicyKit di Linux. Tapi Windows XP laen. Umumnya Windows XP akan diinstall dan account pertama yang dicreate akan diberi level administrator. Ini yang akan jadi masalah.

Sebenernya account "administrator" ada di system. Tapi disembunyikan. Mungkin gampangnya buat account "sysadmin" aja di Windows XP. Beri aja level administrator. Setelah itu buat account baru, yaitu "user" tapi levelnya hanya user saja.

Inget, kalo perlu install, ya harus logout dan login sebagai "sysadmin". Lakukan installasinya di sysadmin. Sedangkan untuk kerja sehari-hari, ya pake account "user" saja. Dengan cara ini virus, spyware dan juga trojan akan jauh berkurang.

Gue emang nggak bisa jamin 100%. Karena emang security Windows jauh lebih lemah daripada Linux. Tapi paling nggak, dengan gunakan account "user", semua attachment bervirus nggak bisa langsung jalan. Spyware yang terdownload di browser, nggak bisa langsung menginstall. Kenapa? Karena account "user" emang nggak bisa apa-apa kan? ;-)

Sayangnya, software-software di Windows banyak sekali yang nggak mendukung sistem multi user. Bebebrapa software di install, tapi waktu kita login pake user laennya, software itu ngga muncul. Atau bahkan muncul tapi nggak mau jalan. Ini terutama software-software kuno yang ada di Windows 2000 atau Windows versi sebelumnya lagi. Hey, bukan cuman software pihak laen. Bahkan software M$ pun bisa alamin hal begini. Aneh kan? Itulah M$ :-p

Mungkin ini terlihat aneh untuk pemakai Windows. Tapi kenyataannya cara ini justru paling normal di pake di Linux. Karena dengan cara ini, Linux terbukti lebih aman.

Ok, pren :-D


16 April 2009

Tools yang dipake programmer sini

Genap enam bulan nih programmer sini pake Linux. Kalo sebelumnya pake Delphi bajakan, sekarang semuanya gunakan solusi webbase. Dan hasilnya bisa diakses client Linux maupun client Windows. Terus terang ada satu hal yang menyenangkan gue. Terutama setelah mreka bisa bilang: di Linux lebih banyak tools nya. Jadi lebih banyak pilihan. Sehingga bisa kelar lebih cepet akhirnya :-D

Wuih ... ada 2 kemungkinan yang bakal terjadi waktu itu. Perpindahan dari M$ base ke opensource base biasa banyak kendala. Pengalaman dulu, salah satu factory di Jakarta tempat gue kerja. Gara-gara mengambil keputusan untuk pake Linux, beberapa programmer handal VB nya cabut. Alasannya simple katanya. Kalo nggak pake VB, mending cari company laen yg mau. Masih banyak. Loh .... ???

Kalo inget waktu itu, gue sempet kaget dan heran. Yang ngasih gaji kita itu yg sharusnya jadi perhatiian. Bukan Bill Gates !!! Kalo company mau pake solusi laen, itu artinya sebagai IT/Programmer ya tentu saja kita harus pelajarin hal itu. Emangnya Bill Gates yang nggaji kita??? Sejak saat itu, kalo cari IT/Programmer gue nggak pernah terlalu fokus cariin yang canggih punya. Yang penting ada kemauan mau belajarnya. Itu lebih penting dan bagus utk ke depannya.

Untungnya di Thai sekarang programmernya laen. Walo dulu mereka suka pake Delphi, tapi beberapa solusi laen mereka kerjakan webbase dengan PHP juga. Tapi PHP versi kuno lah. Pure PHP saja. Sekarang mereka gunakan framework. Dengan support AJAX yang bisa mempermudah.

Awalnya mereka ragu. Itu wajar. Tau Linux sekedar telnet, add user di mail server. Semua server Windows base. Semua solusi selalu Windows base. Tapi sekarang situasinya terbalik. Hampir semua server pake Linux. Cuma 2 server lama tetep pake Windows karena ada licensenya Oracle dan MSSQL. Itupun juga nunggu waktu aja. Soalnya juga udah kuno banget keduanya. I have another plan for this :-D

PC Mereka

Semua komputer di MIS pake Ubuntu Linux 8.0.4 LTS Edition. Dengan software yang seperti biasalah di semua client.
  • Firefox 3.0
  • Sun-Java6 Plugins
  • Adobe Flash Plugins
  • OpenOffice.org 3.0
Khusus untuk programmer, gue kasih solusi tambahan IE6 dan IE7 dari IEs4Linux. Ini penting kalo membuat software webbase. Karena mereka perlu coba di Firefox dan IE skaligus.

Ada pengalaman lucu sebelumnya. Program pertama yang mereka bikin udah kelar. Simple lah. Mereka coba di Linux OK. Waktu di launching dengan pedenya, mereka udah seneng banget. Ternyata ada banyak user complaint. Pake IE nggak bisa beberapa hal. Sedangkan pake Firefox pada bisa semua :-D

Dari situ gue selalu tekanin, pake budaya di Linux. Abis bikin, test dulu di Firefox and IE. Kalo udah merasa beres, masih ada tahap lanjutan. Test ke beberapa user (baek pengguna Windows/IE maupun Firefox). Kasih waktu 1-2 minggu. Lalu revise kalo ada yang perlu di sempurnakan. Baru di publish ke semua user.

SQL Tools

Kita ada 3 server SQL. MySQL server yang sekarang mereka gunakan. Sedangkan 2 SQL server laen adalah MSSQL dan Oracle. Walau jarang diakses, kadang mereka perlu konek juga utk mengaksesnya.

Pengenalan pertama adalah phpMyAdmin (include repo). Penggunaan phpMyAdmin yang mereka sukai. Solusi webbase ini luwes. Terutama kalo remote dari client laen. Juga di komputer mereka, mereka pilih emma (include repo). Mungil dan simple katanya. Pernah gue kenalin juga mysql CLI interface. Tapi sampe detik ini mereka kurang sukain yg text base.

Kendala muncul saat di Linux mereka pengen akses MSSQL dan Oracle. Solusi SQuirrel-SQL akhirnya gue kenalkan. SQuirrel-SQL connect ke SQL server gunakan JDBC/Java. Jadi semua SQL server bisa mereka akses dengan baek.

Walo begitu, OpenOffice.org tetep pilihan bagus juga. Terutama kemampuan DataPilotnya untuk memproses data. Dan itu langsung tersambung ke MySQL, MSSQL dan Oracle. Well ... dengn JDBC, OpenOffice.org bisa konek ke semua server SQL dengan baek.

Editor

Beberapa PHP editor yang gue kenalkan kandas semua. Karena mereka pilih Aptana Studio. OK lah. No problem buat gue. Aptana juga base on Eclipse. Dengan beberapa tambahan sehingga mereka lebih menyukainya.

Kadang Gnome Editor (gedit) juga mereka gunakan. Luwes dan simple nih. Asal jangan lupa install "gedit-pugins".

Framework

Mulai dari PHP, Ruby on Rails, TurboGears, Python, Java, Free Pascal + Lazarus, GTK, Qt, WxWidget, dll. Akhirnya mereka pilih PHP. Dengan beberapa framework, merekapun pilih CodeIgniter. Keren juga. Dalam 6 bulan ini, banyak juga software for Windows udah di convert ke webbbase. Makanya client Linux bisa bekerja dengan aman-aman saja.

Kedepannya, kemungkinan besar mereka akan butuh GUI (bukan webbase). Dan Free Pascall + Lazarus adalah pilihan yang bagus untuk mereka. Kalo terbiasa Delphi, sharusnya itu akan jadi mudah. Tinggal penyesuaian sajalah.



13 April 2009

Brother MFC-5890CN on Linux

Ada permintaan printer dan scanner untuk divisi baru. Mereka minta yang udah jadi satu. Jadinya bisa copy/scan/printer sekalian. Awalnya gue kepikiran HP. Tapi sewaktu mereka merevise minta support ukuran kertas A3, wah... lumayan juga harganya merk HP.

Dari pengalaman kita, merk HP dan Brother sangat bagus dukungan untuk Linux. Kedua brand ini punya suuport site khusus Linux yang bener-bener keren. Untuk Epson/Canon, sorry yah. Gue nggak rekomendasikan. Jadi tentu saja gue minta ke MIS untuk bandingkan harga printer multi fungsi baek HP maupun Brother yang tentunya support A3. Wah... Brother bener-bener murah. Hampir separo harga merk HP. Kepilih deh Brother MFC-5890CN untuk di beli :-)

Yang pengen tau, ini spek Brother MFC-5890CN. Tenyata ada dukungan fax juga selain copy/scan/print. Tapi karena fax kita gak pake, jadi di sini dibahas setting Linux untuk fungsi printer dan scannernya saja.

Fungsi Printer

Setelah baca speknya, printer ini mendukung emulasi GDI. Jadi paling simple ya tentu saja coba driver Generic - GDI dari CUPS. Sayangnya hasilnya cetakan print testnya kagak pernah keluar. Gak tau tuh. Mana yang nggak beres. GDI support di printernya? Atau GDI driver CUPS?

Selanjutnya harus coba driver dari support sitenya Brother (link). Dari sini kita dapatkan 2 files .deb yaitu:

mfc5890cnlpr-1.1.2-2.i386.deb

mfc5890cncupswrapper-1.1.2-2.i386.deb

Tapi sebelum menginstallnya, dianjurkan (khusus Ubuntu/Debian) lakukan dulu perintah-perintah berikut:

sudo -i
aa-complain cupsd
mkdir /usr/share/cups/model
ln -s /etc/init.d/cupsys /etc/init.d/lpd
mkdir /var/spool/lpd
dpkg -i mfc5890cnlpr-1.1.2-2.i386.deb
dpkg -i mfc5890cncupswrapper-1.1.2-2.i386.deb


Selanjutnya add printer seperti biasa di CUPS. Dan dibagian driver Brother udah ada MFC-5890CN. Sekali test print, langsung OK.

Oya, itu hanya kita setting di CUPS server saja. Karena langsung kita share. Dan semua client Ubuntu Linux bisa langsung menikmati tanpa perlu di setting apa-apa lagi :-D Bandingin dengan client Windows, satu persatu CD installer for Windows harus di install. Lama lagi prosesnya.

Fungsi scanner

Untuk fungsi scannernya, caranya nggak beda dengan Brother MFC-8460N yang udah pernah gue bahas sebelumnya. Bedanya hanya drivernya. Printer ini gunakan "brscan3" sedangkan artikel sebelumnya pake "brscan2". Tapi cara settingnya 100% sama.

Nih artikel gue tentang fungsi scanner di Brother MFC-8640N:
http://rippingthepenguin.blogspot.com/2008/12/fungsi-scanner-di-brother-mfc-8460n.html

Dan juga kalo pengen gunakan multipage scan di Brother MFC-8640N:
http://rippingthepenguin.blogspot.com/2009/04/fungsi-scanner-di-brother-mfc-8460n-2.html

Goodluck pren


05 April 2009

Fungsi Scanner di Brother MFC-8460N (2)

Sebelumnya gue udah bahas tentang fungsi scanner di Brother MFC-8460N di blog ini (link). Karena salah satu MIS selalu komplain hasil scan cuman satu halaman saja, terpaksa gue cek lebih jauh lagi. Dan nemu deh problemnya. Well ... Linux harus dikasih solusi deh. Gue nggak mau kalo mereka merasa client Linux nggak bisa. Padahal client Windows bisa.

Cara scan di device ini bisa dari 2 tempat:
  1. FlatBed

    Seperti mesin photocopy tradisional. Buka cover, taruh kertas, scan. Buka cover lagi, ganti kertas lagi, scan lagi. Dan seterusnya. Hasilnya 1 file (1 image saja). Cara yang nggak praktis untuk scan banyak dokumen.

  2. Automatic Document Feedeer

    Letaknya di paling atas. Tinggal masukkan setumpuk kertas dan mulai scan. Hasilnya akan disimpan ke dalam 1 file (tapi multi image). Bener-bener praktis untuk scan banyak dokumen.

Di Windows ke duanya berfungsi dengan baek. Tapi di Linux agak laen. Ternyata script dari Brother (dalam paket brscan2) hanya mengijinkan menyimpan 1 file (1 image saja). Sehingga baek no.1 atau no.2 di atas, hasilnya hanya lembar pertamanya yang discan. Alias gambar pertama saja :-D

Coba perhatikan baris terakhir di file ini (cetak tebal):

$ tail /usr/local/Brother/sane/script/scantofile-0.2.1-1.sh

...
output_file=`mktemp ~/brscan/brscan.XXXXXX`
chmod 644 $output_file
echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file


Pada baris terakhir, penggunaan "scanimage" itu jadi penyebabnya. Command "scanimage" hanya menyimpan proses sekali scan saja. Makanya setiap scan 1 lembar, nggak ada problem. Tetapi scan lebih dari 1 lembar, hanya tersimpan lembar pertama saja.

Setelah cek kesana kemari, di Ubuntu Linux menyerta satu utility lagi selain scanimage. Yaitu "scanadf" yang ada dalam paket "sane". Dan scanadf bisa  menghandle scan lebih dari 1 lembar dengan baek. Tentu saja untuk beberapa jenis scanner. Dan rupanya Brother MFC-8460N didukung dengan baek.

Jadi untuk menggunakan scanadf di script itu, ten
yata bisa. Dan ini modifikasi gue untuk script /usr/local/Brother/sane/script/scantofile-0.2.1-1.sh versi Brother. Sehingga hasil scan bisa multiple image dan disimpan ke format TIFF.

Ini 3 baris terakhirnya setelah gue rubah (cetak tebal):

$ tail /usr/local/Brother/sane/script/scantofile-0.2.1-1.sh

...
output_file=`mktemp ~/brscan/brscan.XXXXXX`
chmod 644 $output_file
echo "scan from $2($device) to $output_file"
scanadf --device-name "$device" --resolution $resolution> $output_file
convert -adjoin `ls image-????` image-`date +%G%m%d%k%M`.tif
rm -f image-????


Karena perintah "scanadf" dan "convert" dipake di sini, jangan lupa install 2 paket ini:

sudo apt-get install sane imagemagick

Dan kalau menginginkan menyimpan hasil scan ke PDF, rubah saja baris ini (cuman extensionnya saja yang beda):

convert -adjoin `ls image-????` image-`date +%G%m%d%k%M`.pdf

Selama proses scan, sekarang semua file akan disimpan di $HOME folder. Ya tentu saja akan keliatan file image-xxxx (berformat PNM) lumayan banyak deh. Sebanyak lembar yang di scan. Setelah kelar, semua file image-xxxx akan di gabung ke format TIFF/PDF dengan perintah convert. Lalu semua file image-xxxx akan dihapus dari $HOME folder. Dan hasilnya file TIFF/PDF saja yang ready di $HOME folder.

Goodluck




24 Maret 2009

PHP dan printing ke continuous form

Divisi Material Warehouse sebelumnya pake Windows + OpenOffice.org dan juga dengan custom program bikinan programmer sini (dibuat pake Delphi bajakan). Karena programmer udah selesain versi webbasenya, ke 14 komputer diberi kesempatan nyoba selama satu minggu. Dan genap setelah lewat satu minggu, nggak ada komplain, langsung semua diganti ke Ubuntu Linux 8.04 LTS Edition.

Linux baru jalan 3 hari, manager divisi Material Warehous komplain. Tentunya dengan beberapa kendala yang dia temukan selama pake Linux. Tapi nyatanya kendala bukan pada Linuxnya. Linux + OpenOffice.org kan udah banyak di semua departemen. Dan manager itu tau tentang hal ini. Rupanya kendala menggunakan program baru webbasenya. Duh ...

Gue sempet komplain ke dia. Selama satu minggu tanpa ada kabar dari divisinya. Setelah pake Linux, baru ribut. Itu artinya divisi dia selama masih pake Windows, nggak coba program webbasenya. Dan jelas dari detail komplainnya, dia komplain program webbasenya nggak bisa cetak ke continuous form. Keluhan yang laen langsung diselesaiin programmernya dalam hari itu juga.

Hal laen, ini pengalaman baru juga buat gue. Webbase program dengan cetak ke continuous form. Kalo continuous from ukuran Letter/A4 sih tau lah. Gampang cing. Tapi kali ini bener-bener continuous form yang ukurannyanya nggak umum (custom paper). Sempet pusing cari solusinya. Sedangkan programmer, tentu saja gue harus bantu. Mereka baru tau Linux dan webbasenya. Kadang masih nggak pede aja. Tapi gue bersikeras, pasti ada solusinya. Pasti itu !!!

Susah emang nyari di Google. Nggak ketemu sama skali penggunaan custom paper di CUPS. Sebelumnya webbase udah generate report dalam format PDF dengan ukuran custom paper yang kita punya. Nyatanya cetak PDF file tersebut ke printer Epson LQ300+ selalu melaju sama aja seperti cetak ukuran Letter/A4. Sehingga pergantian halaman antar formnya jadi nggak tepat. Bener-bener kelihatan nggak prof deh :-(

Sempet puyeng juga seharian obok-obok banyak forum/milist tentang dot matrix printer dan Linux. Sepertinya susah. Bahkan sangat susah deh... dalam hal nemukan dokumentasi tentang ini di blog yang ada. Tapi nggak sengaja setelah baca-baca dokumentasi CUPS, perintah consolenya dan options-optionsnya. Well ... jadi inget tentang program MSDOS 15 tahun lalu. Gemana cara program kuno ikut handle percetakan continuous form. Akhirnya... ktemu juga. Ternyata mudah jadinya :-D

Printing ke dot matrix (continuous form)

Di Linux percetakan dokumen akan di handle CUPS service. Dokumen yang kita cetak, akan diproses CUPS, lalu dikirim ke printer. Umumnya berupa image. Hal ini nggak beda sama Windows OS juga kan.

Coba balik ke masa silam. Program MSDOS cetak ke dot matrix bukan mengirimkan image. Melainkan murni text files saja. Dan juga beberapa ESC code tambahan untuk berkomunikasi dengan printer. Dan ESC code ini sangat tergantung dengan merk/model printer dot matrix yang kita punya.

CUPS memiliki option "raw" printing. Itu artinya, program webbase yang kita bikin harus bisa menghasilkan text file yang akan di cetak. Lempar text file tersebut ke CUPS server. Dengan option raw printing, text file tersebut nggak akan di proses oleh CUPS, melainkan langsung dikirim ke dot matrik printer.

PHP dan CUPS

PHP for Windows dilengkapi fungsi printing. Sayangnya PHP for Linux secara official belum dukung CUPS. Untungnya ada class non official bisa nangani cetak ke CUPS printer. Coba cek lebih jauh ke phpprintipp. Udah dilengkapi paket DEB untuk Debian/Ubuntu.

Karena kita ada satu printer dot matrix di sharing untuk semua Linux, tentunya CUPS harus di share untuk semua. Sehingga semua client Linux bisa mengaksesnya. Dan phpprintipp bisa menggunakan printer tersebut dengan mudah. Cek link ini untuk tau cara shari printer di CUP (link).

Hasilnya

Sekarang webbase programnya udah kelar. Bahkan lebih profesional tuh. Dari webnya, tinggal klik tombol print, bisa langsung cetak ke continuous form. Nggak perlu pake PDF lagi. Dan programmer sini bisa senyum lagi :-D

Sapa bilang hanya pake Windows bisa kerja???


23 Maret 2009

Mengurangi Oracle bajakan

Minggu ini gue seneng banget. Dari 3 Oracle server, sekarang udah berkurang. Menjadi 1 Oracle server saja. Well... akhirnya 2 pirate Oracle server udah menghilang :-D

Pertama kali datang ke Thailand, udah 6 server gue sikat. Karena terlalu banyak server yang nggak perlu. Juga karena kebanyakan bajakan :-D Dan yang paling runyam adalah Oracle server ini. License cuman 1 saja. Tapi mereka pake 3 server. Itu udah terjadi selama 5 taon terakhir.

Dua bulan lalu udah kurang 1 Oracle server. Dan setelah liat performance CPU via MRTG, kinerjanya masing belon maksimal. Jadi masih bisa digabung aja. Cuman karena terlalu rumitnya software yang pernah dibikin programmer sebelumnya, sempet molor. Juga kesibukan laen yang membuat susah ngatur waktu.

Akhirnya setelah beberapa software ditulis ulang, dan bisa jalan di 1 Oracle server saja, mati juga tuh Oracle server ke 3. Lengkap udah ke 2 Oracle server bajakannya dimatiin. Tinggal 1 Oracle server yang kita punya dan license. Walo versi kuno, paling nggak tahap awal gue harus pelihara dulu.

Dua Windows server (ke 2 nya license) yang kita punya cuman Oracle + MSSQL. Keduanya adalah peninggalan jaman taon jebot dari manager MIS lama. Yah biasalah. Maen install tanpa pikir license. Jadi nggak usah heran kalo gue harus mereducenya sehingga fit dengan license yang kita punya. Oracle digunakan untuk custom program di pabrik yang dulu dibikin pake Delphi. Sedang MSSQL untuk Navision.

Mungkin dalam 2 taon ke depan (stelah proses migrasi Netware ke Linux udah kelar), gue akan kasih solusi laen. Tapi sementara ini, semua pengembangan software baru oleh programmer kita pake MySQL. Dan hampir semua applikasinya menggunakan webbase.