Category Archives

128 Articles
Menghapus Sejumlah Besar Berkas

Menghapus Sejumlah Besar Berkas

Command Line Magic on Twitter

rsync -a -delete empty/ foo/ # Apparently the fastest way to delete millions of small files. http://bit.ly/17yjVwi Thx @fdevillamil

Katakanlah ada sebuah direktori dengan jumlah berkas 100.000+ di dalamnya. Cara efisien ternyata:

$ mkdir kosong
$ rsync -a --delete kosong/ direktori_yang_mau_dihapus

Kadang kala, direktori yang terlalu banyak pun tak bisa dihapus dengan cara konvensional seperti “rm -rf”. Cara saya dahulu menggunakan find. Namun, menurut sebuah artikel, menggunakan RSYNC jauh lebih cepat.

Bacaan Lebih Lanjut

Integrasi LDAP dengan PAM pada GNU/Linux BlankOn Suroboyo

Integrasi LDAP dengan PAM pada GNU/Linux BlankOn Suroboyo

ldap

Sangkalan: BlankOn Suroboyo saat penulisan masih dijahit sehingga tidak cocok untuk konsumsi rakyat jelata. Tulisan ini hanya untuk heker terutama admin universitas yang mengelola komputer Lab dan punya akses ke LDAP.

Saya senang karena sudah menonton Azrax dan sudah menang DoTA 2. Untuk merayakannya, saya ingin menyambungkan BlankOn Suroboyo Jahitan 1 (+pembaharuan) saya dengan LDAP universitas.

Langkah Sebelumnya

Pastikan pelayan LDAP telah menyala dan berfungsi. Untuk menjaga keamanan, sebaiknya LDAP disambungkan dengan koneksi TLS (port 636) bukan yang biasa (port 389). Untuk terhubung, ada dua cara, yakni menggunakan STunnel ke port 636 dan mengarahkan ke localhost:389, atau langsung terhubung ke pelayan LDAP.

Cara STunnel dilakukan karena biasanya GNUTLS (pustaka enkripsi selain OpenSSL) bermasalah dengan sertifikat yang-ditandatangani-sendiri (self-signed). Tapi, saya menghindari cara tersebut karena kurang jantan. Saya mau menyusahkan diri untuk bisa menemukan jalan keluarnya.

Langkah 1: Pasang Paket Autentikasi LDAP

Pasang langsung:

$ sudo apt-get install libpam-ldapd

Selesai.

Kok, gampang? Mana NSS dan bla… bla… bla…?

Iya, soalnya libpam-ldapd adalah paket yang terbaru menggantikan libpam-ldap.

Langkah 2: Ubah Konfigurasi

Ada beberapa konfigurasi yang harus diubah.

Langkah 2a: Konfigurasi NSLCD

Layanan libpam-ldapd yang baru menggunakan layanan nslcd sebagai pelayan autentikasi LDAP. Untuk itu, ubah konfigurasinya:

$ sudo $EDITOR /etc/nslcd

Yang pertama, ubah URL berikut:

uri ldap://127.0.0.1/

menjadi IP pelayan LDAP Anda.

Yang kedua, Ubah DN dasar pada baris berikut:

base dc=example,dc=com

menjadi DN dasar LDAP Anda.

Jika Anda menggunakan skema LDAPS (seperti yang saya sebutkan sebelumnya) dan pelayan server Anda menggunakan sertifikat sendiri, maka harus diubah agar NSLCD tidak meminta sertifikat yang valid. Pastikan baris berikut diaktifkan:

tls_reqcert never

Selesai.

Langkah 2b: Mengubah  nsswitch.conf

Mengubah layanan yang terdaftar di NSS agar menggunakan LDAP:

$  sudo vi /etc/nsswitch.conf

Ubah layanan passwd, group, dan shadow menjadi:

passwd: files ldap
group: files ldap
shadow: files ldap

Awalnya menggunakan compat, tapi lebih baik menggunakan files baru ldap menurut dokumentasi libpam-ldapd. Omong-omong, setiap baris itu artinya layanan passwd misalnya akan memeriksa ke berkas (/etc/passwd) terlebih dahulu sebelum ke LDAP. Anda bisa buat sebaliknya kalau mau.

Langkah 2c: Tambahkan Baris Sesi

Tambahkan satu baris untuk membuat direktori rumah bila belum ada.

$ echo "session     required      pam_mkhomedir.so skel=/etc/skel umask=0022" | sudo tee -a  /etc/pam.d/common-session

Baris ini akan menyebabkan pengguna yang login bila direktori rumahnya belum ada akan dibuat otomatis.

Langkah 3: Uji Coba

Anda tentunya tidak akan nekat langsung menjalankan LDAP, ‘kan?

Matikan layanan NSCD dan NSLCD:

$ sudo /etc/init.d/nscd stop
$ sudo /etc/init.d/nslcd stop

Lalu jalankan manual NSLCD dengan mengaktifkan debugging:

$ sudo nslcd -d

Lalu, pindah ke terminal lain untuk mencoba login sebagai pengguna LDAP.

Kalau misalnya berhasil dan tidak ada masalah, berhentikan NSLCD dan nyalakan kembali kedua layanan tersebut.

$ sudo /etc/init.d/nslcd start
$ sudo /etc/init.d/nscd start

Selesai.

Langkah 4: Ubah Penyambut LightDM

BlankOn menggunakan tematik Manokwari. Sangat indah memang, namun sayangnya tidak bisa digunakan untuk LDAP.

Hal ini karena pengguna LDAP belum ada di sistem saat ia pertama kali masuk. Padahal, penyambut BlankOn hanya menampilkan ikon pengguna yang sudah ada. Untuk itu, dengan sangat terpaksa penyambut diubah menjadi penyambut baku dari Debian.

$ sudo apt-get install lightdm-gtk-greeter

Lalu, ubah berkas berikut:

$ sudo $EDITOR /etc/lightdm/lightdm.conf

Ubah baris berikut:

greeter-session=lightdm-webkit-greeter

menjadi:

greeter-session=lightdm-gtk-greeter

Tinggal mengulang LightDM.

Langkah 5: Jalankan Sistem dengan LDAP

Lebih baik jalankan ulang mesin Anda untuk mencoba sebenarnya dan lihat hasilnya.

Tulisan ini akan diperbaharui dari waktu ke waktu bila memungkinkan.

Daftar Pustaka

Arthur de Jong ([NO YEAR], [NO MONTH] [NO DAY]). LDAP authentication with nss-pam-ldapd Retrieved Sept. 25, 2013 from Arthur de Jong: http://arthurdejong.org/nss-pam-ldapd/setup.
Debian WIKI Team (2012, Oct. 16). Configuring LDAP Authentication Retrieved Sept. 25, 2013 from Debian WIKI Team: https://wiki.debian.org/LDAP/PAM.
Zoke (2011, Nov. 5). How to change the LightDM theme/greeter?. Ask Ubuntu. Retrieved Sept. 25, 2013 from Ask Ubuntu: http://askubuntu.com/questions/75755/how-to-change-the-lightdm-theme-greeter.
BlankOn 9 Jahitan 1: GNOME 3 dan systemd

BlankOn 9 Jahitan 1: GNOME 3 dan systemd

PERHATIAN: BlankOn 9 Jahitan 1 masih taraf pengembangan. Sebagai seorang heker ayam, saya cuma mau iseng saja menunggu sampai rilis. Syukur-syukur kalau tulisan ini membantu banyak orang. Tulisan ini dari heker ayam untuk para heker-heker lainnya, tidak cocok untuk nubitol. 🙂

Menurut tiket #1309, zona waktu tidak juga berubah. Saya sudah menyebutkan cara mengubahnya di tulisan saya sebelum ini. Ternyata isu tersebut masih saja ada. Darah heker ayam saya memuncak dan mulai mengais ke dalam. Dari kemarin saya tidak bisa konsentrasi bermain DoTA 2 dan rasanya tidak mau makan (yang terakhir bercanda).

Saya lihat BlankOn 9 menggunakan GNOME 3.8.3 dan ternyata menurut forum ArkLinux, GNOME 3 terintegrasi kuat dengan Systemd. Fungsi jam memanggil API DBUS systemd untuk mengubah waktu sistem. Celakanya, BlankOn masih menggunakan Sysvinit seperti Debian bapaknya. Itu sebabnya, fungsi tanggal di BlankOn 9 tidak bisa digunakan.

