Image Spam

Bertugas sebagai kacung yang mengawasi lalu lintas email memang susah-susah gampang. Paling enak memang ketika sistem bekerja dengan lancar, tinggal ongkang-ongkang kaki. Tapi ketika ada masalah, semua orang berteriak serempak dan semuanya ingin didengarkan saat itu juga.

Yang paling jadi masalah belakangan ini adalah email-email spam. Sebagian besar email spam memang sudah diatasi dengan spamassassin, tapi masih banyak juga spam yang lolos. Dalam 1 hari, email spam yang lolos masuk ke inbox ada sekitar 80-90-an. Kategori 90-an email spam itu sudah tergolong besar mengingat klien-klien yang baru menerima 5-8 email spam saja sudah teriak-teriak.

Email spam yang berhasil lolos itu sebagian besar berupa image spam. Image spam biasanya berupa email dengan attachment gif, jpg, jpeg. Isi dari file image itu berupa kata-kata yang biasanya ada di email spam lainnya, seperti viagra, investor, medicine, dan lainnya.

Image spam ini menjadi masalah, karena spamassassin tidak bisa melakukan pengecekan terhadap attachment yang ada. Pantas aja semua spam pada lolos. Setelah mencari-cari di google, akhirnya dicoba untuk masang plugin FuzzyOcr di spamassassin. Berikut beberapa langkah instalasi yang diperlukan, diambil dari sini: (note: versi yang lebih baru sudah keluar)

Paket yang dibutuhkan:

  • SpamAssassin 3.1.1 atau lebih
  • libungif-4.1.4.tar.gz
  • libnetpbm10-dev
  • netpbm
  • giflib3g-dev
  • libimage-exif-perl
  • libstring-approx-perl
  • imagemagick
  • libjpeg-progs
  • gocr-0.40.tar.gz
  • fuzzyocr-2.3b.tar.gz

Kalau pakai debian atau fedora, aplikasi yang ada bisa tinggal di apt-get atau di yum. Terkecuali untuk paket-paket .tar.gz ya, sebaiknya install dari source. Untuk paket libstring-approx-perl, lebih mudah install dari cpan.

perl -MCPAN -e shell
install String::Approx

  1. Download, extract, patch, dan install libungif
    cd /usr/local/src
    wget http://internap.dl.sourceforge.net/sourceforge/libungif/libungif-4.1.4.tar.gz
    tar xzvf libungif-4.1.4.tar.gz
    cd libungif-4.1.4/util
    wget https://arjuna.wordpress.com/wp-content/uploads/2007/02/giftext-segfaultpatch.doc
    patch giftext.c < giftext-segfault.patch
    cd ..
    ./configure –prefix=/usr && make && make install
  2. Download, extract, patch, compile dan install gocr:
    cd /usr/local/src
    wget http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.40.tar.gz
    tar xzvf gocr-0.40.tar.gz
    cd gocr-0.40/src
    wget https://arjuna.wordpress.com/wp-content/uploads/2007/02/patch-gocr-segfault.doc
    patch pgm2asc.c < patch-gocr-segfault.doc
    cd ..
    ./configure –prefix=/usr && make && make install

    Tes gocr dengan file ini
    wget https://arjuna.wordpress.com/wp-content/uploads/2007/02/image001.gif
    giftopnm image001.gif > image001.pnm
    gocr image001.pnm

    Harusnya muncul seperti ini:
    ‘ AnENTlON ALL DAY TRADERS AND INVESTORS ‘

    Sekarang coba test dengan giffix, mustinya nggak ada error seperti di awal:
    giffix image001.gif > image001.fixed
    giftopnm image001.fixed > image001.pnm
    gocr image001.pnm

  3. Install FuzzyOcr 2.3b
    cd /usr/local/src/
    wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-2.3b.tar.gz
    tar xzvf fuzzyocr-2.3b.tar.gz
    cd FuzzyOcr-2.3b

    Patch pakai punyanya Robert LeBlanc
    wget https://arjuna.wordpress.com/wp-content/uploads/2007/02/fuzzyocr-23b-hashdb-poisonpatch.doc
    patch FuzzyOcr.pm < fuzzyocr-23b-hashdb-poison.patch.doc

    Kopi plugin dan configurasi file ke direktori spamassassin:
    cp FuzzyOcr.pm /etc/mail/spamassassin/
    cp FuzzyOcr.cf /etc/mail/spamassassin/
    cp FuzzyOcr.words.sample /etc/mail/spamassassin/FuzzyOcr.words

    Tambahkan baris “loadplugin FuzzyOcr /etc/spamassassin/FuzzyOcr.pm” di file v310.pre
    cp /etc/mail/spamassassin/v310.pre /etc/mail/spamassassin/v310.pre.bak
    echo ” loadplugin FuzzyOcr /etc/mail/spamassassin/FuzzyOcr.pm” >> /etc/mail/spamassassin/v310.pre

    Edit konfigurasi FuzzyOcr:
    vi /etc/spamassassin/FuzzyOcr.cf
    – Remark baris yang load plugin FuzzyOcr
    #loadplugin FuzzyOcr FuzzyOcr.pm

    #Khusus spamassassin di bawah versi 3.1.4, uncomment baris ini dan ganti isinya ke 1.0:
    focr_pre314 1.0

    #sesuaikan konfigurasi dengan di bawah ini
    focr_base_score 2
    focr_autodisable_score 50

  4. Test spamassassin dan fuzzyocr
    spamassassin –lint

    Kalau tidak ada error, test plugin fuzzyocr dengan file-file samples yang disediakan:
    /usr/local/src/fuzzyocr-2.3b/samples
    spamassassin -t < animated-gif.eml

    Hasil:

    19 FUZZY_OCR BODY: Mail contains an image with common spam text inside
    Words found:
    “alert” in 4 lines
    “charts” in 1 lines
    “symbol” in 1 lines
    “alert” in 4 lines
    “stock” in 2 lines
    “company” in 3 lines
    “trade” in 1 lines
    “xanax” in 1 lines
    “meridia” in 1 lines
    “growth” in 1 lines
    (19 word occurrences found)

    spamassassin -t < corrupted-gif.eml

    Hasil:

    1.5 FUZZY_OCR_WRONG_CTYPE BODY: Mail contains an image with wrong
    content-type set
    Image has format “GIF” but content-type is
    “image/jpeg”
    2.5 FUZZY_OCR_CORRUPT_IMG BODY: Mail contains a corrupted image
    Corrupt image: GIF-LIB error: Image is
    defective, decoding aborted.
    10 FUZZY_OCR BODY: Mail contains an image with common spam text inside
    Words found:
    “alert” in 1 lines
    “alert” in 1 lines
    “stock” in 2 lines
    “investor” in 1 lines
    “company” in 1 lines
    “trade” in 1 lines
    “target” in 1 lines
    “service” in 1 lines
    “recommendation” in 1 lines
    (10 word occurrences found)

    spamassassin -t < jpeg.eml

    Hasil:

    4.0 FUZZY_OCR BODY: Mail contains an image with common spam text inside
    Words found:
    “viagra” in 2 lines
    “cialis” in 1 lines
    “levitra” in 1 lines
    (4 word occurrences found)

    spamassassin -t < png.eml

    28 FUZZY_OCR BODY: Mail contains an image with common spam text inside
    Words found:
    “alert” in 2 lines
    “news” in 2 lines
    “symbol” in 1 lines
    “alert” in 2 lines
    “stock” in 1 lines
    “investor” in 3 lines
    “company” in 2 lines
    “buy” in 1 lines
    “price” in 2 lines
    “trade” in 2 lines
    “target” in 2 lines
    “service” in 2 lines
    “recommendation” in 1 lines
    “levitra” in 1 lines
    “software” in 2 lines
    (26 word occurrences found)

    Kalau tidak ada masalah, kembalikan setingan focr_autodisable_score ke nilai yang normal

    vi /etc/mail/spamassassin/FuzzyOcr.cf
    focr_autodisable_score 8

  5. Restart Spamassassin
    /etc/init.d/spamassassin restart
  6. Cek log maillog
    Lihat apakah plugin sudah berjalan atau belum
    tail -f /var/log/maillog |grep FUZZY_OCR

Done! Selamat menikmati berkurangnya spam.

PS: hati-hati false positive :))

Maenan CBQ

Gue termasuk orang yang tidak bisa menata file di komputer dengan rapi. Ya, kalau kalian punya waktu luang dan berkenan meriksa isi harddisk komputer gue, kalian akan menemukan banyak file yang bertebaran di sembarang folder.

Salah satu tempat yang paling banyak menyimpan file adalah direktori tmp. Padahal mustinya cuma temporary doangan yah. Nggak heran kalau akhirnya space harddisk komputer gue penuh dengan file-file tidak jelas. Sementara di komputer gue juga tersimpan koleksi Smallville dan Heroes. Alhasil demi kepentingan yang lebih penting, gue terpaksa memindahkan beberapa koleksi ke harddisk pc lain yang nganggur dan mempunyai space besar.

Nah, yang jadi masalah adalah, kalau gue sedang melakukan aksi abusing space harddisk, secara otomatis gue melakukan abusing bandwidth yang ada. Kenapa? Kalau ngecek di mrtg yang ada, setiap kali gue melakukan kupi-mengkupi file, maka mrtg yang ada langsung melonjak gila-gilaan.

mrtg upload

Kok bisa? Ya namanya transfer antar pc, bandwidth yang ‘kosong’ dan tidak dilimit mengakibatkan gue abusing 2 hal dalam waktu yang bersamaan. Setelah dipikir-pikir, akhirnya gue memutuskan untuk masang bandwidth limiting di pc gue khusus untuk traffic scp. Kok scp? Karena gue transfer file antar pc melalui scp.

Tadinya gue mikir mau pakai HTB, tapi karena gue udah pernah maenan HTB beberapa kali sementara CBQ belum pernah gue sentuh, jadi aja CBQ yang gue pake.

Langkah yang perlu dilakukan, pertama-tama, Install Linux.

Pastikan kernel linux anda dikompail dengan modul yang dibutuhkan oleh CBQ. Kalau sudah, download cbq.init. Simpan file cbq.init itu ke dalam direktori /etc/rc.d. Untuk Redhat dan teman-temannya, anda bisa simpan di /etc/rc.d/init.d. Karena gue pake slackware, file cbq.init itu gue namakan rc.cbq.init.

Buat direktori cbq di /etc/sysconfig

# mkdir -p /etc/sysconfig/cbq

Karena gue hanya mau ngelimit traffic scp, maka gue bikin file cbq-10.scp-network di direktori /etc/sysconfig/cbq. Isi file tersebut kurang lebih begini:

DEVICE=eth0,10Mbit,1Mbit
RATE=1000Kbit
WEIGHT=100Kbit
LEAF=sfq
PRIO=5
RULE=202.1.2.3,:22

Besaran RATE dan WEIGHT itu gue ubah-ubah tergantung kebutuhan gue transfer file seberapa cepat atau seberapa gede traffic yang nongol di mrtg.

Kalau sudah, tinggal compile cbq dengan menjalankan perintah
/etc/rc.d/rc.cbq.init compile

Kalau sudah yakin mau ngelimit traffic, jalankan cbq-nya
/etc/rc.d/rc.cbq.init start

Kalau sudah bosen nungguin kopi file yang lama, matiin cbq
/etc/rc.d/rc.cbq.init stop

Done.

Clearing Quarantine Mail

