RSS

Memantau Data di Jaringan

12 Jun

Memantau Kondisi Jaringan

Jaringan komputer memba­wa ba­nyak hal positif bagi pengguna PC. Di an­ta­ra­nya adalah kemudahan menukar file, mengirim e-mail, membuka halaman web yang berisi informasi dan berita, chatting, dan masih banyak lagi. Dengan semakin pesatnya perkembangan Internet, maka semakin beragam pula ragam layanan yang tersedia. Mulai dari layanan yang dikelola oleh perseorangan, tim kecil nirlaba hingga yang ditangani oleh perusahaan raksasa multinasional. Sebagai end user, Anda semakin dimanjakan dan tanpa sadar, kadang menghabiskan banyak waktu menjelajahi dunia maya tersebut. Dalam artikel ini, digunakan kata “Internet” untuk mewakili beragam jenis jaringan.

Di sela-sela aktivitas mengarungi Internet, ada satu hal yang kadang terlupakan, yaitu mengawasi traffic (lalu lin­tas) data di jaringan (Internet). Walaupun ke­dengarannya sepele bagi pengguna PC, pengawasan jari­ngan perlu dilakukan. Beberapa keuntungannya adalah:

1. Mengetahui kondisi kecepatan koneksi
2. Melihat sesi koneksi aktif dan idle di PC
3. Mengantisipasi adanya koneksi ‘asing’ yang bisa berindikasi penyusupan

Sebelum melangkah lebih jauh, pada artikel ini CHIP menggunakan bebe­ra­pa asumsi. Anda dianggap telah mengerti dasar-da­sar jaringan, terutama konsep TCP/IP (Transmission Control Protocol/Internet Protocol). Selain itu, konfigurasi jaring­an dianggap telah berjalan dengan baik. Anda bisa menggunakan sembarang distribusi (distro) Linux sebagai sistem percobaan karena tidak ada spesifikasi tool tertentu yang dipakai dalam artikel ini. Dalam artikel ini, digunakan distro Fedora Core 2 sebagai basis percobaan. Seperti biasa, prompt # berarti perintah dilakukan sebagai root, sedangkan prompt $ berarti perintah dilakukan sebagai user non root. Sebagai catatan, sebagian angka IP address disamarkan de­ngan pertimbangan keamanan. Semua teknik yang di­jelaskan adalah semata-mata untuk tujuan pengujian jaringan dalam sistem Linux semata. CHIP tidak bertanggung jawab atas penyalah­gunaan teknik yang dijelaskan kali ini untuk hal-hal negatif atau maksud buruk.

Sebagian pengujian adalah hasil si­mu­lasi dalam sistem virtual (virtual ma­chine), sehingga angka-angka yang di­sajikan pun mung­kin tidak terlalu realistis. Namun, Anda diharapkan tetap dapat menjadikannya sebagai contoh praktek dan menerapkannya dalam kondisi sebenarnya dengan adaptasi sesuai kondisi yang dihadapi.

A. Memeriksa Kondisi Jaringan

Tool: ping, traceroute, lynx,tcptraceroute
Kesal karena proses men-download file berlangsung sangat lambat? Ke­sal tanpa berbuat apa-apa (mencari tahu penyebabnya) tentu bukanlah langkah yang bijak­sana. Cobalah menganalisis permasalahan­nya, misalnya dengan mencari tahu seberapa cepat koneksi PC sesungguhnya. Salah satu tool yang dapat digunakan adalah ping. Tool ini dapat membantu An­da memberikan estimasi waktu koneksi antara PC yang saat ini digunakan dengan alamat tujuan (PC di jaringan atau website di Internet). Misalnya, Anda ingin memeriksa waktu koneksi ke website PT. Telekomunikasi Indonesia yaitu Plasa.com:

$ ping http://www.plasa.com
PING http://www.plasa.com (2xx.1xx.x.xx) 56(84)
bytes of data.
64bytes from web.plasa.com(2xx.1xx.x.xx):
icmp_seq=0 ttl=248 time=117 ms
64bytes from web.plasa.com(2xx.1xx.x.xx):
icmp_seq=1 ttl=248 time=111 ms
[dan seterusnya]
http://www.plasa.com ping statistics —
10 packets transmitted, 10 received, 0%
packet loss, time 9089ms
rtt min/avg/max/mdev = 109.955/112.555/11
7.032/2.200 ms, pipe 2