[Sistem init sysvinit, systemd, dan upstart adalah manajemen layanan GNU/Linux. Mereka yang berfungsi menyalakan setiap layanan yang ada. Fungsi yang terbaru bahkan mereka bisa menyalakan layanan-layanan yang lain yang harus menyala sebelum menyalakan sebuah layanan (dependency-based service).]

Saya sangat menyayangkan sikap GNOME yang melawan falsafah UNIX. Keterikatan kepada satu sistem init ini berakibat kepada sistem lainnya tidak berfungsi. Seharusnya, diciptakan shim yang mengabstraksi setiap implementasi sistem. Karena kediktatoran ini, untuk mendapatkan pengalaman penuh menggunakan GNOME 3, setiap distribusi diberi pilihan:

  1. Pindah sepenuhnya menggunakan systemd.
  2. Jangan gunakan GNOME 3 dan ganti ke pengatur destop lain.
  3. Tambal GNOME 3 agar menggunakan API yang benar.
  4. Berdoa agar dibukakan pintu tobat bagi para pengembang GNOME sehingga mereka kembali waras.

Saya memilih untuk pindah ke systemd karena saya digambarkan sebagai Sheldon Cooper, pemalas dan pragmatis.

Memasang systemd

Untuk dapat memasang systemd, saya memasang paket-paket yang diperlukan. Saya terkejut ternyata BlankOn sudah memasang systemd di sistem! Hanya saja, mereka hanya dipasang sebagai ketergantungan paket saja. Jadi, saya hanya perlu memasang sedikit.

Memasang Pengatur Grafikal systemd

Pengatur grafikal systemd dapat dipasang dengan:

apt-get install systemd-ui

Memasang Penuh systemd

Saya memasang paket-paket berikut:

  • dh-systemd (1.7)
  • live-config-systemd (3.0.23-1)
  • systemd-sysv (44-12)

Mencabut paket ESENSIAL berikut:

  • sysvinit

Mencabut paket-paket berikut:

  • blankon-live-config
  • live-config
  • live-config-sysvinit

Paket dh-systemd digunakan untuk para pengembang yang mau memindahkan layanan mereka dari format sysvinit ke systemd. Saya memasang hanya untuk berjaga-jaga saja.

Yang diperlukan adalah systemd-sysv yang membuat tautan (symlink) dari /bin/systemd ke /bin/init dan menyediakan fungsi-fungsi shutdown,  Hal ini membuat paket tersebut tidak kompatibel dengan sysvinit. Saat ini sysvinit masih dianggap paket esensial Debian. Artinya, kehilangan paket tersebut dapat menyebabkan kerusakan sistem bila diutak-atik sembarangan.

Paket live-config-systemd saya pasang karena live-config-sysvinit terpasang. Kata manual,sih, dia berisi skrip-skrip yang mengonfigurasi layanan pada sistem.Pasang sajalah.

Jadi, saya memasang seperti ini:

sudo apt-get install dh-systemd live-config-systemd systemd-sysv

Saya mengerjakan ini dengan memasang di Manajer Paket Synaptic.

Memasang Kembali Paket yang Terbuang

Jadi ceritanya paket blankon-live-config membutuhkan paket maya live-config yang terbuang karena sysvinit-live-config terbuang. Ya, berhubung systemd-live-config sudah dipasang, maka paket maya sudah bisa dipasang kembali. Alas, kita pun bisa memasang kembali blankon-live-config.

sudo apt-get install live-config blankon-live-config

Dan paket-paket yang penting sudah selesai.

Pastikan FSTAB Berisi Partisi Utama

Ketika saya memasang skrip-skrip di atas, saya kelimpungan karena sistem saya tidak bisa berjalan. Sistem bisa menyala, tapi tidak bisa masuk ke dalam grafikal. Hanya ada layar kosong hitam. Berhubung saya menggunakan VirtualBox, saya tidak bisa pindah ke terminal teks.

Ketika saya masuk ke Mode Pemulihan, saya menemukan bahwa partisi utama saya (root directory) masih dipasang hanya-baca. Artinya, systemd belum memasang ulang baca-tulis partisi tersebut. Solusinya? Tambahkan partisi utama ke dalam FSTAB.

Pertama, pasang ulang agar bisa baca-tulis

mount -o remount,rw /

Setelah itu, cari entri di /proc/mounts partisi utama. Misalnya punya saya:

# cat /proc/mounts
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=255484,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=412156k,mode=755 0 0
/dev/disk/by-uuid/2acd3ce0-5e0a-4cb0-82ac-351d92af5a31 / ext4 rw,relatime,data=ordered 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
securityfs /sys/kernel/security securityfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
tmpfs /run/user tmpfs rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /media/sf_Musik vboxsf rw,nodev,relatime 0 0

Perhatikan yang saya cetak tebal. Anda dapat menulis manual dengan cari tahu apakah itu sebenarnya bernama /dev/sda1 atau yang lainnya.Kalau saya, kebetulan hanya itu yang bertipe EXT4, saya masukkan dengan cara heker:

# cat /proc/mounts | grep ext4 >> /etc/fstab

Yak, artinya baca isi /proc/mounts, kemudian saring baris yang berisi “ext4” dan tambahkan baris tersebut ke berkas /etc/fstab. Mudah, bukan?

Pertimbangan Terakhir Sebelum Pindah

SYSVINIT berbeda dengan SYSTEMD!

Kalau sysvinit membuat layanan di /etc/init.d dan dijalankan melalui rc.N: N menyatakan runlevel (biasanya dari 0 sampai dengan 7). Sedangkan systemd melihat layanan yang ada di /lib/systemd dan /usr/lib/systemd. Jangan lupa, keduanya memiliki format berkas layanan yang berbeda.

Anda bisa cari tahu tentang perbedaan keduanya lebih lanjut di Internet. Yang pasti, ketika kita pindah ke SYSTEMD, artinya setiap skrip yang dibuat menggunakan SYSVINIT tidak akan berjalan lagi!

Pastikan sistem Anda sudah kompatibel dengan systemd. Kebetulan saya memasang dari awal, jadi setiap layanan dipasang oleh Debian dengan format SYSVINIT dan SYSTEMD. Dari awal sudah cocok. Namun, buat Anda yang membuat aplikasi sendiri atau memasang dari paket lain harus memperhatikan skrip layanan yang hendak dipasang juga memuat skrip layanan berformat SYSTEMD.

Intinya, kalau paket Debian, sih, seharusnya kompatibel.

ASSP Directories

ASSP Directories

@ssp

The definitions are in the ASSP GUI, section “File Paths” and can also be seen in the WIKI->ASSP 1.x configuration settings->FilePath.

There is also a file inside the assp-folder called assp.cfg.description.txt, it can be read via GUI Menu->Config Description

spamlog (Spam Collection)

The folder to save the collection of spam emails. This directory will be used in building the spamdb.

For example: spam

Default: spam

notspamlog (Not-spam Collection)

The folder to save the collection of not-spam emails. This directory will be used in building the spamdb.

For example: notspam

Default: notspam

incomingOkMail (OK Mail)

The folder to save non-spam (message ok). These are messages which are considered as HAM, but are not stored in the standard HAM folder because of our policy to use only confirmed HAM messages (whitelisted or local) for SpamDB. If you want to keep copies of ok mail then put in a directory name. This directory will not be used in building the spamdb.

Default: okmail

Default: okmail

discarded (Discarded Spam)

The folder to save discarded spam-messages. These are Spam messages which are not stored for building the spamdb but for resending with an EmailBlockReport. If you want to keep copies of discarded Spam then put in a directory name.

Default: discarded

Default: discarded

viruslog (Attachment/Virus Collection)

The folder to save rejected attachments and virii. Leave this blank to not save these files (default). If you want to keep copies of rejected content then put in a directory name. Note: you must create the directory. This directory will not be used in building the spamdb.

For example: quarantine

Default: quarantine

correctedspam (False-negative Collection)

Spam that got through — counts double. This directory will be used in building the spamdb.

For example: errors/spam

Default: errors/spam

correctednotspam (False-positive Collection)

Good mail that was listed as spam, count 4x. This directory will be used in building the spamdb.

For example: errors/notspam

Default: errors/notspam

resendmail (try to resend this files)

