Pertemuan 2 Aij PDF
Pertemuan 2 Aij PDF
Pertemuan 2 Aij PDF
Gateway bekerja seperti layaknya pintu untuk mencapai jaringan lain. Setiap gerbang
paling tidak memiliki 2 macam interface jaringan. Misalnya saja ketika mengakses internet, sebuah
alamat website dapat ditempuh jika sudah melalui gateway yang telah memberikan arah dan rute
untuk sebuah paket data dapat sampai ke tujuan.
Bayangkan misalnya ada perumahan kecil yang letaknya di dalam satu kompleks
perumahan yang lebih besar. Perumahan besar tersebut dikelilingi dengan jalan besar. Jika
diibaratkan seperti ini, maka jalan besar adalah jaringan besar, yang memiliki struktur berbeda
dengan perumahan besar dan kecil.
Kemudian, jika penghuni di perumahan kecil ingin mencapai rumahnya, tentu dibutuhkan
pintu gerbang perumahaan yang pastinya dibangun di dekat jalan besar. Jalan besar biasanya tidak
berbatasan langsung dengan perumahan kecil, walau terhubung dengan perumahan besar. Gateway
sendiri merupakan gerbang yang terletak di pinggir jalan besar tersebut, dengan router merupakan
jalan menuju rumah di perumahan kecil.
Analogi lain yang dapat memberikan gambaran tentang cara kerja gateway adalah sebagai
berikut: Pada jaringan komputer, proses Network Address Translation (NAT) adalah proses
penulisan ulang (masquerade) pada alamat IP asal (source) dan/atau alamat IP tujuan
(destination), setelah melalui router atau firewall. NAT digunakan pada jaringan dengan
workstation yang menggunakan IP Private supaya dapat terkoneksi ke Internet dengan
menggunakan satu atau lebih IP Public. Ilustrasi NAT terlihat pada gambar berikut:
Jika seseorang menginap di hotel tentunya korang tersebut akan mendapatkan nomor
kamar bukan? Nah, alamat lengkap hotel dimana pengunjung tersebut menginap disebut alamat
publik, alamat yang dikenal oleh orang luar. Sedangakan nomor kamar adalah alamat private. Jadi
misalnya pengunjung tersebut memesan nasi padang di luar, yang akan disebutkan alamatnya
adalah alamat lengkap hotel tersebut, bukan alamat kamar. Sedangkan diketahui bahwa bisa jadi
yang menginap di hotel itu bukan hanya satu pengunjung saja. Jadi kepemilikan alamat hotel
tersebut itulah yang disebut KTP bersama. Nasi padang yang dipesan nanti tentunya akan tiba di
resepsionis, lalu nanti resepsionis akan meminta seorang OB untuk mengantarkan pesanan ke
kamar pemesan. Fungsi resepsionis inilah yang kita sebut NAT. Contoh lainnya, telepon di hotel
hanya bersifat lokal, untuk dapat menghubungi orang di luar, pengunjung harus mengontak
resepsionis agar dapat menghubungkan pengunjung dengan orang tersebut. Seperti itulah cara
kerja NAT, menerjemahkan alamat private menjadi public.
Perlakuan yang dialami oleh data/paket data oleh iptables digambarkan melalui tabel.
Macam tabelnya adalah:
a. Filter : tabel default yang ada dalam penggunaan iptables
b. NAT : tabel ini digunakan untuk fungsi NAT, redirect, redirect port
Syntax IPTables
iptables [-t table] command [match] [target/jump]
1. Table
IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER.
Penggunannya disesuaikan dengan sifat dan karakteristik masing-masing. Fungsi dari masing-
masing tabel tersebut sebagai berikut :
a. NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT
adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
b. MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS
dan MARK.
c. FILTER : Secara umum, inilah pemfilteran paket yang sesungguhnya.. Di sini bisa
dintukan apakah paket akan di-DROP, LOG, ACCEPT atau REJECT
2. Command
Command pada baris perintah IPTables akan memberitahu apa yang harus
dilakukan terhadap lanjutan sintaks perintah. Umumnya dilakukan penambahan atau
penghapusan sesuatu dari tabel atau yang lain.
3. Option
Option digunakan dikombinasikan dengan command tertentu yang akan
menghasilkan suatu variasi perintah.
4. Generic Matches
Generic Matches artinya pendefinisian kriteria yang berlaku secara umum. Dengan
kata lain, sintaks generic matches akan sama untuk semua protokol. Setelah protokol
didefinisikan, maka baru didefinisikan aturan yang lebih spesifik yang dimiliki oleh protokol
tersebut. Hal ini dilakukan karena tiap-tiap protokol memiliki karakteristik yang berbeda,
sehingga memerlukan perlakuan khusus.
5. Implicit Matches
Implicit Matches adalah match yang spesifik untuk tipe protokol tertentu. Implicit
Match merupakan sekumpulan rule yang akan diload setelah tipe protokol disebutkan. Ada 3
Implicit Match berlaku untuk tiga jenis protokol, yaitu TCP matches, UDP matches dan ICMP
matches.
a) TCP matches
b) UDP Matches
Karena bahwa protokol UDP bersifat connectionless, maka tidak ada flags
yang mendeskripsikan status paket untuk untuk membuka atau menutup koneksi. Paket
UDP juga tidak memerlukan acknowledgement. Sehingga Implicit Match untuk protokol
UDP lebih sedikit daripada TCP.
Ada dua macam match untuk UDP:
–sport atau –source-port
–dport atau –destination-port
c) ICMP Matches
Paket ICMP digunakan untuk mengirimkan pesan-pesan kesalahan dan
kondisi-kondisi jaringan yang lain. Hanya ada satu implicit match untuk tipe protokol
ICMP, yaitu :
–icmp-type
6. Explicit Matches
a) MAC Address
Match jenis ini berguna untuk melakukan pencocokan paket berdasarkan
MAC source address. Perlu diingat bahwa MAC hanya berfungsi untuk jaringan yang
menggunakan teknologi ethernet.
iptables –A INPUT –m mac –mac-source 00:00:00:00:00:01
b) Multiport Matches
Ekstensi Multiport Matches digunakan untuk mendefinisikan port atau port
range lebih dari satu, yang berfungsi jika ingin didefinisikan aturan yang sama untuk
beberapa port. Tapi hal yang perlu diingat bahwa kita tidak bisa menggunakan port
matching standard dan multiport matching dalam waktu yang bersamaan.
iptables –A INPUT –p tcp –m multiport –source-port 22,53,80,110
c) Owner Matches
Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau
pemilik/owner paket tersebut. Match ini bekerja dalam chain OUTPUT, akan tetapi
penggunaan match ini tidak terlalu luas, sebab ada beberapa proses tidak memiliki owner
(??).
iptables –A OUTPUT –m owner –uid-owner 500
Kita juga bisa memfilter berdasarkan group ID dengan sintaks –gid-owner.
Salah satu penggunannya adalah bisa mencegah user selain yang dikehendaki untuk
mengakses internet misalnya.
d) State Matches
Match ini mendefinisikan state apa saja yang cocok. Ada 4 state yang
berlaku, yaitu NEW, ESTABLISHED, RELATED dan INVALID. NEW digunakan untuk
paket yang akan memulai koneksi baru. ESTABLISHED digunakan jika koneksi telah
tersambung dan paket-paketnya merupakan bagian dari koneki tersebut. RELATED
digunakan untuk paket-paket yang bukan bagian dari koneksi tetapi masih berhubungan
dengan koneksi tersebut, contohnya adalah FTP data transfer yang menyertai sebuah
koneksi TCP atau UDP. INVALID adalah paket yang tidak bisa diidentifikasi, bukan
merupakan bagian dari koneksi yang ada.
iptables –A INPUT –m state –state RELATED,ESTABLISHED
7. Target/Jump
Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang
memenuhi kriteria atau match. Jump memerlukan sebuah chain yang lain dalam tabel yang
sama. Chain tersebut nantinya akan dimasuki oleh paket yang memenuhi kriteria. Analoginya
ialah chain baru nanti berlaku sebagai prosedur/fungsi dari program utama. Sebagai contoh
dibuat sebuah chain yang bernama tcp_packets. Setelah ditambahkan aturan-aturan ke dalam
chain tersebut, kemudian chain tersebut akan direferensi dari chain input.
iptables –A INPUT –p tcp –j tcp_packets
Beberapa target yang lain biasanya memerlukan parameter tambahan:
a) LOG Target
Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang
pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa
digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg.Yang kedua adalah -j
LOG –log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan log,
sehingga memudahkan pembacaan log tersebut.
iptables –A FORWARD –p tcp –j LOG –log-level debug
iptables –A INPUT –p tcp –j LOG –log-prefix “INPUT Packets”
b) REJECT Target
Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak
untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error
message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan
FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.
iptables –A FORWARD –p tcp –dport 22 –j REJECT –reject-with icmp-host-unreachable
Ada beberapa tipe pesan yang bisa dikirimkan yaitu icmp-net-unreachable, icmp-
host-unreachable, icmp-port-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan
icmp-host-prohibited.
c) SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source
Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING,
dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami
SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang
sama.
iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-source 194.236.50.155-
194.236.50.160:1024-32000
d) DNAT Target
Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field
alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang
memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING
dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 –dport 80 –j DNAT –to-destination
192.168.0.2
e) MASQUERADE Target
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama
seperti target SNAT, tetapi target ini tidak memerlukan option –to-source. MASQUERADE
memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-
up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain
POSTROUTING.
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
f) REDIRECT Target
Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin
itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port
tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk
membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya kita
ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy
misalnya squid. Target ini hanya bekerja untuk tabel nat pada chain PREROUTING dan
OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.
iptables –t nat –A PREROUTING –i eth1 –p tcp –dport 80 –j REDIRECT –to-port 3128