Ping secara default mengirim paket data secara kontinyu ke host tujuan atau target. Paket data ini biasanya dinamakan ICMP echo request. Untuk contoh di atas, tepat pada saat ping mengirim paket kesepuluh, tombol Ctrl-C ditekan untuk mengakhiri sesi ping. Secara otomatis, akan ditam­pilkan data statistik, antara lain jumlah paket yang dikirim, paket yang diterima balik, dan angka round time trip.

Mengetahui waktu koneksi : Ping dapat digunakan untuk menghitung waktu koneksi ke suatu alamat di jaringan. Waktu yang ditampilkan adalah waktu minimum, rata-rata, maksimum, dan deviasi (dalam satuan mili detik).

Pertama, perhatikan persentase packet loss. Nilai persentase yang semakin besar menunjukkan kondisi koneksi antara PC An­da dengan host tujuan yang cenderung buruk. Akan tetapi, angka ini tidak dapat dijadikan patokan tunggal. Anda juga harus melihat nilai round time trip (RTT). RTT adalah kurun waktu dari saat data pertama kali dikirimkan ke host tujuan sampai dengan PC Anda saat menerima respons balik.

Berdasar definisi ini, dapat dijabarkan bahwa waktu tempuh data dari PC ke host tujuan kira-kira setengah dari RTT. Angka yang perlu diuji terlebih dahulu adalah nilai rata-rata. Di sana tercantum 112.555 milidetik. Apakah angka ini dapat dipakai untuk menyimpulkan bahwa koneksinya cukup cepat? Tidak selalu! Anda perlu mem­bandingkannya dengan hasil ping ke host yang sama pada waktu yang berbeda. Dengan demikian, Anda dapat memban­dingkan kapan kualitas koneksi (link) sedikit memburuk dan kapan menjadi baik (cepat).

Untuk lebih memahaminya, bagaimana jika kondisi jaringannya digambarkan seperti di bawah ini:

$ ping -c 4 http://www.chip.co.id
PING http://www.chip.co.id (2xx.xxx.xxx.xx)
56(84) bytes of data.
From 1x.xx.xx.xx icmp_seq=0 Packet fil
tered
From 1x.xx.xx.xx icmp_seq=1 Packet fil
tered
(dan seterusnya)
4 packets transmitted, 0 received, +4
errors,
100% packet loss, time 3002ms, pipe 2

Pada kondisi di atas, perhatikan penggunaan opsi -c. Opsi ini memerintahkan ping agar me­ngirim tepat sekian paket ICMP sesuai argumennya. Di sini, empat paket dianggap cukup untuk pengujian kali ini. Apa yang terjadi? Terdapat packet loss 100%. Apa penyebabnya? Dari hasil ping dapat diketahui bahwa penyebabnya adalah paket ICMP yang difilter. Ini adalah teknik umum yang diterapkan pada server-server di Internet, yaitu men-drop paket ICMP sehingga risiko serangan ping flood bisa ditekan. Apabila demikian, langkah apa yang harus Anda lakukan?

Ada beberapa trik yang dapat digunakan tetapi disini digunakan kombinasi antara lynx dan perintah strace. Lynx adalah sebuah browser text based, tool yang tepat jika yang diinginkan hanyalah sekadar terhubung dengan suatu website dan melihat seberapa cepat koneksi. Di sini, perintah strace berperan menghitung waktu yang dibutuhkan lynx mulai dari mengirim permintaan koneksi sampai mendapat respons dari host tujuan. Secara singkat, perintah strace digunakan untuk me­n­catat waktu pemanggilan fungsi soket.

$ strace -tt -o time-test.txt lynx -source
http://www.chip.co.id

