Seeing Good in All

Yes., It's me. You will find a glimpse angle of my life. I am just an ordinary person who wants to be an extraordinary person with all of the weakneses. I wanna be the change that I want to see in the world.

Monday, October 31, 2005

Rasulullah SAW dan Seorang Anak Pemakan Kurma


Pada suatu hari Rasulullah SAW mendapat tamu seorang ibu bersama seorang anak lelakinya. Anak tersebut masih kecil dan terlihat agak gemuk. Sang ibu berkata pada Rasulullah, “Wahai Rasulullah, aku mohon nasehatilah anakku ini agar tidak terlalu banyak makan kurma!” Rasulullah pun mengangguk dan berkata, “Baiklah. Sekarang ibu pulang dan kembalilah seminggu lagi.” Ibu itu agak heran, mengapa Rasulullah tidak segera mengeluarkan nasehat untuk anaknya. Tetapi dia taat dan segera pulang bersama anaknya.

Tepat seminggu kemudian, ibu itu datang kembali bersama anaknya. Dia segera menemui Rasulullah dan menagih nasehat dari Rasulullah. Dengan lembut Rasulullah berkata pada anak itu, “Wahai anak yang baik, kurangilah makan kurma!” Ibu itu tidak dapat menahan keheranannya, mengapa untuk sebuah kalimat sederhana dari Rasulullah mereka harus menunggu seminggu lamanya?

Dia pun menanyakannya pada Rasulullah, “Ya Rasulullah, mengapa untuk satu nasehat pendek ini tuan menyuruh kami menunggu satu minggu lamanya? Bukankah bisa saja tuan katakan nasehat ini seminggu yang lalu?” Rasulullah menjawab, “Benar, Ibu. Tetapi sebelum mengatakan nasehat tersebut, selama seminggu ini aku sendiri mengurangi jumlah kurma yang kumakan.” (Rasulullah biasa berbuka puasa dengan satu atau tiga biji kurma sehari. Selama seminggu itu Rasulullah mengurangi jatah berbuka hingga setengahnya). Suatu nasehat akan bertuah dan berkesan jika nasehat tersebut sebelumnya telah diamalkan oleh si pemberi nasehat.

Air Mata Pemadam Api Neraka


Assalamu ‘alaikum wr.wb.

Ya Tuhan, jadikan puisi ini memberikan kesadaran kepada saya khususnya dan semua orang yang membaca blog ini.

Air Mata Pemadam Api Neraka

Ya Allah ! Ya Tuhanku
Jadikanlah air mataku di waktu takut dengan-Mu
Pemadam api neraka-Mu
Jatuhnya air mataku menggugurkan segala dosa-dosaku

Tuhan !
Kalau bukan dengan rahmat-Mu
Aku tidak akan selamat
Setidak-tidaknya kalau bukan kemaafan-Mu
Aku tidak terlepas daripada azab

Aku lemah, bantulah aku
Nafsuku serakah
Bantulah aku bermujahadah selalu
Syaitan yang menipu dayaku
Lindungilah aku darinya
Jalan kesesatan terlalu banyak
Ada yang jelas
Ada yang samar-samar

Kalau bukan pimpinan-Mu
Aku tersesat jalan
Pimpinkanlah aku selalu
Agar aku selamat menuju-Mu

-Abuya Syeikh Imam Ashaari Muhammad Attamimi

Saturday, October 29, 2005

Perkembangan Linux Open Source @ SKTK

Tulisan ini aku tulis karena kecintaan kepada dunia IT (Information Technology) terutama Linux Open Source selama aku menjadi Asisten SKTK (Sistem Komputasi Teknik Kimia) ITB. Walaupun ilmu yang aku dapat dari dunia IT ini tidak ada hubungannya dengan ilmu yang aku cari di ITB (Institut Teknologi Bandung) yaitu Teknik Kimia alias Chemical Engineering. Sejauh ini sudah 3 jenis Distro linux yang aku gunakan dalam mengembangkan Server di Departemen Teknik Kimia ITB.