ASSP will try to resend the files in this directory to the original recipient. The files must have the “maillogExt” extension and must have the SMTP-format. ASSP will try to send every file up to ten times (with 5 minutes delay). If the resend fails ten times, the file will be renamed to *.err, on success the file will be deleted!

For example: resendmail. This requires an installed module in PERL.

Default: resendmail


Tulisan di atas disalin sepenuhnya dari tulisan Fritz Borgstedt dari Milis ASSP Users untuk keperluan dokumentasi pribadi.

Repositori Ubuntu Raring Akhirnya Dirilis

Repositori Ubuntu Raring Akhirnya Dirilis

Raring

Om Tonny Sabastian, salah satu penggembala Kambing, telah selesai bertapa membuat repositori Ubuntu Raring. Ada 13 DVD yang siap untuk diunduh. Silakan sedot dan bagikan, Gan!

Anda fakir benwit? Saya juga! (Maksudnya kalau dari rumah koneksi modem 3G)

Menurut Juragan Apri, Anda dapat menggunakan jasa pihak ketiga yang sudah siap membakar DVD untuk Anda. Ada Juragan Kambing, Gudang Linux, Baliwae, dan toko-toko lainnya. Anda juga bisa berpartisipasi dengan menggandakan dan membagikan secara gratis ke tetangga Anda.

Sebenarnya, DVD ini sudah dibuat sejak hari pertama rilis Ubuntu. Namun, negara api menyerang! Eh, maksudnya, ada masalah teknis dengan Ubuntu 13.04 yang pindah ke udisk2. Skema udisk2 menautkan CD/DVD atau pun ruang penyimpan lainnya ke skema /media/$USER/$mountpoint. Hal ini membuat apt-cdrom tidak kompatibel dengan skema yang baru.

Menurut Om Tonny, ada dua cara yang dapat dilakukan, yakni:

  1. Menetap aturan udev agar titik kait di /media seperti pada Ubuntu Asks.
  2. Menambahkan secara manual di terminal:
    $ sudo apt-cdrom -m -d=/media/$USER/$MOUNT_POINT add

Ya, kira-kira demikian adanya. Ada juga tips dari orang yang lengkap dan menarik untuk mempermak Ubuntu Raring.

Selamat menjadi pintar!

Phishing Pemilik Situs?

Phishing Pemilik Situs?

Mancing Mania!

Mancing Mania!

Saya mendapatkan surel seperti ini:

Dear ***REMOVED***@ui.ac.id,

 Your webhosting account has been transmitting viruses to our servers and will be deactivated permanently if not resolved.

 You are urgently required to sanitize your webhosting account with Norton FTP Scanner; otherwise, your access to webhosting services will be deactivated 

 Click here now to scan and sanitize your webhosting account

 Note that failure to sanitize your webhosting account immediately will lead to permanent deactivation without warning.

 We are very sorry for the inconveniences this might have caused you and we assure you that everything will return to normal as soon as you have sanitized your webhosting account.

 cPanel Admin

Saya sudah menghapus URL tujuan. Nampaknya setelah menyerang WordPress, sekarang para penyepam hendak menyerang pengguna cPanel.

Omong-omong, mengapa saya bisa menduga bahwa ini adalah phising? Karena berikut isi dari kepala surel:

Return-Path: <NortonFTPScanner@cPanel.com>
Delivered-To: ***REMOVED***@ui.ac.id
Received: from bunglon.ui.ac.id (bunglon.ui.ac.id [152.118.148.227])
    by marimar.ui.ac.id (Postfix) with ESMTP id 259272C38
    for <***REMOVED***@ui.ac.id>; Wed, 12 Jun 2013 22:18:57 +0700 (WIT)
Received: from iguana.ui.ac.id (iguana.ui.ac.id [152.118.148.215])
    by bunglon.ui.ac.id (Postfix) with ESMTP id 48D1AB61774
    for <***REMOVED***@ui.ac.id>; Wed, 12 Jun 2013 22:18:18 +0700 (WIT)
Received: from cancer.server-iix.com (localhost.localdomain [127.0.0.1])
    by iguana.ui.ac.id (Postfix) with ESMTP id 2FFF94C1BDD
    for <***REMOVED***@ui.ac.id>; Wed, 12 Jun 2013 22:18:18 +0700 (WIT)
Received: from cancer.server-iix.com ([103.29.215.159] helo=cancer.server-iix.com)
    by iguana.ui.ac.id with SMTP (2.2.1); 12 Jun 2013 22:18:18 +0700
Received: from [202.152.202.186] (port=63142 helo=pedro-PC)
    by cancer.server-iix.com with esmtpsa (TLSv1:EDH-RSA-DES-CBC3-SHA:168)
    (Exim 4.80)
    (envelope-from <NortonFTPScanner@cPanel.com>)
    id 1UmPLd-0007in-Ie
    for ***REMOVED***@ui.ac.id; Tue, 11 Jun 2013 21:14:58 +0700
Message-ID: <03b254f4-41436-1d748846041667@pedro-pc>
Reply-To: "cPanel Admin" <lkjhasgdsfsdfgfdfadghfhsfjhj@yahoo.com>
From: "cPanel Admin" <NortonFTPScanner@cPanel.com>
To: ***REMOVED***@ui.ac.id
Subject: Problem with your webhosting account - ***REMOVED***@ui.ac.id
Date: Tue, 11 Jun 2013 21:13:50 +0700
MIME-Version: 1.0
Content-Type: text/html
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-Mailer: Power Sending Sockets v5.1
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - cancer.server-iix.com
X-AntiAbuse: Original Domain - ui.ac.id
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - cPanel.com
X-Get-Message-Sender-Via: cancer.server-iix.com: authenticated_id: julie@hidrolikpart.com
X-Assp-Version: 2.2.1(13020) on iguana.ui.ac.id
X-Assp-Delay: not delayed (auto accepted); 12 Jun 2013 22:18:18 +0700
X-Assp-Message-Score: 10 (Message-ID not valid: '03b254f4-41436-1d748846041667@pedro-pc')
X-Assp-IP-Score: 10 (Message-ID not valid: '03b254f4-41436-1d748846041667@pedro-pc')
X-Assp-Received-SPF: none (cache) ip=103.29.215.159 mailfrom=NortonFTPScanner@cPanel.com
    helo=cancer.server-iix.com
X-Original-Authentication-Results: iguana.ui.ac.id; spf=none
X-Assp-Message-Score: -10 (Home Country Bonus ID (Sentra Niaga
    Solusindo, PT.))
X-Assp-IP-Score: -10 (Home Country Bonus ID (Sentra Niaga Solusindo, PT.))
X-Assp-Whitelisted: Yes
X-Assp-ID: iguana.ui.ac.id m1-50298-00280
X-Assp-Detected-RIP: 202.152.202.186
X-Assp-Source-IP: 202.152.202.186

Ada beberapa poin yang saya dapati mengapa surel ini penipuan:

  1. Alamat kirim surat bukan dari cPanel, melainkan dari tempat lain. Sepertinya akun orang tersebut tercolong. Yah, terkadang di UI juga ada pengguna dari waktu ke waktu yang tak sadar bahwa dia sedang dipancing (phising). Mereka menjadi korban karena menjadi inang pengiriman surel berantai seperti ini.
  2. Isi surat tidak menyatakan alamat URL saya yang dinyatakan terkompromisasi. Semua badan resmi (Stop Badware, Google, dkk.) selalu menyertakan tautan URL yang dia tuduhkan.
  3. Server MX yang mengirim pun bukan dari cPanel, karena kalau cPanel:
    cpanel.com.             140     IN      MX      0 mx1.cpanel.com.
    mx1.cpanel.com.         14334   IN      A       208.74.121.6

Yah, kira-kira begitu. Mengapa bisa masuk ke dalam sistem surel UI? Karena sebagian besar server MX di Indonesia salah konfigurasi/konfigurasi yang tidak benar, bahkan ISP yang besar sekali pun. Terpaksa, deh, surel dari Indonesia harus dinaikkan reputasinya.

Saya berharap bahwa Indonesia suatu saat akan memiliki MX-MX yang terkenal kuat dan admin-admin yang berdedikasi membenahi konfigurasinya hingga optimal. AMIN!

unetbootin dan syslinux 5.x

unetbootin dan syslinux 5.x

Apa yang spesial dari syslinux 5? Dia memisahkan banyak modul dari paket inti. Akibatnya, ukuran lebih kecil, tapi banyak fungsionalitas yang tidak jalan.

Sebagai contoh, saya menggunakan unetbootin untuk memasang DVD1 CentOS 6.4 ke sebuah penyimpan USB 8GB. Ketika saya tancapkan pada komputer yang hendak saya pasang, yang muncul hanya tampilan:

boot:

Ternyata, tinggal jalankan ubnkern parameter berikut:

boot: ubnkern initrd=ubninit selinux=0

Mengapa SELinux dimatikan? Karena CentOS menggunakannya. Padahal aplikasi yang mau dipasang tidak kompatibel.

Mengenai apa itu perangkat lunak yang hendak dipasang, itu cerita lain. (NDA)

SPAM, Pencurian Identitas, dan Teknologi Sistem Temu Kembali
Ninja uses 4l4y language for on-the-fly encryption

SPAM, Pencurian Identitas, dan Teknologi Sistem Temu Kembali

Ninja uses 4l4y language for on-the-fly encryption

Ninja uses 4l4y language for on-the-fly encryption

Beberapa hari yang lalu banyak pengguna UI yang terjebak. Mereka mengirimkan pengguna dan sandi mereka. Setelah saya teliti, berikut salah satu pesan yang menipu:

PERINGATAN;

Kotak surat Anda telah melebihi batas penyimpanan 10GB ditetapkan oleh Anda
administrator, yang saat ini berjalan pada 10.9GB, Anda mungkin tidak dapat
untuk mengirim atau menerima pesan baru sampai Anda kembali memvalidasi kotak surat Anda.
Untuk memvalidasi kotak surat Anda, kirim informasi berikut di bawah ini:

Nama:
Username:
sandi:
Konfirmasi password ::
E-mail:
telepon:

Jika Anda tidak dapat memvalidasi kotak surat Anda, surat akan dinonaktifkan!

terima kasih
administrator sistem

Maaf atas ketidaknyamanan ini.
Kode verifikasi: en:06524
Surat Dukungan Teknis©2013

Surat ini ditulis dengan judul: “Penting Pesan”. Surat ini dikirimkan dari akun surel dari universitas lain (di luar negeri) yang telah dijebol terlebih dahulu. Nampaknya saat ini banyak kelompok penjebol yang hendak menggunakan situs-situs tak bersalah sebagai proksi. Mereka menggunakan social engineering untuk mendapatkan akun-akun orang yang tak awas.

Memang, nampaknya kerawanan sistem informasi di korporasi dewasa ini semakin meningkat. Tetapi, kali ini saya tak ingin membahas penyadapan korporasi atau teknik-teknik kepo tingkat tinggi. Anda bisa mencari referensinya sendiri ahem, zero tech hacker, ahem karena saya bukan orang yang ahli di sana. Yang saya cermati kali ini adalah kemampuan penerjemahan bahasa.

Menarik sekali bahwa dewasa ini bahasa Inggris diterjemahkan dengan semakin sempurna ke dalam Bahasa Indonesia. Untung saja Bahasa Indonesia menggunakan semantik Diterangkan Menerangkan. Hal ini yang menyebabkan diperlukan penyusunan kalimat lebih lanjut untuk dapat masuk akal di Bahasa Indonesia. Akan tetapi, melihat ketepatan surat penipuan ini, bukan tidak mungkin sebentar lagi mereka akan memiliki surat yang hampir sempurna.

Sebenarnya, dapat saja dibuktikan bahwa ini adalah palsu. Caranya yakni dengan memperhatikan penulisan yang digunakan. Sebagai surat formal kepada klien, tidak mungkin  penulisan dengan tanda baca dan penempatan huruf yang salah terjadi. Namun, bagi mata yang tidak awas dan panik, detail-detail seperti demikian mungkin terhilang.

Jangankan detail tersebut, bahkan di halaman depan Webmail UI jelas terpampang bahwa Admin UI tidak pernah meminta sandi. Pesan itu pun terkadang tidak diperhatikan. Memang, kepanikan membuat hidup jadi salah langkah dan sebagai manusia hal tersebut wajar. 🙂

Kendati saya pecinta Bahasa Indonesia, entah mengapa dalam hal ini saya justru bersyukur dengan keberadaan bahasa prokem. Bahasa prokem membuat penerjemahan kata bertambah sulit. Sifat bahasa prokem yang organik menyebabkan ia selalu berubah dengan zaman. Sehingga, ia seperti Anti Virus yang selalu diperbaharui.

Tentu saja, mengenai bahasa tidak lengkap rasanya tanpa menyebutkan bahasa prokem terkompleks sedunia: Bahasa 4l4y. Kombinasi angka, simbol, dan huruf sudah cukup pusing. Penambahan huruf/simbol/angka yang tak perlu membuat sebuah kata menjadi terdistorsi lebih jauh. Yang membuat Bahasa 4l4y sebagai sebuah bahasa sandi adalah penggunaan asosiasi yang luar biasa.

Asosiasi Pelafalan Sebagai Penerjemahan Bahasa 4l4y

Asosiasi yang dimaksud bukan hanya kalimat, tetapi juga penggunaan simbol dan penulisan kata-kata. Sungguh jenius. Berikut contoh petikan dari surat Opi A Bubu, seorang jenius yang mampu mengenkode Bahasa 4l4y:

tHanKz b’4„„„„„„
yOz aLaWAiCe d bEzT…………….
iN meYe heArD„„„„„„,

Tanpa mengurangi rasa hormat, saya pikir tak ada seorang pun di dunia ini yang bisa membuat mesin Turing untuk bisa mendekodekan bahasa ini. Tulisan ini unik karena memiliki banyak variasi percabangan untuk bisa mengartikannya. Sebagai contoh, saya, seorang manusia, akan memberitahu bagaimana saya tahu polanya, tetapi bukan cara mendapatkan pola tersebut.

Berikut hasil dekode hasil pertama:

  1. Yang pertama digunakan adalah variasi  kata thanks yang lazim digunakan. Perhatikan bahwa saya sudah memiliki kamus kata prokem dalam bahasa Inggris sebelumnya.
  2. Kata b’4 bisa bermakna berempat atau b (bi) 4 (four). Karena kata sebelumnya adalah bahasa Inggris, maka kali ini dipilih kata Inggris “before”. Sekali lagi, saya menggunakan kamus prokem karena b4 merupakan sebuah variasi kata prokem yang biasa digunakan dalam chatting. Biasanya kata ini dipakai dalam variasi “thx b4”.
  3. Simbol koma setelahnya dibuang karena tidak masuk akal. Namun, saya berpikir, mungkin pula ini dipakai sebagai penunjuk bahwa ada yang belum selesai — entah kalimat atau paragraf, walau pun asumsi awal saya berpikir itu adalah penanda bahwa baris pertama adalah sebuah kalimat yang belum selesai.
  4. Baris pertama dievaluasi sebagai kalimat “thanks before”. Otak saya melakukan optimasi dengan tidak mencari variasi arti yang lain karena paragraf ini terletak di akhir surat.

Kalimat kedua saya dekodekan sebagai berikut:

  1. Saya melewatkan kata pertama “yOz” karena tidak berarti apapun dalam kamus saya. Sejujurnya, tidak ada satu pun kata dalam baris ini yang terasosiasikan dengan bahasa prokem yang diketahui.
  2. Saya mengubah strategi saya dengan melafalkan kata-kata tersebut. Teknik ini mengasosiasikan pelafalan kata-kata tersebut dengan pelafalan kata-kata yang sudah diketahui dalam bahasa Inggris atau pun Bahasa Indonesia.
  3. Kembali, “yOz” tidak berarti apa pun karena asosiasi yang ada hanya “use” (bahasa Inggris), “Yosh” bahasa Jepang, atau mendekati kata “jus” Bahasa Indonesia. Ketiganya tidak masuk akal karena tidak mungkin ditaruh diawal kalimat. Itu sebabnya, diperlukan kata selanjutnya untuk bisa kembali ke kata pertama.
  4. Ketika di kata kedua “aLaWaiCe”, pelafalan kata tersebut terdengar seperti “always” (bahasa Inggris). Berhubung kalimat pertama adalah bahasa Inggris, maka besar kemungkinan kata tersebut berarti “always”.
  5. Karena sebelumnya menggunakan strategi asosiasi pelafalan bahasa Inggris, maka dua kata “d bEzT” diasosiasikan dengan bahasa Inggris dan diketemukan “the best”.
  6. Kalimat disusun ulang menjadi “yus always the best”. Dari pengujian, diketemukan bahwa kalimat tersebut masih belum utuh karena kata pertama.
  7. Untuk dapat mengartikan kata pertama, dicari penggunaan kalimat “[SMTH] always the best”. Otak saya melakukan optimasi dengan mendekatkan pencarian dengan mengganti “[SMTH]” dengan kata yang dekat bunyinya dengan “yus”.
  8. Akhirnya, diketemukan bahwa kata yang paling dekat adalah “you” (baca: you) dengan membuang pelafalan “s”. Maka, kalimat yang dimaksud adalah “you [are] always the best”.

Baris ketiga menjadi lebih mudah dengan baris pertama dan kedua.

  1. Kata “iN” dibaca sebagai “in”, untuk sementara tidak perlu dicari kata gantinya dan tidak ada pula kata prokem yang menggunakan simbol “iN”. Optimasi di otak saya memutuskan bahwa “in” sudah cukup masuk akal.
  2. Karena dari tadi secara konsisten digunakan kata Inggris, otak saya melakukan optimasi dengan menyempitkan kata “meYe” ke dalam konteks bahasa Inggris. Dari hasil pencarian diketemukan kata”my”.
  3. Kata “heArD” merupakan kata “heard” dalam bahasa Inggris. Kalimat yang terbentuk menjadi “in my heard”
  4. Ingat ketika saya bilang bahwa sepertinya tanda koma banyak merupakan tanda  penghubung? Dari situlah mulai disusun kalimat menjadi,”thanks before you [are] always the best in my heard”.
  5. Berhubung otak sudah mengetahui bahwa tulisan ini terkategorisasi sebagai surat, optimasi otak memroses kalimat tersebut sebagai surat-menyurat. Jenis surat yang digunakan sebagai penanda pun adalah surat cinta. Sebagai bagian dari surat, otak mengenali bahwa kata terima kasih lazim diberikan. Maka, kalimat tersebut bisa dibagi dua: “Thanks before. You [are] always the best in my heard”.
  6. Ada dua kemungkinan kalimat ini. Yang pertama, surat ini berbicara bahwa subyek akan selalu terdengar baik. Yang kedua, bila menggunakan asosiasi pelafalan, subyek akan selalu ada di hati. Kata “hati” memiliki nilai heuristik lebih tinggi dari pada “pendengaran”. Maka, untuk hasil terbaik dapat diterjemahkan bahwa kalimat tersebut adalah “Thanks before. You [are] always the best in my heart.”

Demikianlah selain menggunakan teknik stemming dan statistika, saya menawarkan penggunaan asosiasi pelafalan. Asosiasi yang dilakukan tidak bersifat binari, melainkan dapat pula bernilai fuzzy. Hal ini karena bahasa ini menggunakan sinonim bunyi yang mirip bukan identik. Proses dekode dapat berlangsung lama karena menggunakan backtracking dengan optimasi di beberapa tempat seperti kategori dan semantik kalimat.

Perlindungan Pesan Dengan Bahasa 4l4y yang Sesungguhnya

Apakah ini saja tantangannya? Tentu tidak, dalam penelaahan lebih lanjut saya menemukan bahwa bahasa ini menggunakan campuran Bahasa Indonesia, bahasa prokem, dan bahasa asing. Selain itu, saya menemukan kata yang telah diambil sinonimnya. Lalu sinonim tersebut dicari kata yang lafalnya sama. Jadi, bahasa 4l4y tidak sekedar permainan huruf dan angka saja seperti sebuah kamus sederhana yang berusaha meng-4l4y-kan bahasa.

Hal yang menarik dari studi amatir saya ini, saya menemukan bahwa kendati sulit untuk dipahami bagi kebanyakan orang, termasuk saya, sesama anak 4l4y dapat dengan mudah mengartikan semua tulisan itu dengan cepat. Mereka secara otomatis bisa menjawab pesan pendek satu sama lain seperti biasa. Bayangkan, sebuah bahasa kriptik yang telah tertanam di dalam otak manusia tanpa bisa diketahui oleh komputer.

Jadi, ketika Bahasa Indonesia telah dengan mudah dikenali oleh penerjemahan mesin dengan ketepatan hampir 99%, bahasa 4l4y dapat menjadi jawaban keluar untuk komunikasi yang aman. Tidak ada yang hina dengan itu. Para heker biasanya pun berkirim surel dengan bahasa kriptik. Mereka biasanya pun bertukar kunci publik dan berkomunikasi dengan GPG/OpenPGP.

Ada yang berani membuat Thesis/Disertasi bahasa 4l4y?

Blankon ke BlankOn
Pendekar Blankon berubah menjadi BlankOn!

Blankon ke BlankOn

Blankon Transform

Pendekar Blankon berubah menjadi BlankOn!

Suatu hari, perserikatan Ubuntu tempat Blankon bernaung memutuskan untuk menyeragamkan tampilan mereka kepada Unity. Pendekar Blankon kemudian keluar dari perserikatan itu dan masuk kepada perguruan Debian, tempat asal semua ilmu. Untuk itu, pendekar Blankon melepas seluruh persenjataan beratnya dan berubah menjadi pendekar BlankOn. Hal ini dilakukannya semenjak versi 8.0 (Rote).

Pendekar BlankOn lebih mengutamakan menggunakan ilmu kanuragan sehingga lebih ringan. Jurus Manokwari yang menjadi andalan mampu dirapalkan pada setiap kondisi.

Kendati terlihat lemah, tetapi seperti laiknya ninja, BlankOn menyusup di kegelapan bangsa. Siap membela kebenaran dan melepaskan negara ini dari kebutaan pengetahuan. Bagi pengguna BlankOn (rilis Rote dan yang terbaru), hikayat konfigurasi memanfaatkan cermin KAMBING.ui.ac.id telah tertulis di sini.

Bagi pengikut BlankOn 7.0 dan yang lebih lawas, para punggawa BlankOn telah memindahkan repositori ke blankon-legacy. Jikalau kisanak hendak memanfaatkan repositori untuk versi-versi tersebut, kisanak dapat menulis berikut di “sources.list”:

deb-src http://kambing.ui.ac.id/blankon-legacy pattimura main restricted extras extras-restricted

deb http://kambing.ui.ac.id/blankon-legacy pattimura-security main restricted extras extras-restricted

deb http://kambing.ui.ac.id/blankon-legacy pattimura-updates main restricted extras extras-restricted

Bilamana kisanak mempergunakan versi yang lain, kisanak dapat mengubah kata “pattimura” menjadi yang lain, misalnya “ombilin”. Selamat berjuang pendekar! Majulah bangsaku, majulah Indonesia!

Memindahkan WordPress Menjadi InnoDB

Memindahkan WordPress Menjadi InnoDB

Untuk situs blog dengan pengguna belasan ribu aktif, penggunaan mesin basis data InnoDB sudah tidak memadai lagi untuk MHS Blog. Setiap pengguna minimal menggunakan lima tabel. Satu tabel ada tiga berkas. Nah, kalikan semua itu dan kita mendapati jumlah yang fantastis dalam sebuah direktori.

Hal ini bisa diatasi dengan menggunakan ReiserFS. Sistemberkas ini mampu menampung banyak berkas kecil dalam sebuah direktori. Tetapi, tetap saja terjadi penurunan performa basisdata. Ketika saya ‘ls’ di direktori tersebut, cukup lama untuk bisa sampai bawah. Padahal, jumlah data tak sampai 3 GB.

Hmm… saya sempat berpikir, seandainya InnoDB punya fasilitas pencacahan, mungkin ia bisa menaruh berkas-berkas tersebut ke sub-sub direktori. Atau, seperti basisdata Oracle yang bisa mempartisi basisdata dalam banyak partisi.

Akhirnya, saya punya solusi satu, memindahkan seluruh tabel ke dalam format InnoDB. Menurut sebuah tautan di Internet, cukup menggunakan perintah:

ALTER TABLE nama_tabel ENGINE = InnoDB;

Wow, mudah sekali. Saya tertarik untuk menjalankannya.

Buat Cadangan Basisdata

Blog MHS sudah ada semenjak 2006, berarti sudah banyak mahasiswa yang menggunakannya. Pengetahuan yang terkoleksi tidak boleh hilang begitu saja. Basisdata perlu disalin. Ada dua cara, mematikan MySQL atau mengunci basisdata.

