Professional Documents
Culture Documents
TUJUAN
Siswa dapat membangun sistem keamanan jaringan sederhana dengan packet filtering.
Siswa dapat membuat chain dan rule dalam tabel sebelum diimplementasikan.
Siswa dapat melakukan konfigurasi packet filtering pada OS Linux dengan
menggunakan perintah iptables.
PENDAHULUAN
Firewall
Firewall atau tembok-api adalah sebuah sistem atau perangkat yang mengizinkan
lalu lintas jaringan yang dianggap aman untuk melaluinya dan mencegah lalu lintas jaringan
yang tidak aman. Umumnya, sebuah tembok-api diterapkan dalam sebuah mesin terdedikasi,
yang berjalan pada pintu gerbang (gateway) antara jaringan lokal dan jaringan
lainnya.Tembok-api umumnya juga digunakan untuk mengontrol akses terhadap siapa saja
yang memiliki akses terhadap jaringan pribadi dari pihak luar.Saat ini, istilah firewall
menjadi istilah lazim yang merujuk pada sistem yang mengatur komunikasi antar dua
jaringan yang berbeda. Mengingat saat ini banyak perusahaan yang memiliki akses ke
Internet dan juga tentu saja jaringan berbadan hukum di dalamnya, maka perlindungan
terhadap modal digital perusahaan tersebut dari serangan para peretas, pemata-mata, ataupun
pencuri data lainnya, menjadi hakikat.
Jenis-jenis Firewall
◦ Personal Firewall: Personal Firewall didesain untuk melindungi sebuah komputer yang
terhubung ke jaringan dari akses yang tidak dikehendaki. Firewall jenis ini akhir-akhir
ini berevolusi menjadi sebuah kumpulan program yang bertujuan untuk
mengamankan komputer secara total, dengan ditambahkannya beberapa fitur
pengaman tambahan semacam perangkat proteksi terhadap virus, anti-spyware, anti-
spam, dan lainnya. Bahkan beberapa produk firewall lainnya dilengkapi dengan
fungsi pendeteksian gangguan keamanan jaringan (Intrusion Detection System).
Contoh dari firewall jenis ini adalah Microsoft Windows Firewall (yang telah
terintegrasi dalam sistem operasi Windows XP Service Pack 2, Windows Vista dan
Windows Server 2003 Service Pack 1), Symantec Norton Personal Firewall, Kerio
Personal Firewall, dan lain-lain. Personal Firewall secara umum hanya memiliki dua
fitur utama, yakni Packet Filter Firewall dan Stateful Firewall.
◦ Network Firewall: Network ‘‘’’Firewall didesain untuk melindungi jaringan secara
keseluruhan dari berbagai serangan. Umumnya dijumpai dalam dua bentuk, yakni
sebuah perangkat terdedikasi atau sebagai sebuah perangkat lunak yang diinstalasikan
dalam sebuah server. Contoh dari firewall ini adalah Microsoft Internet Security and
Acceleration Server (ISA Server), Cisco PIX, Cisco ASA, IPTables dalam sistem
operasi GNU/Linux, pf dalam keluarga sistem operasi Unix BSD, serta SunScreen
dari Sun Microsystems, Inc. yang dibundel dalam sistem operasi Solaris. Network
Firewall secara umum memiliki beberapa fitur utama, yakni apa yang dimiliki oleh
personal firewall (packet filter firewall dan stateful firewall), Circuit Level Gateway,
Application Level Gateway, dan juga NAT Firewall. Network Firewall umumnya
bersifat transparan (tidak terlihat) dari pengguna dan menggunakan teknologi routing
untuk menentukan paket mana yang diizinkan, dan mana paket yang akan ditolak.
Fungsi Firewall
Fungsi pertama yang dapat dilakukan oleh firewall adalah firewall harus dapat mengatur dan
mengontrol lalu lintas jaringan yang diizinkan untuk mengakses jaringan privat atau
komputer yang dilindungi oleh firewall. Firewall melakukan hal yang demikian, dengan
melakukan inspeksi terhadap paket-paket dan memantau koneksi yang sedang dibuat, lalu
melakukan penapisan (filtering) terhadap koneksi berdasarkan hasil inspeksi paket dan
koneksi tersebut.
Inspeksi paket (‘packet inspection) merupakan proses yang dilakukan oleh firewall untuk
‘menghadang’ dan memproses data dalam sebuah paket untuk menentukan bahwa paket
tersebut diizinkan atau ditolak, berdasarkan kebijakan akses (access policy) yang diterapkan
oleh seorang administrator. Firewall, sebelum menentukan keputusan apakah hendak
menolak atau menerima komunikasi dari luar, ia harus melakukan inspeksi terhadap setiap
paket (baik yang masuk ataupun yang keluar) di setiap antarmuka dan membandingkannya
dengan daftar kebijakan akses. Inspeksi paket dapat dilakukan dengan melihat elemen-
elemen berikut, ketika menentukan apakah hendak menolak atau menerima komunikasi:
Agar dua host TCP/IP dapat saling berkomunikasi, mereka harus saling membuat koneksi
antara satu dengan lainnya. Koneksi ini memiliki dua tujuan:
Kedua tujuan tersebut dapat digunakan untuk menentukan keadaan koneksi antara dua host
tersebut, seperti halnya cara manusia bercakap-cakap. Jika Amir bertanya kepada Aminah
mengenai sesuatu, maka Aminah akan meresponsnya dengan jawaban yang sesuai dengan
pertanyaan yang diajukan oleh Amir; Pada saat Amir melontarkan pertanyaannya kepada
Aminah, keadaan percakapan tersebut adalah Amir menunggu respons dari Aminah.
Komunikasi di jaringan juga mengikuti cara yang sama untuk memantau keadaan percakapan
komunikasi yang terjadi.
Firewall dapat memantau informasi keadaan koneksi untuk menentukan apakah ia hendak
mengizinkan lalu lintas jaringan. Umumnya hal ini dilakukan dengan memelihara sebuah
tabel keadaan koneksi (dalam istilah firewall: state table) yang memantau keadaan semua
komunikasi yang melewati firewall. Dengan memantau keadaan koneksi ini, firewall dapat
menentukan apakah data yang melewati firewall sedang “ditunggu” oleh host yang dituju,
dan jika ya, aka mengizinkannya. Jika data yang melewati firewall tidak cocok dengan
keadaan koneksi yang didefinisikan oleh tabel keadaan koneksi, maka data tersebut akan
ditolak. Hal ini umumnya disebut sebagai Stateful Inspection.
Ketika sebuah firewall menggabungkan stateful inspection dengan packet inspection, maka
firewall tersebut dinamakan dengan Stateful Packet Inspection (SPI). SPI merupakan proses
inspeksi paket yang tidak dilakukan dengan menggunakan struktur paket dan data yang
terkandung dalam paket, tapi juga pada keadaan apa host-host yang saling berkomunikasi
tersebut berada. SPI mengizinkan firewall untuk melakukan penapisan tidak hanya
berdasarkan isi paket tersebut, tapi juga berdasarkan koneksi atau keadaan koneksi, sehingga
dapat mengakibatkan firewall memiliki kemampuan yang lebih fleksibel, mudah diatur, dan
memiliki skalabilitas dalam hal penapisan yang tinggi.
Salah satu keunggulan dari SPI dibandingkan dengan inspeksi paket biasa adalah bahwa
ketika sebuah koneksi telah dikenali dan diizinkan (tentu saja setelah dilakukan inspeksi),
umumnya sebuah kebijakan (policy) tidak dibutuhkan untuk mengizinkan komunikasi
balasan karena firewall tahu respons apa yang diharapkan akan diterima. Hal ini
memungkinkan inspeksi terhadap data dan perintah yang terkandung dalam sebuah paket data
untuk menentukan apakah sebuah koneksi diizinkan atau tidak, lalu firewall akan secara
otomatis memantau keadaan percakapan dan secara dinamis mengizinkan lalu lintas yang
sesuai dengan keadaan. Ini merupakan peningkatan yang cukup signifikan jika dibandingkan
dengan firewall dengan inspeksi paket biasa.Apalagi, proses ini diselesaikan tanpa adanya
kebutuhan untuk mendefinisikan sebuah kebijakan untuk mengizinkan respons dan
komunikasi selanjutnya.Kebanyakan firewall modern telah mendukung fungsi ini.
Fungsi fundamental firewall yang kedua adalah firewall dapat melakukan autentikasi
terhadap akses.
Protokol TCP/IP dibangun dengan premis bahwa protokol tersebut mendukung komunikasi
yang terbuka. Jika dua host saling mengetahui alamat IP satu sama lainnya, maka mereka
diizinkan untuk saling berkomunikasi. Pada awal-awal perkembangan Internet, hal ini boleh
dianggap sebagai suatu berkah.Tapi saat ini, di saat semakin banyak yang terhubung ke
Internet, mungkin kita tidak mau siapa saja yang dapat berkomunikasi dengan sistem yang
kita miliki. Karenanya, firewall dilengkapi dengan fungsi autentikasi dengan menggunakan
beberapa mekanisme autentikasi, sebagai berikut:
◦ Firewall dapat meminta input dari pengguna mengenai nama pengguna (user name) serta
kata kunci (password). Metode ini sering disebut sebagai extended authentication atau
xauth. Menggunakan xauth pengguna yang mencoba untuk membuat sebuah koneksi
akan diminta input mengenai nama dan kata kuncinya sebelum akhirnya diizinkan
oleh firewall. Umumnya, setelah koneksi diizinkan oleh kebijakan keamanan dalam
firewall, firewall pun tidak perlu lagi mengisikan input password dan namanya,
kecuali jika koneksi terputus dan pengguna mencoba menghubungkan dirinya
kembali.
◦ Metode kedua adalah dengan menggunakan sertifikat digital dan kunci publik. Keunggulan
metode ini dibandingkan dengan metode pertama adalah proses autentikasi dapat
terjadi tanpa intervensi pengguna. Selain itu, metode ini lebih cepat dalam rangka
melakukan proses autentikasi. Meskipun demikian, metode ini lebih rumit
implementasinya karena membutuhkan banyak komponen seperti halnya
implementasi infrastruktur kunci publik.
◦ Metode selanjutnya adalah dengan menggunakan Pre-Shared Key (PSK) atau kunci yang
telah diberitahu kepada pengguna. Jika dibandingkan dengan sertifikat digital, PSK
lebih mudah diimplenentasikan karena lebih sederhana, tetapi PSK juga mengizinkan
proses autentikasi terjadi tanpa intervensi pengguna. Dengan menggunakan PSK,
setiap host akan diberikan sebuah kunci yang telah ditentukan sebelumnya yang
kemudian digunakan untuk proses autentikasi. Kelemahan metode ini adalah kunci
PSK jarang sekali diperbarui dan banyak organisasi sering sekali menggunakan kunci
yang sama untuk melakukan koneksi terhadap host-host yang berada pada jarak jauh,
sehingga hal ini sama saja meruntuhkan proses autentikasi. Agar tercapai sebuah
derajat keamanan yang tinggi, umumnya beberapa organisasi juga menggunakan
gabungan antara metode PSK dengan xauth atau PSK dengan sertifikat digital.
Dengan mengimplementasikan proses autentikasi, firewall dapat menjamin bahwa koneksi
dapat diizinkan atau tidak. Meskipun jika paket telah diizinkan dengan menggunakan
inspeksi paket (PI) atau berdasarkan keadaan koneksi (SPI), jika host tersebut tidak lolos
proses autentikasi, paket tersebut akan dibuang.
Salah satu tugas firewall adalah melindungi sumber daya dari ancaman yang mungkin datang.
Proteksi ini dapat diperoleh dengan menggunakan beberapa peraturan pengaturan akses
(access control), penggunaan SPI, application proxy, atau kombinasi dari semuanya untuk
mencegah host yang dilindungi dapat diakses oleh host-host yang mencurigakan atau dari lalu
lintas jaringan yang mencurigakan. Meskipun demikian, firewall bukanlah satu-satunya
metode proteksi terhadap sumber daya, dan mempercayakan proteksi terhadap sumber daya
dari ancaman terhadap firewall secara eksklusif adalah salah satu kesalahan fatal. Jika sebuah
host yang menjalankan sistem operasi tertentu yang memiliki lubang keamanan yang belum
ditambal dikoneksikan ke Internet, firewall mungkin tidak dapat mencegah dieksploitasinya
host tersebut oleh host-host lainnya, khususnya jika exploit tersebut menggunakan lalu lintas
yang oleh firewall telah diizinkan (dalam konfigurasinya). Sebagai contoh, jika sebuah
packet-inspection firewall mengizinkan lalu lintas HTTP ke sebuah web server yang
menjalankan sebuah layanan web yang memiliki lubang keamanan yang belum ditambal,
maka seorang pengguna yang “iseng” dapat saja membuat exploit untuk meruntuhkan web
server tersebut karena memang web server yang bersangkutan memiliki lubang keamanan
yang belum ditambal. Dalam contoh ini, web server tersebut akhirnya mengakibatkan
proteksi yang ditawarkan oleh firewall menjadi tidak berguna.Hal ini disebabkan oleh
firewall yang tidak dapat membedakan antara request HTTP yang mencurigakan atau
tidak.Apalagi, jika firewall yang digunakan bukan application proxy.Oleh karena itulah,
sumber daya yang dilindungi haruslah dipelihara dengan melakukan penambalan terhadap
lubang-lubang keamanan, selain tentunya dilindungi oleh firewall.
[Placeholder]
Packet-Filter Firewall
Pada bentuknya yang paling sederhana, sebuah firewall adalah sebuah router atau komputer
yang dilengkapi dengan dua buah NIC (Network Interface Card, kartu antarmuka jaringan)
yang mampu melakukan penapisan atau penyaringan terhadap paket-paket yang
masuk.Perangkat jenis ini umumnya disebut dengan packet-filtering router.
Firewall jenis ini bekerja dengan cara membandingkan alamat sumber dari paket-paket
tersebut dengan kebijakan pengontrolan akses yang terdaftar dalam Access Control List
firewall, router tersebut akan mencoba memutuskan apakah hendak meneruskan paket yang
masuk tersebut ke tujuannya atau menghentikannya. Pada bentuk yang lebih sederhana lagi,
firewall hanya melakukan pengujian terhadap alamat IP atau nama domain yang menjadi
sumber paket dan akan menentukan apakah hendak meneruskan atau menolak paket tersebut.
Meskipun demikian, packet-filtering router tidak dapat digunakan untuk memberikan akses
(atau menolaknya) dengan menggunakan basis hak-hak yang dimiliki oleh pengguna.
Packet-filtering router juga dapat dikonfigurasikan agar menghentikan beberapa jenis lalu
lintas jaringan dan tentu saja mengizinkannya. Umumnya, hal ini dilakukan dengan
mengaktifkan/menonaktifkan port TCP/IP dalam sistem firewall tersebut. Sebagai contoh,
port 25 yang digunakan oleh Protokol SMTP (Simple Mail Transfer Protocol) umumnya
dibiarkan terbuka oleh beberapa firewall untuk mengizinkan surat elektronik dari Internet
masuk ke dalam jaringan privat, sementara port lainnya seperti port 23 yang digunakan oleh
Protokol Telnet dapat dinonaktifkan untuk mencegah pengguna Internet untuk mengakses
layanan yang terdapat dalam jaringan privat tersebut. Firewall juga dapat memberikan
semacam pengecualian (exception) agar beberapa aplikasi dapat melewati firewall tersebut.
Dengan menggunakan pendekatan ini, keamanan akan lebih kuat tapi memiliki kelemahan
yang signifikan yakni kerumitan konfigurasi terhadap firewall: daftar Access Control List
firewall akan membesar seiring dengan banyaknya alamat IP, nama domain, atau port yang
dimasukkan ke dalamnya, selain tentunya juga exception yang diberlakukan.
Firewall jenis lainnya adalah Circuit-Level Gateway, yang umumnya berupa komponen
dalam sebuah proxy server. Firewall jenis ini beroperasi pada level yang lebih tinggi dalam
model referensi tujuh lapis OSI (bekerja pada lapisan sesi/session layer) daripada Packet
Filter Firewall. Modifikasi ini membuat firewall jenis ini berguna dalam rangka
menyembunyikan informasi mengenai jaringan terproteksi, meskipun firewall ini tidak
melakukan penyaringan terhadap paket-paket individual yang mengalir dalam koneksi.
Dengan menggunakan firewall jenis ini, koneksi yang terjadi antara pengguna dan jaringan
pun disembunyikan dari pengguna. Pengguna akan dihadapkan secara langsung dengan
firewall pada saat proses pembuatan koneksi dan firewall pun akan membentuk koneksi
dengan sumber daya jaringan yang hendak diakses oleh pengguna setelah mengubah alamat
IP dari paket yang ditransmisikan oleh dua belah pihak. Hal ini mengakibatkan terjadinya
sebuah sirkuit virtual (virtual circuit) antara pengguna dan sumber daya jaringan yang ia
akses.
Firewall ini dianggap lebih aman dibandingkan dengan Packet-Filtering Firewall, karena
pengguna eksternal tidak dapat melihat alamat IP jaringan internal dalam paket-paket yang ia
terima, melainkan alamat IP dari firewall. Protokol yang populer digunakan sebagai Circuit-
Level Gateway adalah SOCKS v5.
Firewall jenis lainnya adalah Application Level Gateway (atau Application-Level Firewall
atau sering juga disebut sebagai Proxy Firewall), yang umumnya juga merupakan komponen
dari sebuah proxy server. Firewall ini tidak mengizinkan paket yang datang untuk melewati
firewall secara langsung. Tetapi, aplikasi proxy yang berjalan dalam komputer yang
menjalankan firewall akan meneruskan permintaan tersebut kepada layanan yang tersedia
dalam jaringan privat dan kemudian meneruskan respons dari permintaan tersebut kepada
komputer yang membuat permintaan pertama kali yang terletak dalam jaringan publik yang
tidak aman.
Umumnya, firewall jenis ini akan melakukan autentikasi terlebih dahulu terhadap pengguna
sebelum mengizinkan pengguna tersebut untuk mengakses jaringan. Selain itu, firewall ini
juga mengimplementasikan mekanisme auditing dan pencatatan (logging) sebagai bagian dari
kebijakan keamanan yang diterapkannya.Application Level Firewall juga umumnya
mengharuskan beberapa konfigurasi yang diberlakukan pada pengguna untuk mengizinkan
mesin klien agar dapat berfungsi. Sebagai contoh, jika sebuah proxy FTP dikonfigurasikan di
atas sebuah application layer gateway, proxy tersebut dapat dikonfigurasikan untuk
mengizinlan beberapa perintah FTP, dan menolak beberapa perintah lainnya. Jenis ini paling
sering diimplementasikan pada proxy SMTP sehingga mereka dapat menerima surat
elektronik dari luar (tanpa menampakkan alamat e-mail internal), lalu meneruskan e-mail
tersebut kepada e-mail server dalam jaringan. Tetapi, karena adanya pemrosesan yang lebih
rumit, firewall jenis ini mengharuskan komputer yang dikonfigurasikan sebagai application
gateway memiliki spesifikasi yang tinggi, dan tentu saja jauh lebih lambat dibandingkan
dengan packet-filter firewall.
NAT Firewall
NAT (Network Address Translation) Firewall secara otomatis menyediakan proteksi terhadap
sistem yang berada di balik firewall karena NAT Firewall hanya mengizinkan koneksi yang
datang dari komputer-komputer yang berada di balik firewall.Tujuan dari NAT adalah untuk
melakukan multiplexing terhadap lalu lintas dari jaringan internal untuk kemudian
menyampaikannya kepada jaringan yang lebih luas (MAN, WAN atau Internet) seolah-olah
paket tersebut datang dari sebuah alamat IP atau beberapa alamat IP. NAT Firewall membuat
tabel dalam memori yang mengandung informasi mengenai koneksi yang dilihat oleh
firewall. Tabel ini akan memetakan alamat jaringan internal ke alamat eksternal. Kemampuan
untuk menaruh keseluruhan jaringan di belakang sebuah alamat IP didasarkan terhadap
pemetaan terhadap port-port dalam NAT firewall.
Stateful Firewall
Virtual Firewall adalah sebutan untuk beberapa firewall logis yang berada dalam sebuah
perangkat fisik (komputer atau perangkat firewall lainnya).Pengaturan ini mengizinkan
beberapa jaringan agar dapat diproteksi oleh sebuah firewall yang unik yang menjalankan
kebijakan keamanan yang juga unik, cukup dengan menggunakan satu buah
perangkat.Dengan menggunakan firewall jenis ini, sebuah ISP (Internet Service Provider)
dapat menyediakan layanan firewall kepada para pelanggannya, sehingga mengamankan lalu
lintas jaringan mereka, hanya dengan menggunakan satu buah perangkat.Hal ini jelas
merupakan penghematan biaya yang signifikan, meski firewall jenis ini hanya tersedia pada
firewall kelas atas, seperti Cisco PIX 535.
Transparent Firewall
Transparent Firewall (juga dikenal sebagai bridging firewall) bukanlah sebuah firewall yang
murni, tetapi ia hanya berupa turunan dari stateful Firewall. Daripada firewall-firewall
lainnya yang beroperasi pada lapisan IP ke atas, transparent firewall bekerja pada lapisan
Data-Link Layer, dan kemudian ia memantau lapisan-lapisan yang ada di atasnya. Selain itu,
transparent firewall juga dapat melakukan apa yang dapat dilakukan oleh packet-filtering
firewall, seperti halnya stateful firewall dan tidak terlihat oleh pengguna (karena itulah, ia
disebut sebagai Transparent Firewall).
Intinya, transparent firewall bekerja sebagai sebuah bridge yang bertugas untuk menyaring
lalu lintas jaringan antara dua segmen jaringan.Dengan menggunakan transparent firewall,
keamanan sebuah segmen jaringan pun dapat diperkuat, tanpa harus mengaplikasikan NAT
Filter. Transparent Firewall menawarkan tiga buah keuntungan, yakni sebagai berikut:
Penapisan paket
Penapisan paket (bahasa Inggris: Packet filtering) adalah mekanisme yang dapat memblokir
paket-paket data jaringan yang dilakukan berdasarkan peraturan yang telah ditentukan
sebelumnya.
Packet filtering adalah salah satu jenis teknologi keamanan yang digunakan untuk mengatur
paket-paket apa saja yang diizinkan masuk ke dalam sistem atau jaringan dan paket-paket apa
saja yang diblokir. Packet filtering umumnya digunakan untuk memblokir lalu lintas yang
mencurigakan yang datang dari alamat IP yang mencurigakan, nomor port TCP/UDP yang
mencurigakan, jenis protokol aplikasi yang mencurigakan, dan kriteria lainnya. Akhir-akhir
ini, fitur packet filtering telah dimasukkan ke dalam banyak sistem operasi (IPTables dalam
GNU/Linux, dan IP Filter dalam Windows) sebagai sebuah fitur standar, selain tentunya
firewall dan router.
Implementasi
Static packet filteringakan menentukan apakah hendak menerima atau memblokir setiap
paket berdasarkan informasi yang disimpan di dalam header sebuah paket (seperti halnya
alamat sumber dan tujuan, port sumber dan tujuan, jenis protokol, serta informasi lainnya).
Jenis ini umumnya ditemukan di dalam sistem-sistem operasi dan router dan menggunakan
sebuah tabel daftar pengaturan akses (access control list) yang berisi peraturan yang
menentukan “takdir” setiap paket: diterima atau ditolak.
Administrator jaringan dapat membuat peraturan tersebut sebagai daftar yang berurutan.
Setiap paket yang datang kepada filter, akan dibandingkan dengan setiap peraturan yang
diterapkan di dalam filter tersebut, hingga sebuah kecocokan ditemukan. Jika tidak ada yang
cocok, maka paket yang datang tersebut ditolak, dan berlaku sebaliknya.
Peraturan tersebut dapat digunakan untuk menerima paket atau menolaknya dengan
menggunakan basis informasi yang diperoleh dari header protokol yang digunakan, dan jenis
dari paket tersebut. Kebanyakan perangkat yang memiliki fitur packet filtering, menawarkan
kepada administrator jaringan untuk membuat dua jenis peraturan, yakni inbound rule dan
outbound rule. Inbound rule merujuk kepada inspeksi paket akan dilakukan terhadap paket
yang datang dari luar, sementara outbound rule merujuk inspeksi paket akan dilakukan
terhadap paket yang hendak keluar.
Dynamic packet filtering beroperasi seperti halnya static packet filtering, tapi jenis ini juga
tetap memelihara informasi sesi yang mengizinkan mereka untuk mengontrol aliran paket
antara dua host secara dinamis, dengan cara membuka dan menutup port komunikasi sesuai
kebutuhan. Jenis ini seringnya diimplementasikan di dalam produk firewall, di mana produk-
produk tersebut dapat digunakan untuk mengontrol aliran data masuk ke jaringan dan aliran
data keluar dari jaringan.
Sebagai contoh, sebuah dynamic packet filter dapat dikonfigurasikan sedemikian rupa
sehingga hanya lalu lintas inbound protokol Hypertext Transfer Protocol (HTTP) saja yang
diizinkan masuk jaringan, sebagai respons dari request dari klien HTTP yang berada di dalam
jaringan. Untuk melakukan hal ini, lalu lintas oubound yang melalui port 80/TCP akan
diizinkan, sehingga request HTTP dari klien yang berada di dalam jaringan dapat diteruskan
dan disampaikan ke luar jaringan. Ketika sebuah request HTTP outbound datang melalui
filter, filter kemudian akan melakukan inspeksi terhadap paket untuk memperoleh informasi
sesi koneksi TCP dari request yang bersangkutan, dan kemudian akan membuka port 80
untuk lalu lintas inbound sebagai respons terhadap request tersebut. Ketika respons HTTP
datang, respons tersebut akan melalui port 80 ke dalam jaringan, dan kemudian filter pun
menutup port 80 untuk lalu lintas inbound.
Pendekatan seperti ini tidak mungkin dilakukan di dalam static packet filtering, yang hanya
dapat dikonfigurasikan untuk memblokir lalu lintas inbound ke port 80 atau membukanya,
bukan sebagian dari lalu lintas tersebut. Meskipun demikian, dynamic packet filtering juga
dapat dikelabui oleh penyerang, karena para penyerang dapat “membajak” sebuah sesi
koneksi TCP dan membuat lalu lintas yang datang ke jaringan merupakan lalu lintas yang
diizinkan. Selain itu, dynamic packet filtering juga hanya dapat digunakan pada paket-paket
TCP saja, dan tidak dapat digunakan untuk paket User Datagram Protocol (UDP) atau paket
Internet Control Message Protocol (ICMP), mengingat UDP dan ICMP bersifat
connectionless yang tidak perlu membangun sebuah sesi koneksi (seperti halnya TCP) untuk
mulai berkomunikasi dan bertukar informasi.
IPTables
IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebut
dinamakan rantai firewall (firewall chain) atau sering disebut chain saja. Ketiga chain
tersebut adalah INPUT, OUTPUT dan FORWARD.
Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada saat sebuah
paket sampai pada sebuah lingkaran, 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:
1. Paket berada pada jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan,
contoh eth0.
3. Paket masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi
untuk me-mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lain-lain.
4. Paket
masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi 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, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh
LAN.
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan,
contoh eth0.
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.
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, contoh
eth0.
8. Paket berada pada jaringan fisik, contoh internet.
3. Sintaks 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 :
◦ NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT
adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
◦ MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS
dan MARK.
◦ 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
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.
Match Keterangan
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
--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
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:
--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.
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.
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 (??).
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.
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.
-j ACCEPT Ketika paket cocok dengan daftar match dan target ini
--jump ACCEPT 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.
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.
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.
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.
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.
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.
LANGKAH KERJA
1. Buatlah jaringan seperti topologi pada gambar berikut:
2. Buatlah tabel chain dan rule yang akan diimplementasikan pada topologi yang akan
digunakan, seperti tabel dibawah ini:
Source Destination
No. Chain Action
IP Address Port Protocol IP Address Port Protocol
1 FORWARD 1.1.1.0/24 - ICMP 2.2.2.0/24 - ICMP ACCEPT
2 FORWARD 1.1.1.0/24 - ICMP 3.3.3.0/24 - ICMP DROP
3 FORWARD 2.2.2.0/24 - ICMP 3.3.3.0/24 - ICMP DROP
4 FORWARD 1.1.1.0/24 ANY TCP 2.2.2.0/24 80 TCP ACCEPT
5 FORWARD 3.3.3.0/24 ANY TCP 2.2.2.0/24 80 TCP REJECT
6 INPUT 1.1.1.2/24 21 TCP - - - ACCEPT
7 INPUT 2.2.2.2/24 21 TCP - - - ACCEPT
8 INPUT 3.3.3.2/24 21 TCP - - - ACCEPT
9 OUTPUT - - - 1.1.1.2/24 99 TCP REJECT
10 OUTPUT - - - 2.2.2.2/24 99 TCP REJECT
11 OUTPUT - - - 3.3.3.2/24 99 TCP REJECT
12 FORWARD ANY ANY ANY ANY ANY ANY ACCEPT
3. Lakukan konfigurasi IP Address pada setiap host :
a. Host LAN 1
eth0 : 1.1.1.1/24
Gateway : 1.1.1.2
b. Host LAN 2
eth0 : 3.3.3.1/24
Gateway : 3.3.3.2
c. Web Server
eth5 : 2.2.2.1/24
Gateway : 2.2.2.2
d. Firewall
eth2 : 2.2.2.2/24
eth3 : 1.1.1.2/24
eth4 : 3.3.3.2/24
4. Ubah port FTP Firewall menjadi 99 agar tidak bentrok dengan port FTP LAN dan
WEB SERVER.
5. Lakukan pengecekan awal bahwa setiap firewall dan sistem packet filtering belum
diimplementasikan. Artinya antar jaringan masih bebas untuk melakukan koneksi
apapun satu sama lain.
6. Lakukan konfigurasi packet filtering sesuai dengan tabel awal dengan memasukan
perintah berikut :
a. iptables –A FORWARD –p icmp –s 1.1.1.0/24 –d 2.2.2.0/24 –j ACCEPT
b. iptables –A FORWARD –p icmp –s 1.1.1.0/24 –d 3.3.3.0/24 –j DROP
c. iptables –A FORWARD –p icmp –s 2.2.2.0/24 –d 3.3.3.0/24 –j DROP
7. Lakukan pengetesan terhadap jaringan yang sudah terkonfigurasi firewall dan packet
filteringnya.
HASIL PENGAMATAN
1. Kondisi jaringan dan koneksi antar host sebelum firewall dan packet filtering
diimplementasikan :
a. Host LAN 1
FTP ke Firewall
PING ke LAN 2
Akses ke Web Server
b. Host LAN 2
FTP ke Firewall
PING ke LAN 1
PING ke Web Server
c. Web Server
FTP ke Firewall
PING ke LAN 1
PING ke LAN 2
d. Firewall
FTP ke LAN 1
FTP ke LAN 2
PING ke LAN 2
PING ke LAN 1
d. Firewall
FTP ke LAN 1
FTP ke LAN 2
FTP ke Web Server
KESIMPULAN
Jika action yang akan digunakan pada suatu chain, adalah ACCEPT maka default
chain terakhir harus DROP, begitu pula sebaliknya. Jadi, tidak boleh ada action pada
suatu chain yang sama dengan action chain pada default terakhir.
Peraturan yang akan disusun pada IP filter, dilihat dari prioritas keamanan yang akan
diimplementasikan.
Chain default harus selalu disertakan di akhir tabel IP filter.