1. RedHat
Opensource ini adalah jenis distro pertama yang aku kenal saat magang menjadi Asisten SKTK. Distro ini pertama dikenalkan kepadaku oleh Mas Anton dan Mas CB pada tahun 2002 (Thanks to them). Saat itu semua server di Dept. TK ITB masih menggunakan RedHat sebagai OS (Operating System). Mulai dari Web Server, Mail Server, File Server dan Router. Waktu itu aku mulai belajar mengenal satu persatu tentang Linux dan meng-compile beberapa program untuk dijadikan server. Mulai dari meng-compile binnary file sampai kepada RPM.

2. Fedora Core
Di saat RedHat beralih menjadi RedHat Enterprise Edition dimana tidak menjadi OpenSource OS pada akhir tahun 2003 maka saat itu kita beralih kepada Fedora Core. OpenSource ini masih memakai platform yang sama dengan RedHat. Dengan beberapa fitur terbarunya dan program yang lebih lengkap lagi. Maka beberapa server lama yang perlu di update di ubah ke OS ini. Sayangnya perkembangan Fedora untuk kestabilan menjadi server kurang baik. Hal ini dikarenakan update untuk beberapa security hole sepertinya agak lama sehingga kita berusaha mencari alternatif lainnya.

3. Mandriva, (Mandrake Connectiva ).
Ini adalah OS yang terakhir digunakan saat ini di SKTK. Beberapa server telah di update menggunakan Mandrake 10.1 dan 10.2. Sejauh ini kestabilan untuk Mandrake saya nilai sangat baik, terutama untuk celah keamanan dari server.

Sekian dulu cerita saya tentang perkembangan Linux di tempat saya mendalami dunia IT yang sangat saya cintai ini.

~alfajri~

Sunday, October 23, 2005

Luruskanlah Hatiku

Ya Allah
Dengan berkat NabiMu dan berkat guruku
Luruskanlah hatiku agar agamaku lurus
Betulkanlah hatiku agar aku ikhlas selalu
Tetapkanlah hatiku agar aku tak tergugat dengan ujian yang menimpa

Ya Allah
Tuhan yang mencipta hati
Bersihkanlah hatiku agar mazmumahku tidak merusakkan agamaku
Dan juga tidak merusakkan kehidupan orang lain

Wahai Tuhan yang membolak-balikkan hati
Kuatkanlah hatiku agar keyakinanku tak berubah
Supaya aku senantiasa tabah

Tuhan
Engkau rasakanlah hatiku senantiasa bersamaMu
Supaya aku rasa ada kawan melindungiku
Agar aku tak rasa sepi di dalam hidupku

Aku merasa malu melanggar perintah
Dan aku senantiasa siap siaga menunaikan suruhanMu

Ya Allah
Tuhan yang menjaga hati
Baikilah hatiku agar seluruh hidupku menjadi baik
Supaya tidak khianat dan tidak hasad dan tidak mendendam sesama manusia

Tuhan limpahkanlah kedalam hatiku
Ilmu dan hikmah
Hingga aku dapat menyuluh hati dan menyuluh kehidupanku
Supaya lahir batinku bersyariat
Agar lahir batinku menjadi taat

Tuhan, aku harap engkau kabulkanlah doaku ini

- Abuya Syeikh Imam Ashaari Muhammad Attamimi

Monday, October 17, 2005

Ramadhan Bulan Overhaul Hati

Allah Taala menjadikan manusia dijadikan sekali
di mana kekuatannya dan kelemahannya
Tuhan tahu bagaimana menguatkan yang lemah
dan bagaimana menyuburkan yang kuat
Allah Taala tahu di mana kebaikan mereka,
dan di mana kejahatan mereka

Memang Tuhan ada bekalkan manusia ada benih baik ada benih jahat
Tuhan tahu dari punca apa dia baik dan dari punca apa dia jahat
Hatilah wadahnya yang boleh menerima kebaikan dan kejahatan
Di dalam masa setahun manusia terdedah dengan
berbagai-bagai ajaran dan cabaran
Cabaran itu seperti tekanan hidup, sibuk dengan kerja,
berhadapan dengan kerenah manusia
Berlaku juga ujian-ujian yang mendadak,
kemalangan yang tidak disangka,
melihat, mendengar perkara yang merosakkan
Ditambah lagi hasil didikan, bacaan semuanya ini
memberi kesan yang negatif kepada jiwa kebanyakan orang

Kecuali orang yang kuat dengan Tuhan
jiwanya tidak rosak dan tidak memberi kesan
Cabaran-cabaran itu tidak merosakkan jiwa mereka,
bahkan bertambah kuat dengan Tuhan

Dengan rahmat Tuhan dan kasih sayang-Nya
Tuhan perintahkan puasa Ramadhan dan lain-lain ibadah tambahan
Ramadhan boleh membaik pulih kejahatan
Kerosakan manusia setahun hanya sebulan
Seolah-olah Ramadhan bulan overhaul hati insan
Seperti kereta yang sudah lama dipakai,
banyak kerosakan telah berlaku terutama enjin, perlu overhaul
Overhaullah caranya membaikpulihkan kereta
yang perjalanannya sudah tidak berapa betul

Manusia yang sudah rosak jiwanya, fikirannya,
sikap dan tingkah lakunya dipulihkan melalui didikan Ramadhan
Didikan Ramadhan merupakan satu pakej pendidikan
di antara satu sama lain kuat-menguatkan

Siangnya puasa, sembahyang ditambah lagi dengan Tarawikh,
disusul dengan membaca Al Quran
Ditambah lagi dengan perkara-perkara sampingan,
zikir, tasbih, tahmid, salawat, tafakur
digalakkan bersedekah dan pemurah,
perbualan yang menambah kesedaran

Keseluruhan itu asasnya adalah mujahadah melawan nafsu
menentukan didikan Ramadhan berkesan atau tidak bekesan
Didikan Ramadhan ada mujahadah, ada didikan puasa, didikan sembahyang
Ditambah lagi didikan Al Quran dan lain-lain lagi tambahannya

Mujahadah ertinya memerlukan kekuatan jiwa,
memaksa membuat yang disuruh,
memaksa meninggalkan larangan
Larangan itu sama ada yang lahir mahupun yang batin kenalah tinggalkan
Mujahadah ertinya memaksa, terseksa,
membencikan, menjemukan, meletihkan
Kalau jiwa tidak kuat usaha tidak dapat diteruskan,
atau buat tanpa kesungguhan

Kerana itulah mujahadah perlu pemangkin yang menggalakkan,
Pemangkin ialah puasa yang hati dan fikirannya puasa,
sembahyang yang dapat dihayati,
didikan Al Quran yang difaham dan dijiwai

Di antara didikan sembahyang, menebalkan rasa kehambaan
dan menajamkan rasa bertuhan
Di antara didikan Al Quran di sana ada khabar gembira,
ada amaran, ada suri teladan juga ada kesedaran dan keinsafan

Didikan puasa rasa lemah, rasa hamba,
rasa timbang rasa, menyedarkan dan menginsafkan

Daripada 3 pakej didikan yang utama itulah
menjadikan pemangkin menguatkan jiwa, menyuburkan jiwa, meneguhkan keyakinan
Apabila jiwa kuat, jiwa subur, mujahadah pun kuat
Apabila jiwa kuat dan subur hikmah Ramadhan
daripada 3 pakej didikan tadi boleh bangunkan insan