Saya memilih cara yang kedua, tetapi tampaknya efeknya sama saja. Entahlah…. Yuk, lanjut.

Pertama-tama, masuk ke dalam basisdata yang bersangkutan, saya harus menggunakan “-A” untuk mematikan fasilitas autocomplete agar bisa masuk ke mysql:

$ sudo mysql --defaults-file=/etc/mysql/debian.cnf -A basisdata_ku

Lalu, kunci basisdata:

mysql> FLUSH TABLES WITH READ LOCK

Saatnya menyelamatkan tabel-tabel sebelum dirubah. Tabel-tabel InnoDB dalam sebuah basisdata biasanya disimpan dalam sebuah direktori. Saatnya mengompres satu direktori tersebut:

mysql> SYSTEM tar cfvj /tmp/basisdata_ku.tar.bz2 /var/lib/mysql/basisdata_ku/

Setelah selesai, segera buka kembali kuncinya:

mysql> UNLOCK TABLES;

Ubah Menjadi InnoDB

Ada ratusan ribu tabel dan saya punya kehidupan. Untuk itu, saya menggunakan cara yang disarankan oleh Stackoverflow:

mysql> select concat('alter table ',table_name, ' engine = innodb;')
 -> from information_schema.tables
 -> where table_schema in ('basisdata_ku');

Tidak sampai semenit semua terubah. Nah, tinggal satu langkah lagi.

mysql> quit; -- JANGAN LUPA KELUAR!

Ubah Secara Baku Menggunakan InnoDB

Mulai MySQL 5.5, basisdata baru secara baku menggunakan InnoDB. Pantas saja walau tabel lama sudah InnoDB, tetapi untuk tabel baru bakal InnoDB. Menurut sebuah entri blog, WordPress tidak memilih mesin yang digunakan. Jadi, sepertinya hanya perlu mengganti konfigurasi MySQL.Tambahkan entri di ‘/etc/mysql/my.cnf ‘ sebuah nilai di bawah “[mysqld]” sebagai berikut:

[mysqld]
default-storage-engine = innodb

Letaknya tidak harus tepat sehabis “[mysqld]“. Yang penting di bawah entri tersebut. Lalu, jalanulangkan MySQL:

/etc/init.d/mysql restart

Selesai.

Rencana Masa Depan

Ada beberapa rencana:

  • Pindah dari InnoDB ke XTraDB untuk performa yang lebih baik. (Percona)
  • Atau coba Drizzle?
  • Taklukkan dunia. 🙂
Ini Pensil, Ini Mint

Ini Pensil, Ini Mint

Dari pada sedot pensil, mendingan sedot Linux Mint.


Biar tidak one liner: Selamat tahun baru.

Sepertinya Linux Mint butuh PHP. Tetapi, Anda bisa langsung saja menggunakan repo Linux Mint di KAMBING misalnya:

deb http://kambing.ac.id/mint lisa main upstream import backport romeo

Saya sebenarnya malas redundansi, tetapi dari tiga mirror asal Indonesia, UNEJ, IDRepo, dan UKDW, hanya repo UKDW saja yang menyala akhir Desember kemarin. Saya mau sedot UKDW, tapi saya tidak tahu apakah dia termasuk jaringan INHERENT. Saya bingung, di situs INHERENT tidak ada informasi daftar anggota INHERENT.

Oh, setelah saya cek, UNEJ sudah menyala. Yay! Tetapi sepertinya alamat mereka berubah menjadi: repository.unej.ac.id

Demikian laporan pandangan mata.

Masalah Serius Java

Masalah Serius Java

Bagi pengguna GNU/Linux, terutama Debian dan turunannya, terdapat dua masalah serius:

  1. Debian akan membuang Oracle Java dari repositorinya karena perubahan lisensi.
  2. Masalah keamanan serius pada protokol keamanan TLS/SSL yang menyebabkan seseorang dapat melakukan penyerangan (tidak spesifik GNU/Linux saja karena ini adalah kelemahan pada protokol).

Debian akan membuang Oracle Java dari repositorinya karena masalah lisensi. Hal ini terjadi karena lisensi SUN DLJ telah dicabut dan digantikan pada pembaharuan Java terbaru (J2SE 6 Update 29 dan J2SE 7). Oracle tampaknya mau mengusung OpenJDK sebagai satu-satunya solusi Java yang dapat didistribusikan oleh distro-distro GNU/Linux.

Kalau menurut pengalaman saya, OpenJDK kurang bagus. Terutama dalam bidang saya, kartu pintar. Saya melihat Oracle Java lebih stabil dalam mengimplementasi JSR 268. Waktu itu, mesin e-Akses yang menggunakan OpenJDK sering tidak responsif. Tentu saja, itu sudah lebih dari setahun yang lalu. Saya mungkin hendak mengujinya lebih lanjut.

Untuk pemakai akhir, setiap orang dapat mengunduh langsung Oracle Java di situsnya. Saya tidak tahu tentang perjanjian Canonical dan Oracle. Berhubung Oracle Java didistribusikan di repositori Canonical Partner, kemungkinan Ubuntu masih dapat mengakses Oracle Java.

Masalah yang kedua adalah ditemukan sebuah masalah serius pada protokol SSL 3.1 dan TLS 1.0. Galat yang bernama BEAST TLS (Browser Exploit Against SSL/TLS) ini membuat penyerang mengambil cookies dari situs yang terenkripsi sekalipun. Menurut BUG #689661 Mozilla, penyerang dapat mengambil cookies yang sedang aktif dan dapat menggunakan cookies tersebut untuk masuk ke dalam situs aman semacam Google, Paypal, atau situs mana pun yang menggunakan HTTPS.

Solusi sederhana dari Mozilla adalah dengan mematikan Java Plugin pada peramban. Kalau dari tulisan lain, mematikan dukungan SSL 3.0 dan TLS 1.0, hanya menggunakan protokol SSL 3.2, TLS 1.1, dan TLS 1.2 saja. Saya tidak tahu berapa situs yang sudah mendukung protokol TLS 1.1+. Lagipula, berapa, sih, versi peramban yang sudah mendukung TLS 1.1+?

Bagi rekan-rekan yang memiliki situs, tampaknya Anda perlu memperbaharui protokol HTTPS Anda dengan menggunakan protokol TLS 1.1+ atau SSL 3.2. Hal ini karena masalah BEAST bukan hanya spesifik pada Java.

TAMBAHAN:

Ternyata Oracle Java sudah tak lagi tersedia di Ubuntu. Pengguna Ubuntu juga harus mengunduhnya secara manual. Versi terakhir yang ada di Canonical Partner adalah J2SE 6 Update 26, sedangkan yang terbaru adalah Update 29.

Awas SPAM!

Awas SPAM!

Apa yang menyebabkan melawan SPAM di Indonesia selalu sulit? Ketidaktahuan banyak pengguna mau pun pengurus surel. Ini salah kita juga yang tidak bagi-bagi ilmu. Maka, saya mau bagi-bagi ilmu. Mengutip kata Iang, “ilmu, ya, untuk dibagikan”. Mengingat banyak orang Indonesia malas membaca, termasuk saya, saya buat versi TL;DR dari setiap bagian.

Perhatikan Kepala Surat

TL;DR: Bila kepala surat FROM dan REPLY-TO berbeda, kemungkinan SPAM.

Memberantas SPAM seperti tikus dan kucing. Pada dasarnya protokol sederhana di SMTP yang menyebabkan hal itu terjadi. Sebagai contoh, Anda bisa saja mengirim dengan kepala surat FROM: seseorang@gmail.com dan dikirim dari server non-GMail. Nah, sebagai pengguna awam, perhatikan ke mana ia dikirimkan kembali. Jangan sampai terkirim ke server lain.

Cek Konfigurasi

TL;DR: Cek apakah Anda bukan open relay dan sesuai dengan RFC.

Hei, jangan sembarangan sekedar bisa memasang postfix/qmail/[INSERT YOUR MAIL SERVER HERE] maka pekerjaan Anda selesai. Pastikan bahwa server Anda bukan open relay. Silakan gugel kata “open relay test” untuk situs-situs yang bisa digunakan untuk menguji server Anda. Open relay adalah sebutan untuk server SMTP yang digunakan untuk mengirimkan surel-surel tanpa perlindungan.

