IMPLEMETASI IPTABLES SEBAGAI FILTRING FIREWALL
Abstrak
Tujuan
Pembuatan Jurnal ini adalah untuk mengetahui pengertian, karakteristik,
dan
implementasi IPtables sebagai firewall. Dan sebagai Tugas Akhir pada mata
kuliah
Kemanan
Jaringan Komputer.
Hasil
dari pembuatan jurnal menunjukkan bahwa IPTables memilki banyak sekali
keunggulan
dalam implementasinya diantaranya: IPTables memiliki kemampuan untuk
melakukan
Connection Tracking Capability yaitu kemampuan untuk inspeksi paket serta
bekerja
sama dengan ICMP dan UDP sebagaimana koneksi TCP, Menyederhanakan
perilaku
paket-paket dalam negosiasi built in chain, dan lain-lainnya. Tapi Yang
terpenting
adalah Implementasi IPTables sebagai firewall sangat murah dan memiliki
tingkat
kemanan yang baik.
BAB I
PENDAHULUAN
1. Latar Belakang
Keamanan
jaringan, PC, server-server, dan perangkat komputer Anda yang
lainnya
memang merupakan faktor yang cukup penting untuk diperhatikan saat ini. Jika
beberapa
dekade yang lalu keamanan jaringan masih ditempatkan pada urutan prioritas
yang
rendah, namun akhir-akhir ini perilaku tersebut harus segera diubah. Pasalnya,
kejahatan
dengan menggunakan bantuan komputer, media komunikasi, dan perangkat
elektronik
lainnya meningkat sangat tajam belakangan. Hal ini sangat kontras dengan
perkembangan
kebutuhan perangkat komputer untuk kehidupan sehari-hari yang juga
semakin
meninggi. Tidak hanya di dalam kegiatan bisnis saja, kehidupan rumah tangga
pun
sudah sangat relevan jika dilengkapi dengan sebuah komputer. Maka dari itulah,
mengapa
keamanan jaringan komputer dan PC menjadi begitu penting untuk
diperhatikan
saat ini.
Apalagi
jika kebutuhannya sudah berhubungan dengan kegiatan bisnis, dan
kegiatan
bisnis tersebut banyak berhubungan dengan server yang dapat diakses dari
mana
saja atau dengan koneksi Internet yang aktif 24x7. Tentu keamanan komunikasi
data
harus menjadi
prioritas
nomor satu. Mengapa demikian, karena semua fasilitas tersebut bisa juga
diartikan
sebagai titik celah baru menuju ke jaringan pribadi anda. Anda tidak bisa
membiarkan
begitu saja perangkat komputer anda tanpa perlindungan dalam dunia
Internet
yang sebenarnya. Jika anda biarkan, tentu segala macam jenis pengganggu
akan
bercokol di komputer Anda. Mulai dari virus sampai hacker yang menanam
backdoor
akan menggunakan komputer Anda sebagai alat bersenang-senang.
Sangat
penting memang untuk rajin melakukan patch dan update terhadap
software-software
bug yang anda gunakan di komputer anda. Karena hal ini cukup
menolong
untuk sedikit menyulitkan para hacker dan pengganggu lain untuk bisa
bersenang-senang
dengan komputer anda. Namun rasanya, patch yang up-to-date saja
belum
cukup untuk melindungi resource anda yang berharga di dalam komputer. Maka
dari
itu, rasanya cukup penting untuk anda bisa membatasi apa dan siapa saja yang
boleh
masuk dan keluar dari dan ke perangkat komputer Anda. Semua proses ini bisa
Anda
lakukan dengan mengandalkan sebuah sistem pengaman khusus yang biasanya
disebut
dengan istilah firewall atau IP filter.
Tujuan
Adapun Tujuan penulis
membuat makalah ini adalah sebagai berikut :
1. Pembaca mengetahui
alasan penulis mebuat IPTables sebagai solusi dalam implementasi Firewall
untuk kemanan
Jaringan komputer.
2. Pembaca mengetahui
Karakteristik IPTables.
3. Pembaca mengetahui
Syntax pada IPTables dalam implementasinya.
4. Pembaca memiliki
pandangan kedepan mengenai pengamanan jaringan komputer.
Metode
Penelitian
Metode penelitian
yang dilakukan oleh penulis adalah metode literature, yaitu dengan literature
dari
materi – materi yang
ada pada buku dan internet.
BAB II
LANDASAN TEORI
Mungkin
banyak orang khususnya mahasiswa ilmu komputer yang sudah akrab
dengan
istilah ini. Namun pada saat ini saya coba memberi penjelasan singkat
mengenai
firewall. Firewall atau dalam arti harafiahnya adalah tembok api merupakan
sebuah
sistem yang memiliki tugas utama menjaga keamanan dari jaringan komputer
dan
semua perangkat yang ada di dalamnya.
Firewall
adalah sebuah sistem pengaman, jadi firewall bisa berupa apapun baik
hardware
maupun software. Firewall dapat digunakan untuk memfilter paket-paket dari
luar dan
dalam jaringan di mana ia berada. Jika pada kondisi normal semua orang dari
luar
jaringan anda dapat bermain-main ke komputer anda, dengan firewall semua itu
dapat
diatasi dengan mudah.
Firewall
merupakan perangkat jaringan yang berada di dalam kategori perangkat Layer
3
(Network layer) dan Layer 4 (Transport layer) dari protocol 7 OSI layer.
Seperti
diketahui,
layer 3 adalah layer yang mengurus masalah pengalamatan IP, dan layer 4
adalah
menangani permasalahan port-port komunikasi (TCP/UDP). Pada kebanyakan
firewall,
filtering belum bisa dilakukan pada level data link layer atau layer 2 pada 7
OSI
layer.
Jadi dengan demikian, sistem pengalamatan MAC dan frame-frame data belum
bisa
difilter. Maka dari itu, kebanyakan firewall pada umumnya melakukan filtering
dan
pembatasan
berdasarkan pada alamat IP dan nomor port komunikasi yang ingin dituju
atau
diterimanya.
Firewall
yang sederhana biasanya tidak memiliki kemampuan melakukan filterin
terhadap
paket berdasarkan isi dari paket tersebut. Sebagai contoh, firewall tidak
memiliki
kemampuan melakukan filtering terhadap e-mail bervirus yang Anda download
atau
terhadap halaman web yang tidak pantas untuk dibuka. Yang bisa dilakukan
firewall
adalah melakukan blokir terhadap alamat IP dari mail server yang mengirimkan
virus
atau alamat halaman web yang dilarang untuk dibuka. Dengan kata lain, firewall
merupakan
sistem pertahanan yang paling depan untuk jaringan Anda.
Tetapi,
apakah hanya sampai di situ saja fungsi dari perangkat firewall? Ternyata
banyak
firewall yang memiliki kelebihan lain selain daripada filtering IP address
saja.
Dengan
kemampuannya membaca dan menganalisis paket-paket data yang masuk
pada
level IP, maka firewall pada umumnya memiliki kemampuan melakukan translasi
IP
address. Translasi di sini maksudnya adalah proses mengubah sebuah alamat IP
dari
sebuah alamat yang dikenal oleh jaringan diluar jaringan pribadi Anda, menjadi
alamat
yang hanya dapat dikenal dan dicapai dari jaringan lokal saja. Kemampuan ini
kemudian
menjadi sebuah fasilitas standar dari setiap firewall yang ada di dunia ini.
Fasilitas
ini sering kita kenal dengan istilah Network Address Translation (NAT).
Gambar
1. Firewall
How to make Firewall ?
Firewall
bisa Anda dapatkan dengan berbagai cara. Jika tidak ingin repot-repot
membuat
dari nol, Anda harus mengeluarkan uang yang cukup banyak untuk membeli
perangkat
keras firewall yang sudah jadi dan tinggal Anda pasang saja di jaringan.
Tetapi
perlu diingat, tidak semua perangkat keras firewall dapat bekerja hebat dalam
melakukan
IP filtering. Jadi akan percuma saja uang yang anda keluarkan jika anda
membeli
firewall yang tidak andal.
Jika
anda mau sedikit repot, namun hasilnya mungkin akan memuaskan anda, buat
saja sendiri
perangkat firewall anda. Yang anda perlukan hanyalah sebuah PC dengan
processor
dan memory yang lumayan besar dan sebuah aplikasi firewall yang canggih
dan
lengkap yang dapat memenuhi semua kebutuhan Anda.
Aplikasi
firewall yang lengkap dan canggih pada umumnya juga mengharuskan Anda
mengeluarkan
kocek yang tidak sedikit. Seperti misalnya Checkpoint yang sudah
sangat
terkenal dalam aplikasi firewall, untuk memilikinya anda harus merogoh kocek
yang
lumayan banyak pula.
Namun
jika anda pecinta produk-produk open source dan sudah sangat familiar dengan
lingkungan
open source seperti misalnya operating system Linux, ada satu aplikasi
firewall
yang sangat hebat. Aplikasi ini tidak hanya canggih dan banyak fasilitasnya,
namun
aplikasi ini juga tidak akan membuat kantong Anda dirogoh dalam-dalam.
Bahkan
Anda bisa mendapatkannya gratis karena aplikasi ini pada umumnya
merupakan
bawaan default setiap distro Linux. Aplikasi dan system firewall di sistem
open
source tersebut dikenal dengan nama IPTables.
Dengan
menggunakan IPTables, Anda dapat membuat firewall yang cukup canggih
dengan
program open source yang bisa dengan mudah Anda dapatkan di Internet.
Memang
perlu diakui, firewall dengan menggunakan IPTables cukup sulit bagi pemula
baik di
bidang networking maupun pemula di bidang operating system Linux. Namun
jika
Anda pelajari lebih lanjut, sebenarnya firewall ini memiliki banyak sekali
fitur dan
kelebihan
yang luar biasa.
Why IPTABLES ?
IPTables
merupakan sebuah fasilitas tambahan yang tersedia pada setiap
perangkat
komputer yang diinstali dengan sistem operasi Linux dan resmi diluncurkan
untuk
massal pada LINUX 2.4 kernel pada January 2001 (www.netfilter.org). Anda
harus
mengaktifkannya terlebih dahulu fitur ini pada saat melakukan kompilasi kernel
untuk
dapat menggunakannya. IPTables merupakan fasilitas tambahan yang memiliki
tugas
untuk menjaga keamanan perangkat komputer anda dalam jaringan. Atau dengan
kata
lain, IPTables merupakan sebuah firewall atau program IP filter build-in yang
disediakan
oleh kernel Linux untuk tetap menjaga agar perangkat anda aman dalam
berkomunikasi.
Mengapa
Linux bersusah payah menyediakan fasilitas ini untuk Anda? Karena dari dulu
Linux
memang terkenal sebagai operating system yang unggul dalam segi
keamanannya.
Mulai dari kernel Linux versi 2.0, Linux sudah memberikan fasilitas
penjaga
keamanan berupa fasilitas bernama ipfwdm. Kemudian pada kernal 2.2,
fasilitas
bernama ipchain diimplementasikan di dalamnya dan menawarkan
perkembangan
yang sangat signifikan dalam menjaga keamanan.
Sejak
kernel Linux memasuki versi 2.4, sistem firewall yang baru diterapkan di
dalamnya.
Semua jenis firewall open source yang ada seperti ipfwadm dan ipchains
dapat
berjalan di atasnya. Tidak ketinggalan juga, IPTables yang jauh lebih baru dan
canggih
dibandingkan keduanya juga bisa berjalan di atasnya. Maka itu, IPTables
sangatlah
perlu untuk dipelajari untuk Anda yang sedang mempelajari operating system
Linux
atau bahkan yang sudah menggunakannya. Karena jika menguasai IPTables,
mengamankan
jaringan Anda atau jaringan pribadi orang lain menjadi lebih hebat.
Fitur
yang dimiliki IPTables:
1.
Connection Tracking Capability yaitu kemampuan unutk inspeksi paket serta
bekerja
dengan icmp dan udp sebagaimana koneksi TCP.
2.
Menyederhanakan perilaku paket-paket dalam melakukan negosiasi built in
chain
(input,output, dan forward).
3.
Rate-Limited connection dan logging capability. Kita dapat membatasi usahausaha
koneksi
sebagai tindakan preventif serangan Syn flooding denial of
services(DOS).
4.
Kemampuan untuk memfilter flag-flag dan opsi tcp dan address-address MAC.
BAB III
PEMBAHASAN
IPTABLES
Iptables
mengizinkan user untuk mengontrol sepenuhnya jaringan melalui paket
IP
dengan system LINUX yang diimplementasikan pada kernel Linux. Sebuah kebijakan
atau
Policy dapat dibuat dengan iptables sebagai polisi lalulintas jaringan. Sebuah
policy
pada iptables dibuat berdasarkan sekumpulan peraturan yang diberikan pada
kernel
untuk mengatur setiap paket yang datang. Pada iptable ada istilah yang disebut
dengan
Ipchain yang merupakan daftar aturan bawaan dalam Iptables. Ketiga chain
tersebut
adalah INPUT, OUTPUT dan FORWARD.
Gambar
2.Diagram Perjalanan Paket data pada IPTables
Pada
diagram tersebut, persegipanjang yaitu filter INPUT, filter OUTPUT, dan filter
FORWARD
menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai
pada
salah satu persegipanjang diantara IPchains, maka disitulah terjadi proses
penyaringan.
Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya
adalah
DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan untuk
ACCEPT,
maka paket akan dilewatkan melalui diagram tersebut.
Sebuah
rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan
“jika
paket memiliki informasi awal (header) seperti ini, maka inilah yang harus
dilakukan
terhadap paket”. Jika aturan tersebut tidak sesuai dengan paket, maka aturan
berikutnya
akan memproses paket tersebut. Apabila sampai aturan terakhir yang ada,
paket
tersebut belum memenuhi salah satu aturan, maka kernel akan melihat kebijakan
bawaan
(default) untuk memutuskan apa yang harus dilakukan kepada paket tersebut.
Ada dua
kebijakan bawaan yaitu default DROP dan default ACCEPT.
Jalannya
sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
1. Paket
berada pada jaringan fisik.
2. Paket
masuk ke interface jaringan.
3. Paket
masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi
untuk
me- mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lainlain.
4. Paket
masuk ke chain PREROUTING pada tabel NAT. Chain ini fungsi
utamanya
untuk melakukan DNAT (Destination Network Address Translation).
5. Paket
mengalami keputusan routing, apakah akan diproses oleh host lokal atau
diteruskan
ke host lain.
6. Paket
masuk ke chain FORWARD pada tabel filter. Disinlah proses pemfilteran
yang
utama terjadi.
7. Paket
masuk ke chain POSTROUTING pada tabel NAT. Chain ini berfungsi
utamanya
untuk melakukan SNAT (Source Network Address Translation).
8. Paket
keluar menuju interface jaringan.
9. Paket
kembali berada pada jaringan fisik.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket
berada dalam jaringan fisik.
2. Paket
masuk ke interface jaringan.
3. Paket
masuk ke chain PREROUTING pada tabel mangle.
4. Paket
masuk ke chain PREROUTING pada tabel NAT.
5. Paket
mengalami keputusan routing.
6. Paket
masuk ke chain INPUT pada tabel filter untuk mengalami proses
penyaringan.
7. Paket
akan diterima oleh aplikasi lokal.
Perjalanan paket yang berasal dari host lokal
1.
Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan.
2. Paket
memasuki chain OUTPUT pada tabel mangle.
3. Paket
memasuki chain OUTPUT pada tabel NAT.
4. Paket
memasuki chain OUTPUT pada tabel filter.
5. Paket
mengalami keputusan routing, seperti ke mana paket harus pergi dan melalui
interface
mana.
6. Paket
masuk ke chain POSTROUTING pada tabel NAT.
7. Paket
masuk ke interface jaringan
8. Paket
berada pada jaringan fisik.
Instalasi IPTables
Untuk
Melakukan instalasi IPTABLES di computer Linux, kita akan memerlukan
kernel
versi 2.4.x atau diatasnya. Distribusi Linux belakangan ini sudah menggunakan
kernel
2.4.x (bahkan 2.6.x) sudah mendukung paket filter untuk firewall. Maka dari itu
kita
tidak perlu repot melakukan kompilasi kernel agar IPTables bekerja dengan baik
di
computer
linux .
Kernel
Sendiri terdiri dari dua macam, modularized kernel dan monolithic kernel.
Saat
linux pertama kali diinstal, model kernel yang dimilikinya adalah modularized,
jadi
kita
bisa mengelurakan modu-modul yang kita butuhkan tanpa harus melakukan
kompilasi
kernel.Bila kita tetap ingin melakukan kompilasi kernel untuk mengoptimasi
server
linux kita maka IPTABLES membutuhkan beberapa opsi dalam kernel yang
harus
dipilih dan ini dapat anda dapatkan di buku tutorial IPtabales dan internet
karena
pada
jurnal ini tidak saya lampirkan.
Syntax Pada IPTables
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 :
1. NAT :
Secara umum digunakan untuk melakukan Network Address Translation.
NAT
adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
2.
MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti
TTL, TOS
dan MARK.
3.
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.
Command
Keterangan
-A
–append
Perintah
ini menambahkan aturan pada akhir
chain.
Aturan akan ditambahkan di akhir baris
pada
chain yang bersangkutan, sehingga akan
dieksekusi
terakhir
-D
–delete
Perintah
ini menghapus suatu aturan pada chain.
Dilakukan
dengan cara menyebutkan secara
lengkap
perintah yang ingin dihapus atau dengan
menyebutkan
nomor baris dimana perintah akan
dihapus.
-R
–replace
Penggunaannya
sama seperti –delete, tetapi
command
ini menggantinya dengan entry yang
baru.
-I
–insert
Memasukkan
aturan pada suatu baris di chain.
Aturan
akan dimasukkan pada baris yang
disebutkan,
dan aturan awal yang menempati
baris
tersebut akan digeser ke bawah. Demikian
pula
baris-baris selanjutnya.
-L
–list
Perintah
ini menampilkan semua aturan pada
sebuah
tabel. Apabila tabel tidak disebutkan, maka
seluruh
aturan pada semua tabel akan
ditampilkan,
walaupun tidak ada aturan sama
sekali
pada sebuah tabel. Command ini bisa
dikombinasikan
dengan option –v (verbose), -n
(numeric)
dan –x (exact).
-F
–flush
Perintah
ini mengosongkan aturan pada sebuah
chain.
Apabila chain tidak disebutkan, maka
semua
chain akan di-flush.
-N
–new-chain
Perintah
tersebut akan membuat chain baru.
-X
–delete-chain
Perintah
ini akan menghapus chain yang
disebutkan.
Agar perintah di atas berhasil, tidak
boleh
ada aturan lain yang mengacu kepada chain
tersebut.
-P
–policy
Perintah
ini membuat kebijakan default pada
sebuah
chain. Sehingga jika ada sebuah paket
yang
tidak memenuhi aturan pada baris-baris yang
telah
didefinisikan, maka paket akan diperlakukan
sesuai
dengan kebijakan default ini.
-E
–renamechain
Perintah
ini akan merubah nama suatu chain.
3. Option
Option
digunakan dikombinasikan dengan command tertentu yang akan menghasilkan
suatu
variasi perintah.
Option
Command
Pemakai
Keterangan
-v
–verbose
–list
–append
–insert
–delete
Memberikan
output yang lebih detail,
utamanya
digunakan dengan –list.
Jika digunakan
dengan
–list,
akan menampilkam K (x1.000),
M
(1.000.000) dan G (1.000.000.000).
–replace
-x
–exact
–list
Memberikan output yang lebih tepat.
-n
–numeric
–list
Memberikan output yang berbentuk
angka.
Alamat IP dan nomor port
akan
ditampilkan dalam bentuk angka
dan
bukan hostname ataupun nama
aplikasi/servis.
–line-number
–list Akan menampilkan nomor dari daftar
aturan.
Hal ni akan mempermudah
bagi
kita untuk melakukan modifikasi
aturan,
jika kita mau meyisipkan atau
menghapus
aturan dengan nomor
tertentu.
–modprobe
All Memerintahkan IPTables untuk
memanggil
modul tertentu. Bisa
digunakan
bersamaan dengan semua
command.
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.
Match
Keterangan
-p
–protocol
Digunakan
untuk mengecek tipe protokol tertentu.
Contoh
protokol yang umum adalah TCP, UDP,
ICMP dan
ALL. Daftar protokol bisa dilihat
pada
/etc/protocols.
Tanda
inversi juga bisa diberlakukan di sini, misal
kita
menghendaki semua protokol kecuali icmp,
maka
kita bisa menuliskan –protokol ! icmp yang
berarti
semua kecuali icmp.
-s
–src
–source
Kriteria
ini digunakan untuk mencocokkan paket
berdasarkan
alamat IP asal. Alamat di sini bisa
berberntuk
alamat tunggal seperti 192.168.1.1,
atau
suatu alamat network menggunakan
netmask
misal 192.168.1.0/255.255.255.0, atau
bisa
juga ditulis 192.168.1.0/24 yang artinya
semua
alamat 192.168.1.x. Kita juga bisa
menggunakan
inversi.
-d
–dst
–destination
Digunakan
untuk mecocokkan paket berdasarkan
alamat
tujuan. Penggunaannya sama dengan
match –src
-i
–in-interface
Match
ini berguna untuk mencocokkan paket
berdasarkan
interface di mana paket datang.
Match
ini hanya berlaku pada chain INPUT,
FORWARD
dan PREROUTING
-o
–out-interface
Berfungsi
untuk mencocokkan paket berdasarkan
interface
di mana paket keluar. Penggunannya
sama
dengan
–in-interface.
Berlaku untuk chain OUTPUT,
FORWARD
dan POSTROUTING
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
Match
Keterangan
–sport
–source-port
Match
ini berguna untuk mecocokkan paket
berdasarkan
port asal. Dalam hal ini kia bisa
mendefinisikan
nomor port atau nama service-nya.
Daftar
nama service dan nomor port yang
bersesuaian
dapat dilihat di /etc/services.
–sport
juga bisa dituliskan untuk range port
tertentu.
Misalkan kita ingin mendefinisikan range
antara
port 22 sampai dengan 80, maka kita bisa
menuliskan
–sport 22:80.
Jika
bagian salah satu bagian pada range tersebut
kita hilangkan
maka hal itu bisa kita artikan dari
port 0,
jika bagian kiri yang kita hilangkan, atau
65535
jika bagian kanan yang kita hilangkan.
Contohnya
–sport :80 artinya paket dengan port
asal nol
sampai dengan 80, atau –sport 1024:
artinya
paket dengan port asal 1024 sampai
dengan
65535.Match ini juga mengenal inversi.
–dport
–destinationport
Penggunaan
match ini sama dengan match –
source-port.
–tcp-flags
Digunakan untuk mencocokkan paket berdasarkan
TCP
flags yang ada pada paket tersebut. Pertama,
pengecekan
akan mengambil daftar flag yang
akan
diperbandingkan, dan kedua, akan
memeriksa
paket yang di-set 1, atau on.
Pada
kedua list, masing-masing entry-nya harus
dipisahkan
oleh koma dan tidak boleh ada spasi
antar
entry, kecuali spasi antar kedua list. Match
ini
mengenali SYN,ACK,FIN,RST,URG, PSH.
Selain
itu kita juga menuliskan ALL dan NONE.
Match
ini juga bisa menggunakan inversi.
–syn
Match ini akan memeriksa apakah flag SYN di-set
dan ACK
dan FIN tidak di-set. Perintah ini sama
artinya
jika kita menggunakan match –tcp-flags
SYN,ACK,FIN
SYN
Paket
dengan match di atas digunakan untuk
melakukan
request koneksi TCP yang baru
terhadap
server
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
Target
Keterangan
-j
ACCEPT
–jump
ACCEPT
Ketika
paket cocok dengan daftar match dan target
ini
diberlakukan, maka paket tidak akan melalui
baris-baris
aturan yang lain dalam chain tersebut
atau
chain yang lain yang mereferensi chain
tersebut.
Akan tetapi paket masih akan memasuki
chain-chain
pada tabel yang lain seperti biasa.
-j DROP
–jump
DROP
Target
ini men-drop paket dan menolak untuk
memproses
lebih jauh. Dalam beberapa kasus
mungkin
hal ini kurang baik, karena akan
meninggalkan
dead socket antara client dan
server.
Paket
yang menerima target DROP benar-benar
mati dan
target tidak akan mengirim informasi
tambahan
dalam bentuk apapun kepada client
atau
server.
-j
RETURN
–jump
RETURN
Target
ini akan membuat paket berhenti melintasi
aturan-aturan
pada chain dimana paket tersebut
menemui
target RETURN. Jika chain merupakan
subchain
dari chain yang lain, maka paket akan
kembali
ke superset chain di atasnya dan masuk
ke baris
aturan berikutnya. Apabila chain adalah
chain
utama misalnya INPUT, maka paket akan
dikembalikan
kepada kebijakan default dari chain
tersebut.
-j
MIRROR Apabila kompuuter A menjalankan target seperti
contoh
di atas, kemudian komputer B melakukan
koneksi
http ke komputer A, maka yang akan
muncul
pada browser adalah website komputer B
itu
sendiri. Karena fungsi utama target ini adalah
membalik
source address dan destination address.
Target
ini bekerja pada chain INPUT, FORWARD
dan
PREROUTING atau chain buatan yang
dipanggil
melalui chain tersebut.
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-hostunreachable,
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 –todestination
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.
BAB IV
KESIMPULAN
Pada
akhir bab ini penulis mencoba mengambil kesimpulan dari apa yang telah
dibahas
sebelumnya. Penulis memberikan solusi IPTables sebagai Firewall karena
memiliki
beberapa keunggulan:
1.
Implementasinya yang murah karena telah terdapat pada Linux System
Version
2.4
Dan
gratis.
2.
Connection Tracking Capability yaitu kemampuan unutk inspeksi paket serta
bekerja
dengan icmp dan udp sebagaimana koneksi TCP.
3.
Menyederhanakan perilaku paket-paket dalam melakukan negosiasi built in
chain
(input,output, dan forward).
4.
Rate-Limited connection dan logging capability. Kita dapat membatasi usahausaha
koneksi
sebagai tindakan preventif serangan Syn flooding denial of
services(DOS).
5.
Kemampuan untuk memfilter flag-flag dan opsi tcp dan address-address
MAC.
DAFTAR
PUSTAKA
1. Michael Rash, Linux
Firewalls. William Pollock Publishing, 2007
2. Deris Stiawan, Sistem
Keamanan Komputer. Elex media Komputindo, 2005
3. Janner Simarmata, Pengamanan
istem Keamanan Komputer. Penerbit ANDI , 2006
4. Rakhmat Farunuddin, Membangun
Firewall dengan IPTables di Linux. Elex Media
Komputindo, 2005
0 komentar:
Posting Komentar