Posts filed under ‘Operating System’
Memakai VIM di Windows 7
Suatu hari, saya ingin melakukan perubahan konfigurasi domain GlasshFish yang ter-install di Windows 7. Seperti kebanyakan aplikasi multiplatform lain, konfigurasi GlassFish tersimpan dalam sebuah file yang bisa di-edit oleh administrator-nya. Kebanyakan aplikasi multiplatform tidak menyimpan konfigurasi di registry, sehingga pengguna tidak dapat mengedit melalui tools GUI seperti regedit. Hal ini masuk akal, karena registry hanya berlaku di Windows. Cara yang paling efektif dan efisien memang dengan menuliskannya ke dalam sebuah file, karena seluruh platform lain seperti Linux, MacOS, & UNIX, dapat membaca dan menulis isi file.
“Mengedit file” terdengar sangat sederhana, tetapi bagi saya, hal ini menjadi sedikit merepotkan di Windows 7, terutama bila ingin langsung mengedit sebuah file secara langsung tanpa meninggalkan Command Prompt. Selama ini, saya tidak pernah menemukan masalah dalam mengedit file saat berada di console UNIX dan turunannya, karena hampir semua sistem operasi tersebut menyertakan editor teks VI atau VIM. Sejujurnya, saya sedikit kebingungan bila memakai VI, tetapi tidak sulit untuk men-upgrade-nya menjadi VIM (Vi IMproved).
Seandainya, saya sedang berada di Command Prompt Windows 7 (misalnya, untuk memanggil tools asadmin bawaan GlashFish), lalu saya ingin mengedit file konfigurasi domain. Hal pertama yang saya pikirkan adalah notepad.exe, sebuah editor sederhana bawaan Windows dari berbagai generasi. Di Command Prompt, saya bisa mengetikkan seperti berikut ini:
C:\>notepad domain.xml
Akan muncul program Notepad beserta isi file domain.xml seperti berikut ini:
Kenapa setiap baris jadi saling sambung menyambung seperti itu? Di platform UNIX dan turunannya (Linux, MacOS X, dan sebagainya), pemisah baris hanya satu karakter, yaitu karakter LF (Line Feed) yang diwakili karakter ASCII 10 (simbol ‘\n’). Sementara itu, di platform Windows, pemisah baris terdiri atas dua karakter, yaitu karakter CF (Carriage Return) yang diwakili karakter ASCII 13 (simbol ‘\r’) baru diikuti dengan LF (Line Feed). Notepad tidak menemukan karakter ‘\r\n’ sehingga tidak akan ada pemisah baris.
Masih ada sebuah solusi, yaitu editor dalam Command Prompt yang bernama edit.exe. Sungguh tidak disangka editor yang populer di zaman DOS seperti ini masih ada di generasi Windows 7. Untuk memakai edit.exe, saya memberikan perintah seperti berikut ini:
C:\>edit domain.xml
Akan muncul tampilan seperti berikut ini:
Sekarang file sudah dapat dibaca dan ditampilkan dengan rapi. Akan tetapi, edit.exe memiliki banyak kelemahan dalam mengedit file. Salah satunya adalah harus sering menggeser layar (tidak ada fitur word-wrap) dan tidak ada syntax highlighting. Bagaimana bisa fitur editor di Windows kalah dari editor VIM bawaan sistem operasi gratis seperti Linux?
Saya akhirnya memutuskan untuk menginstall VIM versi Windows di Windows 7 saya. VIM dapat didownload di situs resmi-nya. Untuk platform Windows, sudah tersedia installer yang dapat melakukan proses instalasi secara otomatis.
Setelah meng-install VIM, saya menambahkan direktori instalasi VIM di environment variables Path sehingga saya dapat langsung memanggil editor tersebut di Command Prompt. Caranya adalah dengan membuka tab Advanced di System Properties. Kemudian klik pada tombol Environment Variables… Pada dialog yang muncul, cari Path di bagian System Variables, kemudian klik Edit… Saya menambahkan C:\Program Files\Vim\vim73 di bagian paling akhir (pisahkan dengan direktori sebelumnya dengan menggunakan tanda “;“).
Karena saya terbiasa memanggil VIM dengan mengetik vi di Linux, maka saya menambahkan symbolic link vi yang merujuk ke vim.exe. Caranya adalah dengan membuka Command Prompt sebagai superuser (tahan Ctrl+Shift) pada saat men-klik shortcut Command Prompt, lalu berikan perintah seperti berikut ini:
C:\>cd "C:\Program Files\Vim\vim73" C:\Program Files\Vim\vim73>mklink vi.exe vim.exe symbolic link created for vi.exe <<===>> vim.exe
Sekarang, saya dapat mengedit file konfigurasi GlassFish tersebut dengan memberikan perintah seperti berikut ini:
C:>vi domain.xml
Akan muncul tampilan seperti berikut:
Kali ini, saya akan mendapatkan tampilan yang familiar seperti di Linux. Tidak seperti di edit.exe, VIM secara otomatis melakukan word-wrap dan memberikan syntax highlighting (pewarnaan) sehingga lebih mudah mencari bagian yang akan di-edit. Pertama kali memakai VIM memang bisa jadi rumit (tidak ada menu, perintah diberikan dengan mengetikkan huruf seperti :wq untuk save dan keluar). Akan tetapi bila sudah terbiasa, VIM bisa menjadi sebuah editor yang sangat powerful. Misalnya dengan memberikan perintah :set nu! dan :set wrap!, saya dapat mengaktifkan line number dan word wrap sehingga tampilan VIM terlihat seperti:
VIM memiliki banyak fitur menyenangkan lainnya, dan tentu saja, jauh lebih powerful dibanding edit.exe dan Notepad.exe bawaan Windows terutama bagi programmer. Selain itu, VIM juga lebih ringan dan gratis bila dibanding editor berbasis GUI (misalnya editor komersial UltraEdit). Dengan adanya VIM di Windows, akhirnya saya bisa sedikit lebih betah memakai console di Windows (entah mengapa masih merasa tidak seperti di Linux).
I/O Programming: Mengatur Lampu LED di Keyboard
Belakangan ini saya kerap bertemu dengan seorang dosen yang mengajar mata kuliah sistem operasi, dan kami sering terlibat dalam diskusi menarik. Mengajarkan materi sistem operasi yang berorientasi praktek membutuhkan tantangan lebih besar. Hal ini tidaklah berlebihan, karena kebanyakan teori sistem operasi tidak cukup berguna untuk dipakai dalam membuat sistem operasi. Misalnya, dalam mata kuliah sistem operasi, hampir tidak pernah membahas tentang keyboard controller. Tetapi, pada kenyataannya, pemahaman akan cara kerja keyboard controller wajib dibutuhkan dalam pembuatan sebuah sistem operasi.
Untuk membaca dan menulis informasi ke keyboard controller, seseorang perlu membaca dan menulis port 0×60 dan 0×64. Dengan membaca port 0×64, programmer dapat mengetahui status keyboard controller. Dengan menulis pada port 0×60, seseorang dapat mengirimkan perintah pada keyboard controller. Misalnya, dengan mengirim nilai 0xED pada port 0×60, programmer dapat mengatur indikator LED apa saja yang nyala yang diwakili dengan nilai berikutnya yang dikirim pada port 0×60.
Pertanyaan pertama yang harus dijawab adalah platform apa yang harus dipergunakan oleh mahasiswa? Bahasa pemograman yang dipergunakan dapat berupa assembly dan C, dimana bahasa C adalah pilihan yang lebih masuk akal. Bila menggunakan platform Windows, maka mahasiswa akan memakai Visual C++, sebuah tools standar untuk pemograman low-level di Windows. Sayangnya, penggunaan fungsi _inp() dan _outp() di Visual C++ dibatasi hanya pada pemograman driver saja. Hal ini dilakukan dengan alasan keamanan, sehingga tidak sembarangan aplikasi boleh melakukan akses I/O yang notabene dapat berbahaya sekali. Pilihan lain adalah menggunakan platform lain, misalnya menggunakan sistem operasi Linux. Pada Linux, tersedia fungsi ioperm() yang memungkinkan program biasa melakukan operasi I/O. Syaratnya adalah program tersebut dijalankan dengan hak akses super user.
Berikut adalah sebuah contoh program C di Linux yang membuat LED keyboard (LED indikator num lock, caps lock, dan scroll lock) menyala berurutan:
#include <stdio.h>
#include <unistd.h>
#include <sys/io.h>
void kirimCommand(char command) {
char c = 0;
while (1) {
c = inb(0x64);
if ((c&2)==0) break;
}
outb(command, 0x60);
}
int main() {
if (ioperm(0x60,5,1)) {
printf("Program tidak memiliki hak akses\n");
return -1;
}
printf("Perhatikan indikator LED di keyboard!\n");
int i=0;
char statusLED = 1;
while (i<100) {
kirimCommand(0xED);
kirimCommand(statusLED);
if (statusLED==4) statusLED=1; else statusLED<<=1;
i++;
sleep(1);
}
}
Pada fungsi kirimCommand(char command) di atas, setiap kali sebelum mengirim command ke port 0×60, program akan memeriksa apakah buffer input sudah kosong. Hal ini dilakukan dengan membaca status keyboard controller di port 0×64, dan memeriksa isi dari bit 2.
Variabel statusLED berisi pola LED yang akan dinyalakan nantinya. Hanya tiga bit yang dipakai, yaitu bit 0 untuk LED Scroll Lock, bit 1 untuk LED Caps Lock, dan bit 2 untuk LED Num Lock.
Setelah itu, program dapat di-compile dengan gcc dan dijalankan, dengan memberikan perintah seperti:
$ gcc -o keyboard keyboard.c $ sudo ./keyboard [sudo] password for user: Perhatikan indikator LED di keyboard!
Memakai Snort Sebagai IPS Di Notebook
Kedengarannya memang aneh, kenapa harus menjalankan Snort di notebook? Bukankah biasanya Snort IPS dijalankan pada komputer server yang memiliki dua network card (NIC) terpisah? Tapi, bukanlah hal mustahil untuk menjalankan Snort tanpa melalui bridging (dua network card). Artikel ini mengasumsikan penggunaan DAQ module NFQ seperti yang dituliskan di artikel sebelumnya. Artikel ini juga mengasumsikan penggunaan Linux UBuntu 10 LTS. Setelah Snort berhasil dikonfigurasi dan dijalankan dengan baik, yang perlu dilakukan sekarang adalah melakukan pengaturan iptables.
Jika memakai Snort sebagai IPS pada notebook atau komputer yang dipakai untuk berselancar di Internet, pengguna harus memilih untuk mengorbankan rules di iptables atau tidak:
- Seluruh packet yang masuk pertama kali akan diterima oleh modul Netfilter di Ubuntu. Untuk pendeteksian secara maksimal, packet yang masuk dapat dengan segera dialihkan ke Netfilter Queue guna diolah oleh Snort. Akan tetapi, packet tersebut tidak dicocokkan satu per satu dengan rules iptables lainnya lagi.
- Atau, packet yang masuk dapat di-saring dulu dengan rules di iptables, baru kemudian packet yang lolos dialihkan ke Netfilter Queue untuk diolah oleh Snort. Kekurangannya adalah Snort tidak memperoleh packet yang mengidentifikasikan serangan secara lengkap, karena beberapa packet mungkin sudah disaring terlebih dahulu oleh Netfilter.
Apapun metode yang dipakai, semuanya melibatkan penambahan rules di iptables untuk mengalihkan packet ke Netfilter Queue. Yang membedakan adalah urutan/posisi rule tersebut. Rules tersebut terlihat seperti:
iptables -A INPUT -j QUEUE iptables -A OUTPUT -j QUEUE
Tentunya pengguna dapat menambahkan parameter lainnya sesuai kebutuhan dan selera, tetapi yang harus ada adalah -j QUEUE yang menunjukkan bahwa packet akan ditampung oleh Netfilter Queue. Bila tidak aplikasi yang membaca queue, misalnya Snort sedang tidak berjalan, maka packet akan di-drop.
Bagi yang menggunakan ufw (uncomplicated firewall), dapat langsung mengedit file yang ada di /etc/ufw/after.rules atau /etc/ufw/before.rules. Jangan lupa mematikan dan menyalakan kembali firewall setelah melakukan perubahan pada file. Sebagai contoh, seseorang dapat menambahkan baris berikut pada /etc/ufw/after.rules:
-A ufw-after-input -j QUEUE -A ufw-after-output -j QUEUE
Langkah selanjutnya, karena Snort dipakai pada “perangkat desktop” yang menjalankan banyak program sehari-hari dan belum tentu stabil, pengguna sebaiknya menambahkan program Snort pada daftar daemo yang diproses oleh Upstart di Ubuntu. Upstart adalah sebuah program bawaan di Ubuntu yang memiliki fungsi seperti /etc/inittab di UNIX. Upstart dapat memantau proses Snort, dan bila oleh suatu hal, Snort harus berhenti dijalankan, Upstart akan secara otomatis “menghidupkan” Snort kembali.
Buat sebuah file baru di direktori /etc/init, misalnya /etc/init/snort.conf yang memiliki isi seperti berikut ini:
start on started ufw stop on stopping ufw respawn exec /usr/bin/snort --daq nfq -D -c /etc/snort.conf -Q
Pada konfigurasi di atas, Snort akan dijalankan setelah ufw, dan akan dimatikan sebelum ufw dimatikan. Hal ini dilakukan karena Snort memakai modul NFQ yang berkaitan erat dengan iptables. Jangan lupa untuk menyertakan respawn yang berarti proses akan secara otomatis dihidupkan kembali bila tidak dimatikan melalui Upstart.
Setelah ini, restart komputer, dan berikan perintah seperti:
#initctl list
...
snort start/running, process 2084
...
Hal ini memperlihatkan bahwa Upstart telah menjalankan Snort secara otomatis begitu notebook/komputer rumah dijalankan, dan akan terus menjaga agar proses Snort senantiasa aktif.
Snort IPS Di Ubuntu 10 LTS
Instalasi Snort di Ubuntu 10 LTS memang tidak sulit, cukup mengikuti langkah step-by-step yang disediakan oleh pembuatnya yang dapat di-download dalam bentuk PDF di http://www.snort.org/assets/158/011-snortinstallguide2905.pdf. Akan tetapi, setelah mengikuti langkah-langkah tersebut, Snort berjalan sebagai IDS (Intrusion Detection System). Sebagai IDS, Snort hanya menganalisa packet yang ada dan memberikan peringatan bila terjadi serangan dari hacker. Jika seperti ini kasusnya, IDS dikatakan bekerja dalam modus passive. Bila ingin Snort memblokir upaya serangan dan memberikan respon atas serangan hacker, maka Snort harus bekerja sebagai IPS (Intrusion Prevention System). Snort akan berfungsi sebagai IPS bila berjalan dalam modus inline.
Bila dijalankan secara standard, Snort akan memakai DAQ module bernama pcap. DAQ Module pcap ini tidak mendukung modus inline, sehingga administrator yang ingin menjalankan Snort sebagai IPS harus memakai DAQ module lain. Untuk melihat apa saja DAQ module yang ada, berikan perintah seperti:
# snort --daq-list
Available DAQ modules:
pcap(v3): readback live multi unpriv
ipfw(v2): live inline multi unpriv
dump(v1): readback live inline multi unpriv
afpacket(v4): live inline multi unpriv
Hasil output tersebut menunjukkan bahwa pcap tidak mendukung modus inline. Salah DAQ Module bawaan, yaitu NFQ yang memakai Netfilter, sama sekali tidak terlihat. Padahal Netfilter dan iptables merupakan dasar yang membentuk fungsi packet filtering di kernel Linux.
Langkah pertama yang harus dilakukan agar DAQ Module nfq dibuat adalah dengan meng-install paket libnetfilter-queue-dev (beserta paket yang dibutuhkanya seperti libnetfilter-queue1 dan lainnya). Di Ubuntu 10 LTS, paket tersebut masih belum ter-install sehingga administrator perlu meng-install dengan menggunakan apt-get (berbasis console) ataupun Ubuntu Software Center (berbasis GUI).
Langkah berikutnya, upgrade libpcap menjadi versi terbaru, yang dapat didownload di www.tcpdump.org. Ubuntu 10 LTS datang dengan repository yang berisi libpcap0.8. Versi libpcap ini memiliki bug yang menyebabkan Snort akan berhenti berjalan dan memberikan pesan kesalahan yang berkaitan dengan log_tcpdump dimana pesan-nya adalah Snort tidak dapat menulis pada file /var/log/snort (atau lokasi direktori log yang telah ditentukan sebelumnya). Pesan kesalahan ini cukup menipu, karena sama sekali tidak berhubungan dengan permission di direktori tersebut, dan akan hilang setelah meng-upgrade ke versi libpcap yang lebih baru, misalnya libpcap-1.1.1. Karena repository Ubuntu 10 LTS tidak menunjukkan adanya upgrade versi terbaru dari libpcap, download source secara manual, kemudian jalankan script GNU Autoconf yang disediakan, seperti:
# ./configure --prefix=/usr ... config.status: creating pcap_open_dead.3pcap config.status: creating pcap_open_offline.3pcap config.status: creating config.h # make ... mv pcap-config.tmp pcap-config chmod a+x pcap-config # make install ...
Langkah berikutnya adalah menjalankan script GNU Autoconf untuk DAQ. Source-nya dapat di-download di http://www.snort.org/downloads/860. Seperti biasa, jalankan dahulu script configure:
# ./configure
...
Build AFPacket DAQ module.. : yes
Build Dump DAQ module...... : yes
Build IPFW DAQ module...... : yes
Build IPQ DAQ module....... : no
Build NFQ DAQ module....... : yes
Build PCAP DAQ module...... : yes
Pastikan bahwa pada NFQ DAQ module terdapat tulisan yes sehingga nantinya module NFQ akan dibuat. Setelah itu, seperti biasa, berikan perintah make dan make install.
Berikutnya, lakukan hal yang sama dengan source Snort yang dapat di-download di http://www.snort.org/downloads/867. Berikan perintah seperti:
# ./configure --enable-ipv6 --enable-gre --enable-mpls --enable-targetbased \ --enable-decoder-preprocessor-rules --enable-ppm --enable-perfprofiling \ --enable-zlib --enable-active-response --enable-normalizer --enable-reload \ --enable-react --enable-flexresp3 ... # make ... # make install ...
Langkah terakhir adalah menjalankan Snort dengan argumen khusus sehingga ia bekerja dalam modus inline sebagai IPS. Sebagai contoh, Snort dapat dijalankan dengan parameter seperti berikut ini:
# snort --daq nfq -c /etc/snort/snort.conf -Q
...
nfq DAQ configured to inline.
Reload thread starting...
...
Option –daq menentukan module DAQ yang akan dipakai Snort, yaitu NFQ. Option -c menentukan lokasi file konfigurasi Snort yang tentunya bisa berbeda-beda sesuai kebiasan setiap administrator. Option -Q menunjukkan bahwa Snort harus bekerja dalam modus inline. Bila Snort bekerja sebagai IPS, akan terdapat baris yang isinya seperti “nfq DAQ configured to inline.“
Pengenalan Snort
Salah satu aplikasi Linux yang dapat dipakai untuk meningkatkan keamanan komputer adalah Snort. Secara garis besar, Snort adalah sebuah program yang memiliki tiga fungsi atau tiga modus operasi. Snort dapat dipakai dalam packet sniffer mode sehingga bekerja sebagai sniffer sama seperti Wireshark. Sama seperti Wireshark, Snort juga dapat menyimpan setiap packet yang di-capture ke dalam media penyimpan di modus packet logger mode. Akan tetapi berbeda dengan Wireshark, Snort dapat dipakai sebagai komponen NIDS dengan menjalankannya pada Network Intrusion Detection System (NIDS) mode. Pada modus yang terakhir ini, Snort akan menganalisa packet berdasarkan rule yang ada untuk mengenali adanya upaya serangan hacker.
Untuk memulai menggunakan Snort, download requirement serta source Snort, kemudian build & install. Bagi yang memakai distro Ubuntu, libdnet di distro tersebut adalah library yang berbeda dengan yang dibutuhkan Snort. Di Ubuntu, libdnet adalah DECNet libraries, sementara yang dibutuhkan oleh Snort diganti namanya menjadi libdumpnet. Sebaiknya download source dari Google Code, kemudian install ke lokasi /usr, bukan /usr/local. Caranya adalah dengan menambahkan argumen - -prefix=/usr pada saat memanggil script configure.
Berikut adalah contoh menjalankan Snort sebagai packet sniffer:
$ sudo snort -v
Running in packet dump mode
--== Initializing Snort ==--
Initializing Output Plugins!
pcap DAQ configured to passive.
Acquiring network traffic from "eth0".
Decoding Ethernet
--== Initialization Complete ==--
,,_ -*> Snort! <*-
o" )~ Version 2.9.0.5 (Build 135)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
Copyright (C) 1998-2011 Sourcefire, Inc., et al.
Using libpcap version 1.1.1
Using PCRE version: 8.12 2011-01-15
Commencing packet processing (pid=31839)
06/05-12:07:03.524481 192.168.1.200:45263 -> 192.168.1.5:53
UDP TTL:64 TOS:0x0 ID:63753 IpLen:20 DgmLen:73 DF
Len: 45
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
06/05-12:07:03.582863 192.168.1.5:53 -> 192.168.1.200:45263
UDP TTL:255 TOS:0x0 ID:4887 IpLen:20 DgmLen:186 DF
Len: 158
...
===============================================================================
Run time for packet processing was 27.619079 seconds
Snort processed 19 packets.
Snort ran for 0 days 0 hours 0 minutes 27 seconds
Pkts/sec: 0
===============================================================================
Packet I/O Totals:
Received: 19
Analyzed: 19 (100.000%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 0 ( 0.000%)
Injected: 0
===============================================================================
...
Untuk mencatat rekaman packet ke dalam file teks, Snort bisa dijalankan dengan memberikan perintah seperti:
snort -dev -l ./log
Perintah di atas akan menulis rekaman packet ke dalam direktori log (direktori ini harus sudah dibuat sebelumnya).
Dan untuk modus NIDS, tambahan argumen -c yang merujuk ke file konfigurasi Snort, seperti berikut ini:
snort -d -l ./log -c snort.conf
Pada perintah di atas, file konfigurasinya bernama snort.conf.
Untuk menjalankan Snort sebagai daemon (background process yang terus berjalan), tambahkan argumen -D seperti pada contoh ini:
snort -d -l /var/log/snort.log -c /etc/snort.conf -D
Bicara soal file konfigurasi, berikut adalah contoh isi file konfigurasi:
var LOG_IP 100.10.12.13 alert tcp $LOG_IP any -> any any (msg: "Akses Dari Dia"; sid:1;)
File konfigurasi di atas menyebabkan Snort menghasilkan alert dalam file bernama alert setiap kali IP 100.10.12.13 melakukan akses TCP, dengan pesan berupa “Akses Dari Dia”. Tentu saja ini adalah contoh konfigurasi sederhana yang tidak banyak berguna, akan tetapi cukup untuk menunjukkan syntax file konfigurasi Snort yang lumayan rumit. Contoh di atas mengandung sebuah variabel IP bernama LOG_IP. Variabel tersebut dapat digunakan dengan menulis $LOG_IP yang akan disubstitusi dengan nilai yang sesungguhnya.
Argumen yang biasanya diberikan saat memanggil Snort juga dapat dituliskan ke file konfigurasi sehingga tidak perlu diberikan secara manual pada saat menjalankan Snort, seperti pada contoh berikut:
#sama dengan argumen -D config daemon #sama dengan argumen -d config dump_payload #sama dengan argumen -l config logdir: /var/log/snort var LOG_IP 192.168.1.2 alert tcp $LOG_IP any -> any any (msg: "Akses Dari Dia"; sid:1;)
Gunakan preprocessor untuk memakai processor yang sudah disediakan oleh Snort. Sebagai contoh, untuk mendeteksi terjadinya port scanning, tambahkan konfigurasi berikut:
preprocessor stream5_global:\
track_tcp yes, track_udp yes, track_icmp yes
preprocessor stream5_tcp:\
policy first
preprocessor stream5_udp
preprocessor stream5_icmp
preprocessor sfportscan:\
proto { all } \
scan_type { all } \
sense_level { high }
Konfigurasi di atas akan memakai preprocessor sfPortScan dari Source Fire. Syarat untuk memakai sfPortScan adalah menggunakan preprocessor Stream5. Sekarang, bila seseorang melakukan port scanning (yang merupakan tahap awal dalam serangan), misalnya dengan menggunakan tool Nmap:
$ nmap -A -v 192.168.1.22
Maka, Snort akan menghasilkan alert seperti berikut ini:
[**] [122:1:0] (portscan) TCP Portscan [**] [Priority: 3] 06/06-03:34:13.052153 192.168.1.49 -> 192.168.1.22 PROTO:255 TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:158 DF
Alert tersebut menunjukkan bahwa seseorang dari IP 192.168.1.49 melakukan port scanning untuk komputer dengan IP 192.168.1.22.
Mengatur Firewall Di Ubuntu
Berhubung sedang memiliki waktu luang, saya men-download Ubuntu terbaru, yaitu Ubuntu 11. Btw, memeriksa versi Ubuntu yang ter-install bisa dilakukan dengan memberikan perintah:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.04 Release: 11.04 Codename: natty
Kesan pertama sama sekali tidak seperti yang saya harapkan, karena tiba-tiba di layar monitor muncul tulisan “Display Out Of Frequency”. Masalah resolusi? Kalau di monitor CRT zaman dahulu, bisa jadi monitor sudah rusak (tidak ada pengaman kalau frekuensi yang dipakai melewati batas frekuensi yang didukung monitor).. Untung saja lampu harddisk masih menunjukkan aktifitas, setelah proses GRUB berakhir, gambar di monitor tampil seperti biasanya. Semua mulai lancar setelah mengedit file /etc/default/grub, dengan menghilangkan tanda komentar (#) di file tersebut:
# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE=640x480
Jangan lupa update GRUB yang sesungguhnya dengan memanggil update-grub, setelah restart komputer, tampilan GRUB muncul kembali seperti biasanya.
Langkah pertama yang ingin saya lakukan adalah melakukan pengamanan pada sistem operasi yang baru terinstall ini. Hal ini dapat dilakukan dengan melakukan konfigurasi netfilter dengan perintah iptables. Akan tetapi bila perintah iptables dirasa terlalu rumit, Ubuntu menyediakan cara gampangnya yaitu dengan perintah ufw yang merupakan kepanjangan dari uncomplicated firewall. Perlu diperhatikan bahwa ufw bukanlah firewall-nya, melainkan hanya sebuah tool untuk mempermudah pengaturan firewall.
Fakta pertama yang harus diketahui adalah pada awalnya, firewall ‘dimatikan’. Ini berarti tidak ada filter yang terjadi. Untuk ‘menyalakan’ firewall melalui ufw, dapat menggunakan perintah seperti berikut:
# ufw enable Firewall is active and enabled on system startup
Seorang yang paranoid pasti akan memastikan seluruh aktifitas masuk dan keluar di-blokir, dengan memberikan perintah seperti:
# ufw default deny incoming Default incoming policy changed to 'deny' (be sure to update your rules accordingly) # ufw default deny outgoing Default outgoing policy changed to 'deny' (be sure to update your rules accordingly)
Setelah ini, perintah untuk mengatur firewall dapat diberikan. Sebagai contoh, untuk membolehkan hanya akses HTTP dan HTTPS keluar (termasuk akses DNS), berikan perintah seperti:
# ufw allow out http Rule added # ufw allow out https Rule added # ufw allow out 53/udp Rule added
Untuk melihat daftar rule yang sudah ada, berikan perintah seperti:
# ufw status Status: active To Action From -- ------ ---- 80/tcp ALLOW OUT Anywhere 443 ALLOW OUT Anywhere 53/udp ALLOW OUT Anywhere
Shortcut Bug Di Windows
Belakangan ini terjadi sesuatu hal yang saya anggap mustahil. Seorang mahasiswi meminta copy modul presentasi dari notebook, dan saya tanpa pikir panjang langsung memasukkan flashdisk-nya ke dalam notebook. Saya sudah mematikan fitur autorun.inf, dan saya selalu membuka file di UFD dengan hati-hati. Dan tiba-tiba, surprise, notebook saya terserang virus!! Apa yang sebenarnya terjadi?? Flashdish-nya penuh dengan shortcut, dan tidak ada tanda-tanda autorun.inf! Tapi tetap saja virus bisa menyebar dengan mudah? Setelah tiba di rumah, saya mencoba browse sebentar, dan akhirnya menemukan alasannya: semua versi Windows termasuk 7 memiliki celah keamanan di shortcut file!!! Cukup dengan hanya melihat shortcut tersebut saja, maka Windows akan mengerjakan file executable seperti virus.
Ini adalah salah contoh sample shortcut yang tertinggal di flashdisk tersebut, setelah saya hexdump di Linux:
00000000 4c 00 00 00 01 14 02 00 00 00 00 00 c0 00 00 00 |L...............| 00000010 00 00 00 46 81 00 00 00 00 00 00 00 00 00 00 00 |...F............| 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 |................| 00000040 00 00 00 00 00 00 00 00 00 00 00 00 3e 04 14 00 |............>...| 00000050 1f 50 e0 4f d0 20 ea 3a 69 10 a2 d8 08 00 2b 30 |.P.O. .:i.....+0| 00000060 30 9d 14 00 2e 00 20 20 ec 21 ea 3a 69 10 a2 dd |0..... .!.:i...| 00000070 08 00 2b 30 30 9d 14 04 00 00 00 00 00 00 0e 00 |..+00...........| 00000080 00 00 64 3a 5c 66 61 6e 6e 79 2e 62 6d 70 00 00 |..d:\fanny.bmp..| 00000090 4d 79 20 4e 61 6d 65 00 00 00 00 00 00 00 00 00 |My Name.........| 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Saat Windows ingin menampilkan shortcut tersebut, ia akan mencari icon untuk shortcut tersebut. Yup! Ini baru mau di-preview di Windows Explorer, blom sampai di-double click oleh saya.. Dimana icon-nya berada dalam sebuah file dll bernama d:\fanny.bmp. Dan untuk mekanisme yang belum saya ketahu cara kerjanya, saat fanny.bmp yang sebenarnya adalah dll di-load ke memori, kode program virus-pun bekerja!
Cara untuk menghadapi celah seperti ini selain update patch dari Microsoft, juga bisa dengan mematikan preview icon (walaupun membuat tampilan shortcut menjadi jelek). Wew, semoga suatu hari nanti Windows tidak punya celah berbahaya seperti ini lagi yang membuat saya kecolongan..
Conditional Formatting di Microsoft Excel 2010
Saat sedang mencoba membuat sebuah dokumen di Excel 2010, aku menemukan sebuah fitur yang menarik, yang disebut Conditional Formatting. Untuk mengakses-nya, aku dapat memilih ribbon “Home“, lalu pada group “Styles“, terdapat sebuah icon bernama “Conditional Formatting“. Dengan fitur tersebut, aku dapat membuat “Data Bars” seperti ini:
Aku juga dapat mengubah rules yang menentukan kondisi, dengan memilih “More Rules“. Sebagai contoh, jika aku memilih “More Rules“, pada “Icon Sets“, akan muncul kotak dialog seperti ini:
Setelah di-apply, hasilnya akan terlihat seperti:
Virtualisasi Di Windows 7 Dengan Windows Virtual PC
Salah satu yang baru di Windows 7 adalah Windows Virtual PC. Sebelumnya, produk ini memiliki nama Microsoft Virtual PC. Semua pengguna Windows 7 dapat men-download dan men-install Windows Virtual PC secara gratis, hanya saja setelah melalui pemeriksaan apakah Windows asli atau tidak. Apa yang membedakan Windows Virtual PC dan Microsoft Virtual PC? Yang paling mencolok adalah tampilannya. Kini Virtual PC tidak lagi dalam tampilan program terpisah, tetapi sudah ter-integrasi ke dalam Windows Explorer. Bisa dibilang Windows Virtual PC adalah bagian dari Windows 7 yang harus di-download terpisah.
Fitur lain yang membedakan Windows Virtual PC dengan program virtualisasi lainnya adalah Windows XP Mode (XPM). Dengan men-download sebuah virtual machine siap pakai yang berukuran sekitar 500 MB, pengguna Virtual PC bisa langsung menggunakan program yang di-install dalam virtual machine tersebut di desktop Windows 7, seolah-olah seperti jalan di Windows 7. Bahkan, notification di task bar untuk Windows XP virtual akan ditampilkan di desktop Windows 7. Windows XP Mode ini hanya tersedia untuk pengguna Windows 7 Professional, Enterprise dan Ultimate.
Sebagai contoh, jika aku men-install program firefox di virtual machine-nya Windows XP Mode, aku akan mendapatkan shortcut ‘Mozilla Firefox (Windows XP Mode)’ di Start Menu.
Bila aku men-klik shortcut tersebut, tanpa menjalankan virtual machine Windows XP Mode sebelumnya, maka proses loading akan sedikit lama karena Virtual PC harus menghidupkan virtual machine terlebih dahulu.
Setelah proses selesai, Firefox yang berjalan di Windows XP Mode dapat dipakai layaknya aplikasi biasa.
Walaupun terlihat berada di desktop yang sama, aplikasi virtual tetap berada dalam batasan yang diatur dalam Windows Virtual PC. Misalnya, jika file sharing dengan sistem operasi Windows 7 dimatikan, maka aplikasi virtual tetap tidak dapat meng-akses file yang ada di sistem operasi host.
Untuk mendapatkan hasil yang sama tanpa men-download Windows XP Mode, pengguna harus men-install Windows XP sebagai sebuah virtual machine, mengatur Windows XP tersebut agar dapat di-remote melalui RDP oleh Windows 7, dan mengaktifkan “Auto Publish” di bagian settings.
Advanced Query Syntax (AQS) di Windows Search
Saat beralih dari XP ke Windows 7, salah satu perbedaan yang cukup terasa adalah adanya Windows Search. Pada tampilan Windows Explorer, di sebelah kanan atas, kini ada kotak input untuk melakukan pencarian. Semua yang ada dalam libraries akan di-index oleh Windows Search, sehingga kita dapat meletakkan file-file yang sering dicari ke dalam libraries.
Selain mencari biasa dengan keyword berupa nama file, Windows Search juga menyediakan syntax pencarian yang disebut Advanced Query Syntax (AQS). Contoh AQS misalnya:
type:=mp3
Jika ingin mencari seluruh file musik (yang memiliki format MP3, WMA, atau WAV), dapat menggunakan syntax seperti:
kind:=music
Untuk mencari folder saja, syntax AQS-nya:
kind:=folder
Pada kriteria yang rumit, kita dapat menggunakan ekspresi boolean AND, OR, dan NOT. Misalnya, untuk mencari semua file yang bukan file gambar, gunakan syntax berikut:
kind:=NOT picture
Contoh yang lebih realistis, misalnya mencari semua file yang mengandung kata “koala” dan ukurannya dibawah 5 MB:
koala AND size:<5 MB
Atau, mencari file yang dimodifikasi antara tanggal 1 Agustus 2010 sampai tanggal 1 September 2010:
datemodified:01/08/2010..01/09/2010
Atau lebih gampangnya:
datemodified:last month