Opsi ‘-source’ bertujuan agar lynx dapat langsung menampilkan output HTML ke console kemudian berhenti. Output ini dalam format HTML “mentah” alias belum diproses menjadi output yang sebenarnya. Mode ini meng­untungkan karena Anda tidak perlu masuk ke dalam menu browsing interaktif dari lynx yang hanya akan memperlambat pengujian Anda. Selain itu, dengan memeriksa HTML source, Anda dapat menghemat waktu karena proses rendering HTML telah diabaikan.

Output dari strace tersimpan pada file time-test.txt (atau nama file lain sesuai pilihan Anda pada opsi -o). Gunakan program seperti less untuk melihat isi file tersebut. Yang perlu Anda cari adalah baris-baris yang memiliki kata-kata “write(…)” seperti berikut:

17:07:28.473770 write(3, “GET / HTTP/1.0\
r\nHost: http://www.google”…, 1262) = 1262
17:07:28.473882 gettimeof
day({1159178848, 473900}, NULL) = 0
(dipotong)
17:07:29.221207 read(3, “HTTP/1.0 200
OK\r\nCache-Control: “…, 1535) = 1260

Jadi patokannya adalah jeda antara write(…) yang mengirim string “GET” de­ngan perintah read(…) yang menerima balasan HTTP header. GET adalah perintah dalam protokol HTTP untuk meminta pengiriman suatu file. Perhatikan bahwa strace menuliskan waktu dalam format jam:menit:detik.mikrodetik. Dengan begitu, selisih waktunya adalah 29.221207-28.473770 = .747437 detik atau 747 milidetik. Metode perhitungan ini secara umum menghasilkan angka koneksi yang lebih besar daripada ping biasa. Hal ini karena yang dihitung adalah waktu koneksi TCP yang membutuhkan waktu setup lebih lama dibandingkan dengan ICMP.

Di Blokir Firewall : Traceroute kesulitan menelusuri suatu jaringan yang diblokir firewall. Tandanya adalah munculnya tanda asterisk sampai hop terakhir (ke-30).

Dalam beberapa kasus, Anda mungkin ingin mengetahui perjalanan data mulai dari PC lokal sampai ke PC (host) tujuan. Hal ini berguna jika Anda ingin menge­tahui lebih detail, di titik mana koneksi jaringan mengalami kelambatan. Sebagai pengingat, data di Internet melewati satu atau lebih node perantara sebelum sampai ke target. Istilah untuk “loncatan” data antarnode ini disebut hop. Untuk keperluan pelacakan seperti ini, Anda dapat menggunakan program traceroute.

Traceroute mutlak memerlukan satu pa­rameter, yaitu nama host tujuan. Anda dapat juga mengganti nama host tujuan dengan alamat IP-nya jika Anda sudah mengetahuinya.

$ traceroute -n http://www.chip.co.id
traceroute to http://www.chip.co.id (203.xxx.xxx.
xxx), 30 hops max, 38 byte packets
1 * * *
2 10.xxx.xxx.xxx 93.964 ms 92.356 ms
91.813 ms
3 2xx.1xx.xxx.xxx 105.537 ms * *
4 * * *
(dan seterusnya)
30 * * *

Di sini langsung ditunjukkan contoh suatu sesi traceroute yang terblokir oleh proteksi firewall. Ciri-ciri utamanya adalah sampai dengan hop ke-30, hanya tercetak tanda “*” (asterisk). Indikasi ini memang mirip dengan output saat server tujuan tidak aktif. Namun, jika Anda yakin server tujuan aktif, kemungkinannya tinggal satu, yaitu ada packet filtering. Biasanya, jika suatu host tujuan menolak untuk menerima perintah ping (seperti contoh sebelumnya), maka host tersebut juga akan menolak data kiriman traceroute.

Sebagai solusinya, Anda dapat menggunakan sebuah program alternatif bernama tcptraceroute. Program ini dapat di-download pada alamat http://michael.toren.net/code/tcptraceroute. Versi yang digunakan di sini adalah 1.5beta7. Program ini membutuhkan dua library tambahan, yaitu libpcap dan libnet. Libpcap biasanya sudah disertakan oleh sebagian besar distribusi Linux sehingga Anda ting­gal men-download library libnet (http://www.packetfactory.net/libnet/). Di sini digunakan versi 1.1.2.1 yang merupakan versi stabil terbaru saat artikel ini dibuat.