Kalau punya email server yang dilengkapi antivirus, salah satu kegiatan rutin selain ngecek log, musti juga rajin-rajin ngecek folder quarantine. Itu kalau option antivirus-nya diset quarantine, kalo diset buat delete ya ga usah dicek.

Qmailscanner yang gue pake punya direktori quarantine di direktori /var/spool/qmailscan/quarantine, dan karena dia berupa maildir, semua email yang dikarantina ada di /var/spool/qmailscan/quarantine/new.

Karena traffic email gue cukup padat (dengan sekitar puluhan ribu spam setiap hari), maka isi dari direktori quarantine ini cepat sekali melonjak. Dalam sebulan gue pernah dapet sekitar 2GB email bervirus yang dikarantina. Karena email-email bervirus ini gak ada gunanya disimpen, kecuali elu orang yang doyan neliti virus, maka tugas gue adalah menjaga space harddisk yang ada untuk menyimpan hasil donlodan seperti Smallville.

Gue kerajinan bikin script buat bersihin isi direktori karantina, padahal sebenernya sih bisa pake program tmpwatch, tapi distro yang gue pake rupanya nggak doyan masang tmpwatch ini di dalam paket-paketnya.

Solusi yang gampang bagi gue ya tinggal ngikutin petunjuk di sini. Tinggal pakai perintah find.

find /var/spool/qmailscan/quarantine/new -type f -atime +30 -delete

Gue setel dengan option -atime +30, yang berarti cari semua file yang tanggal aksesnya lebih dari 30 hari. Dengan kata lain, gue menyisakan email-email yang dikarantina dalam hitungan 1 bulan (30 hari) terakhir.

Perintah find ini dimasukin dalam crontab, tinggal pilih berapa kali perlu dijalanin dalam waktu satu minggu. Gue sih prefer menjalankan setiap hari, pada jam-jam yang nggak sibuk.

Yang rada aneh, gue nggak menemukan option -delete ini di distro redhat. Mungkin karena beda versi paket find.

What You Have to do After Installing Qmail

Di kantor gue kebanyakan server yang ada pakai Linux dan mereka rata-rata RedHat base. Gue gatel banget pengin ngeganti beberapa server pakai Slackware. Alasannya? Pengin aja. Kebetulan ada satu server yang harddisknya selalu masalah, hampir tiap seminggu sekali crash. Kalau nggak crash, kinerjanya lambat sekali, bikin queue email pada numpuk di sana semua.

Nah, kemarin kebetulan ada waktu senggang, gue sempetin untuk membabat habis isi server itu dan gue install Slackware 10.2. Server ini digunakan untuk email, jadi setelah selesai install Linux, gue langsung install qmail mengikuti petunjuk yang ada di qmailrocks.

Waktu instalasi sedikit menemukan masalah dengan spamassassin, entah kenapa qmail-scanner nggak mau ngajak spamassassin jalan. Hampir setengah hari waktu gue abis untuk ngoprek masalah ini. Solusinya gimana? Gue lupa. Terlalu banyak jurus trial n error, sehingga gue malah nggak tahu langkah mana yang bener.

Setelah bener semua, gue iseng ngerefresh site slackware.com, mau liat apakah sudah ada update di versi -current. Tapi yang gue dapet malah beginian :
Sun Oct 1 23:50:53 CDT 2006
Slackware 11.0 is released. Thanks to everyone who helped out and made this release possible. If I forgot you in the ChangeLog, mea culpa, but you know who you are, and thanks. :-)
Enjoy! -P.

Yeah rite™. Hanya beberapa saat setelah selesai konfigurasi qmail. Tapi bukan masalah besar kok. Slackware dengan mudah bisa diupgrade ke versi selanjutnya tanpa downtime yang lama.

Setelah konfigurasi qmail berdasarkan qmailrocks selesai, pekerjaan nggak habis sampai di sini saja. Masih ada beberapa hal yang perlu dilakukan, khususnya untuk beberapa settingan yang sesuai dengan kebutuhan gue.

Yang pertama, install Linux.

Kedua, matiin notify virus alert yang dikirimkan ke email postmaster.
# vi /var/qmail/bin/qmail-scanner-queue.pl
#Addresses that should be alerted of any quarantined Email
my $NOTIFY_ADDRS='none';

Ketiga, buat rotate untuk log qmail-scanner dan kawan-kawannya. Kalau nggak dirotate, dalam waktu 1-2 minggu ukuran file log sudah lebih dari ratusan mega.
# vi /etc/logrotate.conf
# qmail-queue log rotate
/var/spool/qmailscan/qmail-queue.log {
daily
create 0600 qscand qscand
rotate 7
compress
}
/var/spool/qmailscan/qms-events.log {
daily
create 0600 qscand qscand
rotate 7
compress
}
/var/spool/qmailscan/quarantine.log {
daily
create 0660 qscand qscand
rotate 7
compress
}

Ada beberapa hal lain yang musti dimainkan, tapi gue lupa tutsnya. Ntar diapdet lagi deh kalo inget.

Using iPod on Linux

Okey, judulnya aja sok inggris, isinya mah Indonesia semua. Semenjak beberapa hari yang lalu gue kebagian jatah ngisi mp3 ke ipod. Kebetulan banyak lagu yang mau dimasukin ke ipod belum ada, jadi musti ngedonlod dulu. Bodohnya gue, kebiasaan donlod di kantor, suka lupa dikopi ke flashdisk buat dibawa ke rumah trus dimasukin ke ipod.

“Kenapa nggak ipodnya aja yang dibawa ke kantor trus ngisinya di kantor?”

Wah ide bagus tuh. Sayangnya workstation gue masih full Linux dan gue terlalu malas ngebongkar cdrom buat nginstall Windows. Jadi berbekal kemampuan googling, gue mencari cara bagaimana ngisi mp3 ke ipod via Linux.

Dari hasil googling, gue malah lebih banyak menemukan project iPodLinux. Me-linux-kan ipod. Sebuah project yang jauh dari tujuan gue semula yang cuma ngisi lagu ke ipod via Linux.

Yang sempat tercetus:

  • Install crossover trus install iTunes
    iTunes sukses terinstall tapi ipod tak kunjung terdeteksi
     
  • Install vmware trus install windows trus install iTunes
    Rasanya ada yang aneh
     
  • Install windows trus install iTunes
    Tadi dah dibilangin males bongkar cdrom
     

Akhirnya setelah berjibaku[1] dengan google, gue menemukan link howto using iPod nano in Linux, berdasarkan howto di sana, akhirnya gue memilih menggunakan gtkpod.

Nah, untuk bisa nginstall gtkpod ini, sebelumnya harus sudah terinstall libid3tag, libmp4v2, dan tentu saja libgpod. libid3tag berfungsi untuk ngedit id3tag di gtkpod. Ingat, iPod menggunakan id3tag untuk displaynya.

Cara nginstallnya gimana? Baca READMEnya atuh! Sebagian besar tinggal jalanin tiga langkah sakti yaitu
./configure
make
make install

Hanya saja waktu nginstall gtkpod, yang perlu dijalankan adalah
./bootstrap
make
make install

Gue nggak menemukan kesulitan berarti waktu nginstall 4 paket ini. Cuma sempet bingung waktu gtkpod gak bisa menemukan libgpod (yang mana gue yakin udah gue install). Diulang berkali2 tetep nggak bisa configure gtkpod. Ternyata kesalahannya adalah gue lupa[2] jalanin “make install” waktu nginstall libgpod. duh …

Dengan gtkpod memang gak bisa seperti iTunes, bisa playing sambil ngopi lagu ke ipod. gtkpod sejauh ini bagi gue berfungsi untuk mengisi lagu ke ipod, ngedit id3tag, ngapus lagu di ipod. Ya segitulah kira-kira.

Sayangnya, ipod yang lagi gue isi ini bukan punya gue 😀


[1] ya ya, terlalu over
[2] faktor uzur?

Apache, IPv4, Hosts, dan Dogol

Okay, Minggu pagi gue dapet telpon urgent dari kantor, ngasih tau kalau webmail tidak bisa dibuka. Jadi orang-orang pada nggak bisa ngecek email via web. Baiklah™. Dateng ke kantor, ngecek sana sini, gue buka website kantor dan browser opera gue diem aja, connecting tapi nggak nongol apa-apa di layar. Dari komputer sebelah yang pake Windows, terlihat Internet Explorer terbuka dengan logo indahnya dan kata-kata manis bertuliskan “The Page Cannot be Displayed”.

Dugaan pertama gue masalah ada di DNS. Maka langkah pertama yang gue lakukan adalah ngecek DNS nyala atau hidup[1]. Cek sana sini, ping DNS, nge-resolve via DNS, semua jalan baik. Artinya DNS baik-baik saja.

Langkah ke dua, gue langsung login ke server web dan langsung mendapatkan kenyataan bahwa apache tidak jalan. Yaelah, ginian doang? Keciiiillll .. Pas gue eksekusi script buat start apache, gue dihadang satu masalah lain, apache nggak mau start tanpa pesan error.
# /etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: [FAILED]

Damn! Cek file /var/log/messages, nggak memberikan info berarti selain gagal menyalakan apache. Langkah terakhir gue cek log dari apache sendiri, di /var/log/httpd/error_log.

[Sun Aug 20 08:58:11 2006] [alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "web"
Configuration Failed!

Nah, mendingan. Paling nggak ada error log yang bisa digooglekan. Setelah mencari di google dan tersesat di beberapa forum yang menemukan masalah yang sama tapi tidak ketemu penyelesaiannya, ada yang menyarankan untuk reinstall apache atau disuruh ngecek module python, yang mana semua gue yakin nggak berhubungan dengan masalah gue ini, nggak sengaja gue nyasar ke url ini yang ngasih tahu untuk ngedit file /etc/hosts.

Ya elah, perasaan apache gue ga ada hubungannya sama /etc/hosts. Dari jaman kapan ini apache jalan nggak pernah ngedit-ngedit /etc/hosts. Tapi karena ini clue terakhir, ya udah gue buka file /etc/hosts dan menemukan tampilah seperti ini:
# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 www localhost.localdomain localhost

That’s it! Hanya ada 1 baris yang nggak dikasih tanda pager. The beautiful IP, 127.0.0.1. Nggak ada IP komputer web itu sendiri.

Spontan gue jadi inget kemaren ada yang nanya ke gue:
Seseorang : “Gimana cara biar satu komputer nggak usah ngeresolve dns untuk dapet IP?”
Gue : “Ya mainkan di /etc/hosts”
Seseorang : “Gitu doang?”
Gue : “Yoih™”

Dan seseorang itu ternyata mengedit /etc/hosts dengan menghapus IP yang ada dan hanya menyisakan satu baris IP loopback. Yeah rite™

Penyelesaian masalah hanya tinggal mengedit file /etc/hosts menjadi kurang lebih seperti ini:
# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
202.1.2.3 www.domain.com www web

Restart apache.

# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Done. Sekarang tinggal pulang dan nyari sarapan. Laper berat…


[1] Mustinya nyala atau mati. Tapi palingan kalian nggak notice.

Playing with curl

Pernah mo download banyak file dengan url yang berbeda-beda? Pernah mau download file dengan nama file seperti file001.mpg sampai file999.mpg? Kejadian seperti ini gue alami waktu mau download comic strip macam Garfield atau Calvin and Hobbes.

Website resmi Garfield atau Calvin and Hobbes memang menyediakan archive comic strip yang hanya bisa dilihat satu persatu untuk setiap comic stripnya. Sementara koneksi internet yang tidak Deden friendly adalah salah satu faktor penghambat untuk bisa menikmati comic strip sambil meminum secangkir nescafe pas (sumpah ini spam).

Dari website Garfield, gue menemukan bahwa comic strip yang muncul di sana disimpan di site images.ucomics.com. Misalkan untuk comic strip tanggal 15 Januari 2006, urlnya adalah http://images.ucomics.com/comics/ga/2006/ga060115.gif

Berarti kira-kira kalo gue mau liat archive 9 Juni 1997, mungkin urlnya adalah http://images.ucomics.com/comics/ga/1997/ga970609.gif. Apakah benar? Coba aja di cek.

Dulu sekitaran tahun 2004, gue pernah diskusi sama Aris gimana cara yang baik untuk mendownload comic strip ini. Dasar programmer, dia langsung buat sebuah script php yang berfungsi menghasilkan sebuah file dengan url-url comic strip yang ingin di download. Misalkan elo mau download seluruh comic strip yang ada dari taun 1996 sampai taun 1997, tinggal input range tahun, dan tercipta sebuah file dengan url-url yang tinggal digabungkan ke dalam perintah wget.

Baru beberapa bulan kemudian, gue menemukan cara yang lebih efisien untuk mendownload comic strip atau file-file apapun dengan url berbeda tapi ada polanya. Perintah yang gue pake adalah curl.

Dengan perintah curl, gue bisa mendownload range comic strip untuk setiap tahunnya, hanya dengan perintah seperti
curl http://images.ucomics.com/comics/ga/1989/ga89[01-12][01-31].gif -o ga89#1#2.gif

Setiap tanda [] berarti range angka yang akan digenerate dalam url tersebut. Artinya gue akan mendownload file dengan nama berawalan ga89 (garfield tahun 1989), bulan 1-12, tanggal 1-31.

Sementara output dari perintah tersebut akan disimpan ke file dengan nama ga89#1#2.gif. Yang mana tanda #1 itu adalah variable yang akan diisi dengan range angka pertama yang dipakai di url tersebut, #2 variable untuk range angka kedua, dan seterusnya.

Tapi dengan perintah curl seperti ini memang ada sedikit ‘kelebihan’. Kelebihan download tepatnya. Ada beberapa file yang tidak ada, tapi akan terdownload. Misalkan file dengan nama ga890230.gif atau ga890231.gif atau yang lainnya. Ya maklum lah, tanggal 30, 31 bulan februari kan nggak ada. Ataupun tanggal-tanggal 31 lain di bulan yang hanya berjumlah 30 hari.

Nah kalo udah selesai, tinggal gue ditodong Bunda buat ngaplod hasil codotan.

Garfield

Lame Server Resolving

Gue baru ganti mesin secondary DNS server. Setelah setup mesin DNS 2 mingguan yang lalu, dibiarin up selama 2 minggu itu untuk ngeliat ada masalah atau nggak dengan mesin itu.

Soalnya itu mesin emang rada-rada. Waktu pertama kali gue pasang di ruang server, itu mesin ngadat booting dengan mulus. Setiap kali abis BIOS nongol pasti ada IRQ conflict. Yang aneh lagi, mesin ini sebelumnya dipake buat proxy dan ga pernah ada masalah dengan IRQ conflict. Sementara sebelomnya ga pernah utak-atik hardware atau BIOS.

Seharian gue kedinginan di dalam ruang server hanya untuk bolak balik reboot itu mesin nyari masalahnya apaan tapi ga bisa juga. Gak kuat kedinginan, mesin dogol itu gue bawa ke meja gue, pasang di sana. Boot … Ajaib! Gak ada IRQ conflict! Kayaknya ini mesin bagus gue kasih nama “Hantu” aja ya. Banyak masalah gaib. Mungkin letak mesin harus sesuai dengan Feng Shuinya.

Setelah masalah Feng Shui terselesaikan, pertama … gue install linux di mesin itu. Selesainya gue setup DNS. Setingan DNS yang lama gue kopi langsung ke mesin itu. Ada lebih dari ratusan zone dan gila aja kalo gue niat ngetik satu persatu zone yang ada.

Setelah kelar semua setingan yang ada, secondary DNS yang ada gue matiin, mesinnya gue ganti sama mesin yang udah di setup ini. Nyalain service DNS dan gue ngeliat zone-zone yang ada melakukan transfer file ke secondary DNS ini. Tapi di log sering nongol tentang lame server.

Aug 7 09:15:02 ns2 named[2880]: lame server resolving 'www.blablabla.com' (in 'blablabla.com'?): 12.234.12.123#53

Anehnya beberapa domain yang nongol di log, sama sekali ga ada setingan zone-nya di konfig gue.
Nyontek dari sini dan sini, lame server itu adalah :

If you look in your message logs, you may see an error about a “lame server”. A lame server is when the NS record for a domain specifies a server that is not authoritative for the domain. For example, the NS record for http://www.domain.com may list ns1.domain.com as one of its nameserver; however, if you actually query ns1.domain.com, the nameserver does not answer as an authoritative server. The latter is do to a mis-configuration of that nameserver not yours. Lame servers are increasingly common as more and more people run their own DNS — often with improper configurations.

Jadi kesalahan bukan pada mesin Feng Shui ini. Tapi kenapa ga nongol di log mesin secondary DNS yang lama ya?

Dari site tersebut dijelasin juga, kalo pusing ngeliat lame server error itu di log, matiin aja log tentang lame server itu. Caranya? Install Lin… euh …

Tinggal di file named.conf masukin option kayak gini:

logging {
category lame-servers { null; };
};

Done.

Read The Changelog, Stupid!

Untuk desktop kerja gue, udah 3 tahun lebih gue pake distro slackware. Kenapa ga pake Windows? Ga tau, ga peduli, Gue cuma nyari mana yang nyaman gue pake buat kerja (brosing, ceting, donlod).

Untuk upgrade paket di slackware, gue pake software slapt-get, yang dikenal sebagai apt-nya slackware.

Satu bulan terakhir ini, gue asik ngapgred distro slack gue ke versi -current. Enak, tinggal jalanin slapt-get --update; slapt-get --upgrade -a Tunggu beberapa lama untuk dia download paket-paket yang akan diapgred, trus slackware gue udah apdet ke versi current.

Tapi gue selalu failed tiap kali apgred basic system, termasuk X11 dan KDE. Sampai akhirnya tiap kali apgred KDE ke versi 3.5.3, gue musti downgrade ke versi 3.4.2 bawaan slack 10.2. Daaaan, baru hari ini gue mencoba untuk apgred KDE lagi ke versi terbaru di slackware-current. Hasilnya? Blah! Gagal maning gagal maning son … Error messagesnya cuma “could not start kdeinit”. Tidak membantu sama sekali.

Pas lagi downgrade ke versi 3.4.2, ga sengaja ngeliat log error di file ~/.xsession-errors. Di situ gue tau ada file yang gak ada, yaitu libacl.so.1. Setelah googling, akhirnya gue tau semenjak 8 Februari 2006, paket acl dan attr dipisah dari paket xfsprogs. Dan dari forum ini akhirnya gue menyadari, bahwa aplikasi seperti slapt-get tidak akan menginstall paket-paket yang baru saja ditambahkan ke dalam versi current, karena mereka hanya akan mengapgred paket yang sudah terinstall. Bodoh! Makanya, sebelum melakukan apgred, baca dulu Changelog yang ada!

Anyway, sekarang KDE gue udah versi 3.5.3. Dan dulu setelah downgrade ke versi 3.4.2, gue ga pernah bisa ngepop gmail lagi. Sekarang setelah beberapa paket ditambahin sesuai dengan di Changelog, semuanya kembali normal 😀