Reset Fortigate Password

Kopi pes dari sini, biar ga lupa kalo satu saat butuh

Setup and Troubleshooting Foritgate firewalls.

setup_troubleshoot_fortigate

Works only on console port!!!!
Here are the instructions to login to a FortiGate firewall when the admin password is unknown. You will not find this information in fortinets knowledge base.

1. Power off the Fortigate unit by unplugging the power cable.

2. Connect to the console port with a serial cable. Launch Putty or winterm and connect to the port with default com settings.

3. Power on the fortigate firewall.

4. At the login: prompt enter maintainer

5. At the password: prompt enter bcpb The serial number is on the bottom of the unit and you will see it during boot. The userid and password need to be entered within 30-60 seconds or you will get “The hashed password length is invalid”

Example

Ver:04000006

Serial number: FWF60B3908617986 ß Serial Number

RAM activation

Total RAM: 256MB

Enabling cache…Done.

Scanning PCI bus…Done.

Allocating PCI resources…Done.

Enabling PCI resources…Done.

Zeroing IRQ settings…Done.

Verifying PIRQ tables…Done.

Boot up, boot device capacity: 64MB.

Press any key to display configuration menu…

……

Reading boot image 1983899 bytes.

Initializing firewall…

System is started.

VOALOANER login: maintainer ß Enter within 30-60 seconds

Password: bcpbFWF60B3908617986 ß Enter within 30-60 seconds

Welcome !

VOALOANER #

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.files.wordpress.com/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.files.wordpress.com/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.files.wordpress.com/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.files.wordpress.com/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.

Naik Turun 30 Menit

Sudah duduk dengan nyaman? Sudah sedia secangkir kopi dan cemilan? Kalau sudah, silakan anda lanjutkan baca tulisan ini, soalnya (mungkin) bakal panjang.

Berawal dari beberapa waktu yang lalu, gue ngecek backup server yang sering gagal dalam menjalankan tugasnya. Si backup server ini hanya bertugas mengeksekusi beberapa script untuk membackup server-server yang lain dan script itu dijalankan melalui crontab dieksekusi setiap harinya.

Beberapa hal aneh yang terjadi adalah si backup server ini sering gagal dalam mengirimkan email report, statusnya masih queue sampai harus diflush dahulu. Keanehan yang kedua, beberapa script yang dieksekusi tidak berjalan sebagaimana mestinya. Padahal kalau dicek melalui log crontab (/var/log/cron), script tersebut sudah dijalankan sesuai dengan jadwalnya. Kesalahan pada scriptnya? Kayaknya mah gak mungkin. Soalnya gagal ini hanya kadang-kadang aja. Kalau dieksekusi manual, scriptnya sukses membackup. So? Masalahnya apa ya?

Nggak sengaja pas lagi remote server backup ini, gue iseng ping mail server.
# ping mail
ping: unknown host mail

Lah sih… Unknown host? Cek /etc/resolv.conf, sudah mengarah ke DNS yang benar. Tapi ga bisa resolve? Artinya problem ada di DNS toh. Baiklah™.

Dengan berbekal info ini, gue login ke DNS server. Aneh dan semakin aneh. DNS server kadang-kadang mau nerima query dari host lain. Tapi ada beberapa waktu yang dianya malah ga bekerja. Setelah seharian lebih[1] mempelajari log dari DNS, akhirnya ketemu juga polanya. Si DNS ini mulai tidak menerima query pada setiap jamnya di menit ketujuh. Dari menit ketujuh ini dan 30 menit ke depan, si DNS magabut. Menit ke-37, si DNS mulai bekerja normal lagi dan kembali berhenti pada menit ke-7 jam berikutnya. Bingung dan sebel sih gue sama mesin ini. Tapi waktu ngeliat uptimenya, gue jadi maklum. Sudah tua toh dia.
# uptime
10:36am up 1148 day(s), 1:35, 1 user, load average: 1.51, 1.55, 1.55

Gara-gara magabut ini traffik MRTG gue dapet pujian dari jelantix
mrtg bermasalah

<jelantix> wah keren itu …
<jelantix> gemana cara nya bikin graph mrtg kayak gitu.

Nah, akar dari segala masalah udah ketawan. Gegara DNS yang magabut ini bikin banyak masalah yang lain. Entah mail yang ga bisa diakses, website yang nggak kebuka, backup script yang nggak jalan. Cuma sekarang, apa solusinya? Gue cuma tau si DNS mogok kerja tiap 30 menit. Tapi apa yang bikin dia mogok?

Selama hampir 3 hari gue nunggu wangsit yang turun dari mbah Maridjan sambil bersumpah 3 hari 3 malam nggak akan makan Sushi ataupun Hanamasa dulu soalnya blom gajian lagi.

Setelah melanggar sumpah dengan mimpi makan Yakiniku di Hanamasa, gue mulai menganalisa masalahnya.

1. DNS nggak bisa diquery tiap 30 menit.
2. Selama rentang 30 menit mogok itu, server DNS masih bisa diakses remote.
3. Service ssh artinya tidak mogok tiap 30 menit.
4. Yang bermasalah di server DNS hanya service DNS saja.
5. Jangan mimpi makan Yakiniku, bangun-bangun hanya bikin ngiler aja.

Ok, berbekal hasil analisa itu gue coba restart service DNS melalui script di /etc/init.d. Stopping … Starting … OK.

Coba query lagi…
Loh, masih failed. Masih ngambek juga. Selidik punya selidik, entah kenapa waktu distop, service DNS masih jalan juga. Jadi selama ini kalau direstart, service yang jalan masih itu-itu juga. Belum pernah ada restart service yang benar. Selama ini kalau ada pengubahan isi DNS, service hanya direload saja. Iseng kemarin sekitar jam 4 gue kill servicenya trus gue start lagi. Sekarang ini hasil MRTGnya:
mrtg bener

Done. Mission accomplished!
Next time kalau restart service, mendingan kill manual kali ya.


[1] Kenapa seharian? Ternyata ini mesin Solaris. Gue blom terlalu familiar sama jeroan dari Solaris.

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.