Cara kompilasi selengkapnya bisa Anda baca di manual masing-masing program, namun secara garis besarnya adalah sebagai berikut.

$ tar xzvf libnet.tar.gz
$ tar xzvf tcptraceroute-1.5beta7.tar.gz
$ cd libnet
$ ./configure –prefix=/usr/local/libnet
$ make
# make install
$ cd ..
$ cd tcptraceroute-1.5beta7
$ ./configure –with-libnet=/usr/local/libnet \
–prefix=/usr/local/tcptrace
$ make
# make install
# ln -s /usr/local/tcptrace/bin/tcptraceroute
/usr/bin/tcptraceroute

Penggunaan perintah tcptraceroute mirip dengan perintah traceroute:

# tcptraceroute -n http://www.chip.co.id
Selected device ppp0, address 6x.xxx.xxx.
xxx, port 1029 for outgoing packets
Tracing the path to http://www.chip.co.id (2xx.
xx.xxx.xx) on TCP port 80 (http), 30 hops
max
1 6x.xxx.xxx.xxx 98.358 ms 93.782 ms
90.886 ms
2 6x.xxx.xxx.xxx 90.856 ms 86.904 ms
93.859 ms
3 2xxx.xxx.xxx 99.883 ms 102.846 ms
99.883 ms
4 2xxx.xxx.xxx [open] 104.874 ms
113.778 ms 220.779 ms

Kali ini pemeriksaan rute berlangsung dengan sukes. Dari PC yang diuji, dibutuhkan 3 hop sebelum sampai ke webserver CHIP. Perhatikan bahwa antara hop 3 dan hop 4 (server CHIP itu sendiri), dibutuhkan waktu yang kadang cepat, kadang juga lama. Sebagai contoh, waktu yang ditempuh kadang mencapai 220.779-99.883 = 120.896 milidetik. Dari hasil ini dapat disimpulkan bahwa akses yang lam­bat ke website CHIP tidak semata-mata karena masalah link antara PC lokal dan ISP. Faktor lainnya adalah kelambatan yang terjadi antara gateway network dan webserver CHIP. Gateway tersebut sangat mungkin adalah firewall, mengingat pada sesi traceroute normal, tracing berhenti pada hop ke-3.

Catatan: Semua solusi yang dijelaskan di atas bisa saja gagal Anda lakukan jika node tujuan (target) menerapkan sistem firewall yang sangat ketat atau dengan kata lain memblokir permintaan ping yang mengarah kepadanya.

B. Melihat Koneksi yang Aktif

Tool: netstat,iptraf
Saat Anda berselancar atau melakukan aktivitas lainnya di Internet, biasanya minimal ada satu koneksi yang sedang terjadi. Entah itu sedang menjalankan browser, chatting, atau lainnya. Tahukah Anda be­rapa sebenarnya jumlah koneksi yang aktif? Perintah Netstat berikut ini dapat memberitahu Anda.

$ netstat -atun
Active Internet connections (servers and
established)
Proto Recv-Q Send-Q Local Address For
eign Address State
(dipotong)
tcp 0 0 6x.x.xxx.xxx:1574 66.240.
xxx.xx:80 ESTABLISHED
tcp 0 477 6x.x.xxx.xxx:1575 66.240.
xxx.xx:80 ESTABLISHED
tcp 0 0 6x.x.xxx.xxx:1893 66.240.
xxx.xx:80 ESTABLISHED
tcp 0 0 6x.x.xxx.xxx:1892 66.240.
xxx.xx:80 ESTABLISHED

Opsi yang digunakan di sini adalah:
1. -t untuk mendaftar koneksi berbasis TCP
2. u untuk mendaftar koneksi berbasis UDP
3. n untuk menampilkan nama host dan port apa adanya tanpa perlu dikonversi menjadi nama symbolic, misalnya “http” (untuk nomor port) atau http://www.yahoo.com sebagai pengganti nomor alamat IP.
4. -a untuk menampilkan semua koneksi baik yang sedang listening maupun non-listening. Apabila Anda hanya tertarik dengan koneksi yang sedang aktif, opsi ini jangan disertakan.