Jika hikmah Ramadhan itu dapat dimiliki lahirlah manusia luarbiasa
Ertinya manusia yang dioverhaul di bulan Ramadhan
mengembalikan manusia kepada fitrah sucinya
Lahirlah manusia yang luar biasa,
iaitu manusia yang benar-benar rasa kehambaan
Manusia yang tawadhuk, sabar, redha, berkasih sayang,
bertimbang rasa, pemurah, kerjasama
Malu akan jadi pakaian, tawakal menjadi perasaan, keyakinan kental
Apabila sifat ini dapat dimiliki, automatik mazmumah terbasmi
Sombong, tamak, bakhil, pemarah, hasad,
dendam, gila puji, gila nama, mati

Inilah dia orang yang menang dan berjaya didikan Ramadhan
Selepas Ramadhan manusia itu kembali suci seperti fitrahnya yang semulajadi
Orang ini sahajalah yang layak berhari raya
Kerana berjaya mengembalikan kesucian fitrahnya,
hari raya namanya

Hari raya ertinya mengembalikan fitrah suci lagi murni
Kalau fitrah yang suci murni ini kekal sepanjang tahun,
Ramadhan yang akan datang
hanya memberi cahaya lagi, bukan overhaul
Begitulah didikan Ramadhan ramai orang yang gagal,
sedikit sangat yang berjaya

Karya : Abuya Syeikh Imam Ashaari Muhammad Attamimi

Sunday, October 16, 2005

Building an Anti-Virus/Anti-Spam Gateway (Part 2)

Configuring Postfix To Use Amavisd-new

Last week, we looked at how to set up SpamAssassin with Postfix, as part of a lean, mean, spam-killing gateway machine. This week we'll add an anti-virus scanner to our bubbling brew.

Prerequisites: a nice Postfix server already running and working smoothly. Then add Amavisd-new and ClamAV, and you're in business.

You need Amavisd-new, because Postfix does not directly support anti-virus scanners. Amavisd-new acts as a SMTP proxy: Postfix hands incoming mail to Amavisd-new. Amavisd-new then stuffs it through ClamAV, then hands off whatever messages remain after processing to Postfix for final delivery. Amavisd-new supports several AV scanners, you don't have to use ClamAV. I just like the name. Plus it's GPL (define) , and it works very well.

Set up Postfix and Amavisd-new by following the directions in last week's article under Configuring Postfix To Use Amavisd-new.

Installing ClamAV and Configuring Amavisd-new

No big deal here, get sources or binary packages from Clam AntiVirus, or grab packages from wherever you usually get packages for your Linux distribution.

Edit /etc/amavis/amavisd.conf. In Section 1, set $mydomain and $myhostname to your own values. Then, uncomment:

$forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail
$notify_method = $forward_method; # where to submit notifications

That tells Amavisd-new to pass on any messages that survive virus-scanning to Postfix for final delivery.

Next, we're going to disable virus quarantines, and reject virus-infested messages without notification. There is absolutely no point in sending auto-replies to senders of infected messages, because -- are you listening? Do I have your full attention? The return addresses are forged. Don't send replies to forged addresses. All bounced virus notifications do is clog the Internet with useless traffic. Geeks who receive your bounce messages will be annoyed and know you are lame. Regular folks will be puzzled or alarmed, and may pester you for help. Lose-lose-lose all the way.

To configure this, move down to Section IV. Here we shall disable quarantining virus-infested messages:

$QUARANTINEDIR = undef;
$virus_quarantine_to = undef;
$final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE)

D_DISCARD drops the sucker cold, with no notification to the sender of any kind. Boom, dead.

Find Section VII and uncomment the Clam AV section, and comment out all the virus scanners you are not using. Make sure all ClamAV lines are uncommented:

### http://www.clamav.net/
['Clam Antivirus-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

Now make sure Amavisd-new is stopped, and check the configuration with the built-in debugger:

# /etc/init.d/amavis stop
# amavis debug

This spits out a configuration summary and checks syntax. If there are any error messages, correct the errors before proceeding.

Next, start it back up and connect with telnet to confirm that Amavisd-new is running:

# /etc/init.d/amavis start
$ telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready

Amvisd-new is running, so quit telnet:

^]
telnet> quit
Connection closed.
Continuing the Configuration

Now open /etc/clamav/clamav.conf and /etc/amavis/amavisd.conf, and make sure lamav.conf:

## /etc/clamav/clamav.conf
LocalSocket /var/run/clamav/clamd.ctl

##/etc/amavis/amavisd.conf
### http://www.clamav.net/
['Clam Antivirus-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
....

Now you must change the ownership of all directories that ClamAV uses to the "amavis" user. It won't work otherwise. If an amavis user and group were not created by the installer, create them now. In most installations, ClamAV creates these directories:

LogFile /var/log/clamav/clamav.log
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory /var/lib/clamav/

Change ownership like this:

# chown -R amavis:amavis /var/log/clamav/

Be careful! Only change directories that belong only to ClamAV, don't do this with any shared directories. Now open /etc/clamav/freshclam.conf, and do the same with any other directories you find listed there.

Next, locate any files belonging to ClamAV in /etc/logrotate.d/:

/etc/logrotate.d/clamav-daemon
/etc/logrotate.d/clamav-freshclam

The filenames may vary a bit, depending on your Linux distribution. Inside the files, find this line:

create 640 clamav adm

change it to

create 640 clamav amavis

Save your changes, and restart both clamd and freshclam. On Debian:

# /etc/init.d/clamav-daemon reload
# /etc/init.d/clamav-freshclam reload

On Red Hat/Fedora:

# /etc/init.d/clamd reload
# /etc/init.d/freshclam reload

And you're done. Now you can start sending test messages and watching your logs.

You'll save yourself a lot of work if you install from packages, rather than sources. If you must install from sources, read all the documentation. You'll have to manually create all kinds of users and directories and init scripts.

The two ClamAV components of greatest interest are clamd, the scanning daemon, and freshclam, which automatically fetches virus definition updates. These are configured in /etc/clamav/clamav.conf, and /etc/clamav/freshclam.conf. The defaults should be fine, there really isn't much to tweak. Except you should find a different update mirror for freshclam.conf, at http://www.clamav.net/mirrors.html. Be kind -- don't use the default mirror.

Thursday, October 06, 2005

Building an Anti-Virus/Anti-Spam Gateway (Part 1)

Building a Better Gateway

The bad news is, it's SpamAssassin, not SpammerAssassin. The good news is it kills spam quite effectively, and fits nicely into an anti-spam, anti-virus gateway. This article, which shows how to use SpamAssassin with Postfix, is the first in a series on building an anti-spam and anti-virus gateway. This gateway works equally well for a single PC, or for a large network, and it's built of four components:

  • Postfix
  • SpamAssassin
  • Amavisd-new
  • ClamAV

Prerequisite: An existing Postfix server, that is running well and happily. The other bits are add-ons to Postfix. They work just fine with other mail transfer agents (MTAs) (define) like qmail, Exim, and Sendmail, but this series will center around Postfix.

You should also save yourself a batch of spams for testing.

But I Don't Run Windows

That's all right, you will still benefit from this. You can probably omit Clam Anti-Virus, and just use SpamAssassin.

I Confess, I Run Windows

If you run any Windows hosts, then by gosh you absolutely need this, every bit of it. Before investing time and energy in building this anti-spam/anti-virus gateway, do take some elementary precautions:

Remove:

  • Outlook
  • Outlook Express
  • Internet Explorer

Replace them with any of the following fine free email clients and Web browsers:

  • Eudora Mail
  • Pegasus Mail
  • Mozilla/Netscape Mail
  • Opera Mail
  • Opera Web Browser
  • Mozilla/Netscape Web Browser

You have now closed off the major malware ports of entry, and can move on to the next steps.

Amavisd-new and SpamAssassin

Install Amavisd-new and SpamAssassin. Then all configuration will take place in /etc/amavis/amavisd.conf, you won't use SpamAssassin's configuration file at all.

Amavisd-new is a SMTP (define) proxy that will take over all the content filtering for Postfix. If you already have some unsolicited bulk email (UBE) controls in place in Postfix, Amavisd-new will supersede them. Amavisd-new mediates between SpamAssassin and Postfix. Postfix hands off incoming messages to Amavisd-new, which processes them via SpamAssassin, then hands over whatever remains to Postfix for delivery to users' inboxes. On a typical day, 90% of incoming mail may be rejected at the server. Isn't that special?

You also have the option of simply tagging spam as ***SPAM***, and delivering it to users to dispose of in their own fashion.

After installing Amavisd-new, there is much configuring to do. Create /var/log/amavis.log, and assign ownership to the "amavis" user and group, which should have been created by the package manager. If they weren't, create them now.

/etc/amavis/amavisd.conf is the master configuration file, and it is huge. Take the time to study it, as it is well-commented. Start in Section 1. Find $mydomain and $myhostname and give them values appropriate for your system. Then find and uncomment these lines:

$forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail

$notify_method = $forward_method; # where to submit notification

That tells Amavisd-new to forward messages back to Postfix for final delivery.

Now start the SpamAssassin configuration. SpamAssassin will be configured here, you will not use SpamAssassin's configuration file. In Section 1 comment out

@bypass_spam_checks_acl  = qw( . );

Section IV tells Amavisd-new what to do with messages marked as spam. This setting delivers them to the recipients, who can easily filter them to a junk mail folder, because the subject line will says ***SPAM***:

$final_spam_destiny = D_PASS; # (defaults to D_REJECT)

This setting drops them at the server, with no notice to the sender:

$final_spam_destiny = D_DISCARD; # (defaults to D_REJECT)

Pick one. A third option is to reject the spam, and also send a 5xx non-delivery message:

$final_spam_destiny = D_REJECT

This is the correct behavior for a MTA. But I don't see any point in wasting bandwidth on SMTP messages to fake addresses just to adhere to protocol.

Section VII configures SpamAssassin:

$sa_tag_level_deflt  = -999; # add spam info headers if at, or above that level

$sa_tag2_level_deflt = 5.0; # add 'spam detected' headers at that level

$sa_kill_level_deflt = -999; # triggers spam evasive actions

# string to prepend to Subject header field when message exceeds tag2 level

$sa_spam_subject_tag = '***SPAM*** ';

And finally, the "amavis" user must own SpamAssassin files:

# chown -R amavis:amavis /usr/share/spamassassin

Now make sure Amavisd-new is stopped, and check the configuration with the built-in debugger:

# /etc/init.d/amavis stop
# amavis debug

This spits out a configuration summary; all you need to worry about are error messages. If it reports any errors, they must be fixed before proceeding.

Next, start Amavisd-new back up and connect with telnet to confirm that Amavisd-new is running:

# /etc/init.d/amavis start
$ telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready

Amvisd-new is running, so quit telnet:

^]
telnet> quit
Connection closed.
Configuring Postfix To Use Amavisd-new

Now it's time to set up Postfix to use Amavisd-new. This is a fairly generic configuration, ace Postfix admins may futz and tweak to suit themselves. If you're not real experienced with this part of Postfix, the book "Postfix," by Richard Blum, is a first-rate reference.

Add this to the end of /etc/postfix/master.cf:

smtp-amavis unix -   -     n   -    2  smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
-o strict_rfc821_envelopes=yes

Then add this line to /etc/postfix/main.cf:

content_filter = smtp-amavis:[127.0.0.1]:10024

Then do a complete stop-start cycle for Postfix:

# /etc/init.d/postfix stop
# /etc/init.d/postfix start

And you now have a nice spam filter on your mail server. Start sending yourself the saved spams for testing.

You can run SpamAssassin on Postfix without using Amavisd-new. See the SpamAssassin Wiki for howtos on different ways of installing and using SpamAssassin. ClamAV needs Amavisd-new, so it's easy to let it manage SpamAssassin as well.

Come back next week for the exciting installment on installing and using Clam Anti-Virus.