Beberapa server di Amerika ada yang sengaja seperti demikian karena prinsip kebebasan, namun kebanyakan server hanya karena salah konfigurasi. Pastikan server Anda bukan yang kedua. Bila server Anda dianggap sebagai open relay, kebanyakan server akan memblok Anda.

Pada mulanya, Internet berisi orang-orang sopan yang punya konsensus bernama RFC. Kebetulan sebagian besar admin surel di dunia masih memegang kode etik di RFC. Oleh sebab itu, banyak yang menolak surel yang tidak sesuai RFC.

RFC memang ada ribuan, tetapi tidak usah kuatir. Tidak perlu semua diketahui, tetapi sebagian yang saya tahu seperti berikut:

  1. Pastikan ada akun postmaster@domain.anda dan abuse@domain.anda. Pastikan kedua akun ini SPAM lover alias surel yang masuk ke dua alamat ini tidak diperiksa. Postmaster biasa digunakan oleh admin lain bila ada sebuah domain yang bermasalah. Abuse digunakan untuk pelaporan pengiriman spam.
  2. Pastikan HELO atau EHLO Anda menggunakan format domain yang benar. Jangan gunakan “localhost.localdomain”, tetapi gunakan domain kanonikal Anda. Domain kanonikal itu contohnya “smtp.domain.anda”.

Proteksi DNS

TL;DR: Gunakan DomainKey/DKIM dan SPF. Sering-sering cek apakah domain Anda masuk daftar DNSBL!

Ada banyak proteksi menggunakan DNS. Yang populer ada tiga:

  1. Menggunakan DomainKey/DKIM. Ini adalah membuat sertifikat untuk domain Anda yang kemudian setiap surat yang berasal dari domain Anda ditandatangani menggunakan kunci Anda. Server-server yang mendukung akan memeriksa surel dari domain Anda dengan menggunakan kunci publik yang Anda sematkan di dalam entri DNS.
  2. Menggunakan SPF. SPF adalah mekanisme di DNS yang memberi tahu server mana saja yang secara resmi mengirimkan surel Anda. Dengan membuat entri ini, Anda bisa menghindari jadi korban akibat ada server-server ilegal yang mengirimkan surel Anda. (lihat poin di atas untuk mengapa mereka bisa seperti tersebut)
  3. Menggunakan DNS BL. DNS BL adalah sebuah server DNS yang berisi daftar server-server yang dicekal karena pernah/berpotensi mengirimkan SPAM. Ada banyak penyedia server DNS BL. Pastikan Anda memantau server-server DNS BL yang sering digunakan oleh klien Anda, misalnya: Spamhaus, SPAMCop, senderbase, dll.

Wah….

Jam pulang kantor. Maaf, nanti kalau sempat, saya lanjutkan. Silakan tinggalkan komentar untuk tambahan lainnya. Silakan lihat WIKIPedia untuk keterangan lebih lanjut.

Oh, omong-omong, matikan auto responder seperti vacation. Anda tidak perlu menjawab keluar kantor. Kalau klien Anda penting, pastinya tahu telepon Anda. Apalagi, telepon pintar zaman sekarang sudah bisa digunakan untuk membaca surel.

Memasang Postgre-9.0 Di Debian Squeeze

Memasang Postgre-9.0 Di Debian Squeeze

Di saat penulisan ini, versi PostgreSQL terbaru yang tersedia adalah versi 9.0.4. Rencana saya adalah untuk memindahkan infrastruktur blog yang menggunakan MySQL ke PostgreSQL. Sayangnya, ternyata menurut tulisan-tulisan yang saya temui, PostgreSQL tidak didukung secara penuh seperti MySQL oleh WordPress. Jadi, tulisan ini sekedar pengingat saja untuk kebutuhan lain.

1 Tambahkan Repositori Paket Debian Squeeze Unstable

Ingat, tanda “#” berarti berjalan sebagai pengguna “root”.

# cat > /etc/sources.list.d/squeeze-backport.list << END
deb http://kambing.ui.ac.id/debian-backports/ squeeze-backports main non-free contrib
deb-src http://kambing.ui.ac.id/debian-backports/ squeeze-backports main non-free contrib
END

Tambahkan ke berkas “/etc/sources.list.d/squeeze-backport.list”. Seperti biasa, gunakan repositori lokal terdekat Anda.

Pasang PostgreSQL

# apt-get update
# apt-get -t squeeze-backports postgresql

Perintah terakhir akan memasang paket PostgreSQL dari repositori Debian Backport. Paket-paket Debian Backport seperti paket Debian Experimenta, perlu disebutkan secara manual.

Pertimbangan

Saya sengaja membuat perintah langsung dan tidak mem-pinned-kan paket PostgreSQL. Saya pernah mengalami pengalaman pemutakhiran paket PostgreSQL versi 7.x ke versi 7.4 dan hampir seluruh situs rusak. Jadi, menurut saya lebih baik kalau mau kita harus secara manual memutakhirkan paket basisdata ini.

Mungkin Anda punya pengalaman yang lebih baik. Silakan Anda gunakan metode yang menurut Anda optimal. Tetapi, saya lebih suka apa bila ada yang baru dengan memutakhirkan paket-paket PostgreSQL:

# apt-get -t squeeze-backport install postgresql

Perintah tersebut akan memutakhirkan postgresql dengan versi yang terbaru.

Installing Debian Squeeze on XServe 3.1

Installing Debian Squeeze on XServe 3.1

This tutorial is using a custom ISO of Ubuntu downloaded from here.

The Challenges

We have Apple XServe 3.1 servers here. They are equipped with a JBOD, Promise VTrek E610F. It connected via Fibre Channel. We have configured them for RAID6 28 TB.

The best part of the challenge is that XServe 3.1 use EFI. Some people would suggested us to use rEFIt and chainload it to GRUB2. We could use “bless” command from OSX.

The problem is, we have stripped the original 150 GB harddrive. The reason was because it was only had one drive without RAID. Data integrity was in question so we have to use only the JBOD.

Another problem is because PC BIOS couldn’t handle more than 2 TB. We just have to use GPT. Besides, GPT is the part of EFI.

So, I took the challenge to not use the OSX but to install directly from GNU/Linux installer from EFI to a GPT partition.

The Preparation

I got this challenge from my friend because he gave up on installing the XServe. From his previous attempt, I got 64 Bit Mac (AMD64) alternate install CD downloaded from Ubuntu. I don’t know where he got the ISO. Please download here. Not bad, I can use it to debootstrap the partitions.

To start, boot the CD and choose Expert Install. The Expert Install mode would let us select few things manually. Here’s the things that I’ve selected:

  1. Language: Indonesia – Bahasa Indonesia
  2. Keyboard: USA :: Macintosh :: No Compose Key
  3. Installer component from CD: [*] choose-mirror: To select mirror [*] network-console: To enable SSH server, I can configure from remote. [*] parted-udeb: To manually create partition.
  4. Configure the network.

If you don’t want to have remote install, you could disable network-console. In my case, I don’t like to be in the server room and to move XServe with its JBOD is daunting. I would like to configure everything from my nice warm room office.

After configuring the network jump to the run shell option. Or, after we have configure SSH credential, we could SSH to the machine with username “installer”. And choose to start a shell. Either way, we would be presented with a little console program: BusyBox. It isn’t feature-rich like BASH, but it serves right with compact size.

On The Shell

First, we partition our drive. We are using parted instead of fdisk because the later doesn’t support GPT partition type. The Apple’s EFI specification needs a FAT32 partition to load the EFI binary. That partition should be at the range of the first 2 TB disk. It doesn’t have to big, just few megs actually would do. So, here’s my partition:

  1. 20 MB FAT32 partition at the beginning with BOOT flag on.
  2. 20 GB partition for our GNU/Linux partition.

We have lots of RAMs, so we disable swap partition. But, yours might differ. From my research, the semantic web/4th paradigm world, it seems people prefer XFS because it is optimized for big data. So, from the beginning I choose XFS. Again, yours might differ. So, here’s the two commands:

# parted -s /dev/sda mklabel gpt mkpart EFI fat32 0% 20MB toggle 1 boot
# parted -s /dev/sda mkpart primary reiserfs 20MB 20GB
# mkfs.xfs /dev/sda2
# mount /dev/sda2 /mnt -t xfs

I have difficulty to format the FAT32 partition, I think the Installer CD is dying. So, I decided to format it later. Now, let’s install it via bootstrap it and copy the files that were configured earlier from the installer:

# debootstrap squeeze /mnt http://kambing.ui.ac.id/debian/
# cp /etc/{fstab,hostname,hosts,resolv.conf} /mnt/etc
# cp /etc/network/interfaces /mnt/etc/network/interfaces

BusyBox can’t do the array like the above. You have to parse it one by one (copy fstab, then hostname, and so on). I just put that way for convenience. Next, we mount the important filesystems and chroot to our new system. I explicitly use BASH instead of DASH, the default shell in Ubuntu.

# mount /dev /mnt/dev -o bind
# mount none /mnt/proc -t proc
# mount none /mnt/sys -t sysfs
# chroot /mnt /bin/bash

On Chrooted Shell: The Basic Packages

First thing to do is to add other repositories to “/etc/apt/sources.list”.

# cat > /etc/apt/sources.list << EOF
deb http://kambing.ui.ac.id/debian squeeze main contrib non-free
deb-src http://kambing.ui.ac.id/debian squeeze main contrib non-free 

deb http://kambing.ui.ac.id/debian-security/ squeeze/updates main contrib non-free
deb-src http://kambing.ui.ac.id/debian-security/ squeeze/updates main contrib non-free 

deb http://kambing.ui.ac.id/debian-backports/ squeeze-backports main contrib non-free
deb-src http://kambing.ui.ac.id/debian-backports/ squeeze-backports main contrib non-free
EOF

I put away the “>”  so you could just copy and paste above. Use a mirror near you. KAMBING is the nearest for me. Then, update and upgrade:

# apt-get update
# apt-get upgrade

Install essential applications. I’m using XFS, that’s why I install xfsprogs. Adjust it with your own filesystem tools. The dosfstools are for FAT32 and so on. I too put SSH server there.

# apt-get install xfsprogs dosfstools parted bash-completion less eject ssh

I’m use ViM. So, optionally, I do this:

# apt-get install vim
# update-alternatives --config editor
There are 3 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/nano            40        manual mode
  2            /usr/bin/vim.basic   30        manual mode
  3            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.

Next, we are going to change the preferences of our system.

On Chrooted Shell: Personalizing System

Let’s add a user with admin privileges. The default system, sudo is not installed. So, we must get it first

# apt-get install sudo
# adduser user
# adduser user sudo

Install and configure our language. Mine is “id_ID.UTF-8”. Also, configure clock (Timezone). Mine is “Asia/Jakarta”.

# apt-get install locales && dpkg-reconfigure locales
# dpkg-reconfigure tzdata

Time is crucial for server. Install NTP server to have our server clock right. Don’t forget to edit the editor to get our nearest NTP server.

# apt-get install ntp
# $EDITOR /etc/ntp.conf
# /etc/init.d/ntp restart

We can check the avaibility of the NTP servers.

# ntpq -p

Last thing, let’s install our Linux kernel.

# apt-get install linux-image-2.6-amd64 firmware-linux-nonfree

The next one is the most challenging one: making our server boot from EFI on GPT partition.

Building GRUB2 from Unstable

I have many failed attempts using the default grub-efi 1.98 from Squeeze. As I realize, the Natty installer is using 1.99 version of GRUB2. I decided to go to that route.

GRUB2 1.99 is available at unstable and must get backported to Squeeze. We must compile it ourselves. So, here’s how to.

Get all the requirements for GRUB2 in Squeeze. There is another optional package we need: libfuse-dev for building grub-mount. It can be skipped, but it’s not that bad to add few bytes on that functionality. We need also autogen because the GRUB2 source is taken from Bazaar.

# apt-get build-dep grub2
# apt-get install autogen libfuse-dev

Next, add Debian source repository for unstable/SID. Don’t add the binary, it will upgrade your system to unstable/SID.

# echo "deb-src  http://kambing.ui.ac.id/debian unstable main contrib non-free" > /etc/apt/sources.list.d/unstable.list
# apt-get update

Get the source.

# apt-get source grub2
# cd grub2-1.99/

We could build the package manually, but I prefer the Debian way. Fortunately, the showstopper of doing the Debian way is only the GCC requirement. Unstable/SID  is using gcc-4.5 while Squeeze using gcc-4.4. The solution is simple, find all the occurrences and change all of them.

# grep -ri "gcc-4.5" debian/*
debian/changelog:    - Build with gcc-4.5 on ppc64.
debian/control: gcc-4.5-multilib [i386 kopensolaris-i386 any-amd64 any-ppc64 any-sparc],
debian/control: gcc-4.5,
debian/rules:CC := gcc-4.5

There are three files that affected. You could use sed/awk, or using your favorite editor to change all of the gcc-4.5 to gcc-4.4. I’m using ViM with regex. Of course, it is advised that we change the version also. I’m not doing it because we are not trying to publish it. This build has bug, yet sufficient for our need. 😛

Okay, the next thing is to build all of the packages.

# dpkg-buildpackage -b -uc -d

All of the Debian packages are built on the top of our source directory. Let’s install all of the EFI versions. But wait, before you could install, the package needs to install efibootmgr, an application for setting the default drive to boot on UEFI (Universal EFI) compatible board. Unfortunately, XServe is using Apple’s own EFI implementation, so the application is useless. We must use bless, an application on OSX for that purpose. Oh, btw, install the ucf and os-probes.

# apt-get install efibootmgr ucf os-probes
# cd ..  && dpkg -i grub-common_1.99-11_amd64.deb \
    grub2-common_1.99-11_amd64.deb grub-efi-amd64*  \
    grub-efi_1.99-11_amd64.deb

Now, we are ready to get into the show.

Installing GRUB2 EFI

Before we take further, I want to say something. I am gratefully to the developer of the grub-install for making an undocumented parameter  –debug. That parameter saves me and made me to see what’s going on.

Okay, now we need to prepare our partition for EFI. It should be FAT32 and mounted at “/boot/efi”. Let’s create one.

# mkfs.vfat /dev/sda1
# mkdir -p /boot/efi && mount /dev/sda1 /boot/efi

Next, we run the GRUB installer.

# grub-install --bootloader-id=BOOT --removable --debug

The parameter “–bootloader-id=BOOT –removable” is what I found out after I analyze “/usr/sbin/grub-install” script. Basically, I want  GRUB2 installs its EFI file at “(hd0,gpt1)/EFI/BOOT/BOOTX64.EFI” (in its FAT32 partition). Some UEFI board may have other vendor such as Ubuntu, GRUB, etc. But, XServe doesn’t understand other vendor, yet. We could only use the default prefix where XServe’s EFI would search for EFI binary.

Don’t restart yet, because next is the most important one.

Fix GRUB2 EFI

You know why I used the “–debug”? It was because I kept on going to the GRUB Rescue mode with error message telling that GRUB could not found the proper disk. In the GRUB Rescue, I’ve found out that the prefix was wrong. The prefix was pointing to ” ((null),gpt2)/boot/grub”. Wew, that was wrong.

After I’ve found the problem, it seems that the “/usr/sbin/grub-install” didn’t generate the right prefix. From the debug, I’ve found the culprit:

... (OMITTED by me)
+ /usr/bin/grub-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/grub/core.efi --prefix=(,gpt2)/boot/grub xfs part_gpt
... (OMITTED by me)

I couldn’t found out what went wrong. The solution is to generate the EFI binary manually.

# /usr/bin/grub-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/grub/core.efi --prefix="(hd0,gpt2)"/boot/grub xfs part_gpt
# cp /boot/grub/core.efi /boot/efi/EFI/BOOT/BOOTX64.EFI

These two lines were the thing that the “/usr/sbin/grub-install” used incorrectly.

Configuring GRUB2 Settings

We need to add lines so that the screen won’t messed up. We disable the modeset and keep the screen resolution. Use:

# dpkg-reconfigure grub-efi-amd64

and add  “nomodeset  gfxpayload=keep” to the “Linux command line:” option. Or edit “/etc/default/grub and put the string to GRUB_CMDLINE_LINUX.

THE END

After we install, we can do two things. First, we call update-grub to detect all of available kernels. And, we could add “/boot/efi” to “/etc/fstab”.

# update-grub
# echo "/dev/sda1       /boot/efi       vfat    defaults        0       0" >> /etc/fstab

Last step is reboot and having your new system shines.

FIN.

UPDATE

As Isaac Alcocer pointed out on his comment, using the LTS Ubuntu 12.04 might be the easiest way. With it, you would only have to edit the GRUB.