Lebih mudah dipahami : Dibanding perintah netstat, iptraf lebih representatif dalam menampilkan sesi koneksi network. Jumlah data yang dikirim dan diterima juga di­tampilkan secara otomatis.

Cuplikan output di atas diambil saat melakukan browsing ke salah satu website. Di sini terlihat bahwa ada 4 koneksi yang sedang aktif karena adanya status koneksi ESTABLISHED. Jumlah koneksi di PC Anda bisa berbeda, tergantung dari jenis program dan aktvitas yang sedang dilakukan.

Salah satu manfaat monitoring tersebut adalah Anda dapat mengetahui seberapa aktif (sibuk) koneksi yang terjadi pa­da PC Anda. Sebagian aplikasi kadang se­cara agresif membuka beberapa koneksi se­kaligus. Ambil contoh, browser Firefox yang memakai plugin FasterFox atau downloader Prozilla. Tidak ada jumlah ideal berapa koneksi yang seharusnya aktif sehingga semuanya bergantung pada pe­nga­matan Anda sendiri. Namun jika Anda merasa suatu aplikasi terlalu agresif membuat suatu koneksi dan kecepatan koneksi lainnya justru menjadi lambat, sebaiknya setting ulang aplikasi yang agresif tersebut agar tidak menyita ‘jatah’ lainnya.

Untuk Anda yang tergolong pemerhati masalah keamanan jaringan, perintah netstat juga dapat digunakan untuk kebutuhan tersebut. Di sini Anda dapat menggunakan opsi -p untuk melihat nama suatu program terkait):

# netstat -atupn
(dipotong)
tcp 0 0 192.168.1.13:6000
192.168.1.12:1028 ESTABLISHED 2433/X

Port 6000 adalah port untuk koneksi X11.Port ini terlihat dihubungi oleh node ber-IP 192.168.1.12. Apakah IP ini adalah ‘me­sin’ yang kredibel? Pada kasus ini, koneksi tersebut dapat dianggap sebagai upaya cracking. Oleh karena itu, yang Anda per­lu­kan adalah sesegera mungkin meng­akhiri koneksi ’siluman’ tersebut. Sayangnya, se­jauh CHIP ketahui, Linux tidak menyediakan secara spesifik perintah untuk menghentikan suatu koneksi soket. Pilihannya tinggal: akhiri koneksi ja­ringan atau hentikan program. Apabila Anda memilih meng­akhiri program, Anda harus sesegera mungkin menutup sesi X Windows. Atau jika Anda sangat paranoid, mencabut kabel telepon atau jack RJ-45 di card network Anda bisa menjadi solusi nya (tidak disarankan).

Cara lain memonitor lalu lintas jari­ngan adalah menggunakan pogram iptraf. Jalankan iptraf dengan mengetik perintah berikut ini.

# iptraf

Lewati layar pembuka dengan menekan sembarang tombol. Anda akan disuguhi menu utama untuk monitoring. Sorot “IP Traffic Monitor” lalu tekan enter. Sekali lagi Anda akan disuguhi menu untuk memilih interface network yang akan dimonitor. Pilih “All interface” untuk memilih semua interface network yang sedang aktif. Kali ini, Anda akan disuguhi tampilan berbasis grafis text. Iptraf secara cerdas merelasikan koneksi yang terjadi, sehingga Anda dapat melihat remote host mana saja yang sedang menghubungi (mengontak) PC Anda dan dari port berapa hal tersebut dilakukan.

Demikian sekilas mengenai pemantauan (monitoring) dan penelusuran ko­neksi jaringan di Linux. Karena keterbatasan tempat, penjelasan panjang lebar tentang semua aspek monitoring jaringan tidak dapat dilakukan. Saya sangat menganjurkan Anda untuk melakukannya sendiri dan bereksperimen lebih lanjut.

Selamat mencoba!….

Iklan
 
Tinggalkan komentar

Ditulis oleh pada 12 Juni 2011 in System, Tips and Trick

 

Tag:

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: