Tembok api, tembok pelindung atau dinding api (bahasa inggris : firewall) adalah suatu sistem yang dirancang untuk mencegah akses yang tidak diinginkan dari atau ke dalam suatu jaringan internal.
Tembok api bekerja dengan cara melacak dan mengendalikan jalannya
data serta memutuskan aksi untuk melewatkan (pass), menjatuhkan (drop),
menolak (reject), mengenkripsi atau melakukan pencatatan aktivitas (log)
data. Firewall menjamin agar data sesuai dengan aturan (rule) yang
terdapat di dalam kebijakan keamanannya (security policy) yaitu
seperangkat aturan yang telah didefinisikan di dalam keamanan jaringan
internal.
Umumnya, sebuah tembok api diterapkan dalam sebuah mesin terdedikasi, yang berjalan pada pintu gerbang (gateway) antara jaringan lokal dengan jaringan Internet.
Tembok api digunakan untuk membatasi atau 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 macam 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 perangkat digital
perusahaan tersebut dari serangan para peretas, pemata-mata, ataupun pencuri data lainnya, menjadi kenyataan.
Jenis-jenis Firewall
Firewall terbagi menjadi dua jenis, yakni sebagai berikut
- Personal Firewall: Tembok api personal dirancang untuk melindungi sebuah komputer yang terhubung ke jaringan dari akses yang tidak dikehendaki. Tembok api 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 tembok api lainnya dilengkapi dengan fungsi pendeteksian gangguan keamanan jaringan (Intrusion Detection System). Contoh dari tembok api 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 dirancang 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 tembok api 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 tembok api personal (packet filter tembok api dan stateful tembok api), 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
Secara mendasar, tembok api dapat melakukan hal-hal berikut:
- Mengatur dan mengontrol lalu lintas jaringan
- Melakukan autentikasi terhadap akses
- Melindungi sumber daya dalam jaringan privat
- Mencatat semua kejadian, dan melaporkan kepada administrator
1. Mengatur dan mengontrol lalu lintas jaringan
Fungsi pertama yang dapat dilakukan oleh tembok api adalah tembok api
harus dapat mengatur dan mengontrol lalu lintas jaringan yang diizinkan
untuk mengakses jaringan privat atau komputer yang dilindungi oleh
tembok api. Tembok api 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.
2. Proses inspeksi paket
Inspeksi paket (packet inspection) merupakan proses yang
dilakukan oleh tembok api 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:
- Alamat IP dari komputer sumber
- Port sumber pada komputer sumber
- Alamat IP dari komputer tujuan
- Port tujuan data pada komputer tujuan
- Protokol IP
- Informasi header-header yang disimpan dalam paket
3. Koneksi dan keadaan sambungan
Agar dua host TCP/IP dapat saling berkomunikasi, mereka harus saling
membuat sambungan antara satu dengan lainnya. Koneksi ini memiliki dua
tujuan:
- Komputer dapat menggunakan koneksi tersebut untuk mengidentifikasikan dirinya kepada komputer lain, yang meyakinkan bahwa sistem lain yang tidak membuat koneksi tidak dapat mengirimkan data ke komputer tersebut. Tembok api juga dapat menggunakan informasi koneksi untuk menentukan koneksi apa yang diizinkan oleh kebijakan akses dan menggunakannya untuk menentukan apakah paket data tersebut akan diterima atau ditolak.
- Koneksi digunakan untuk menentukan bagaimana cara dua host tersebut akan berkomunikasi antara satu dengan yang lainnya (apakah dengan menggunakan koneksi connection-oriented, atau connectionless).
Ilustrasi mengenai percakapan antara dua buah host
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.
Tembok api 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
tembok api: state table) yang memantau keadaan semua komunikasi
yang melewati tembok api. Dengan memantau keadaan koneksi ini, tembok
api dapat menentukan apakah data yang melewati tembok api sedang
"ditunggu" oleh host yang dituju, dan jika ya, aka mengizinkannya. Jika
data yang melewati tembok api tidak cocok dengan keadaan koneksi yang
didefinisikan oleh tabel keadaan koneksi, maka data tersebut akan
ditolak. Hal ini umumnya disebut sebagai Stateful Inspection.
4. Stateful Packet Inspection
Ketika sebuah tembok api 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, tetapi
juga pada keadaan apa host-host yang saling berkomunikasi tersebut
berada. SPI mengizinkan tembok api untuk melakukan penapisan tidak hanya
berdasarkan isi paket tersebut, tetapi juga berdasarkan koneksi atau
keadaan koneksi, sehingga dapat mengakibatkan tembok api 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 tembok api
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
tembok api 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
tembok api dengan inspeksi paket biasa. Apalagi, proses ini diselesaikan
tanpa adanya kebutuhan untuk mendefinisikan sebuah kebijakan untuk
mengizinkan respons dan komunikasi selanjutnya. Kebanyakan tembok api
modern telah mendukung fungsi ini.
5. Melakukan autentikasi terhadap akses
Fungsi fundamental tembok api yang kedua adalah tembok api 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, tembok api
dilengkapi dengan fungsi autentikasi dengan menggunakan beberapa
mekanisme autentikasi, sebagai berikut:
- Tembok api 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 tembok api. Umumnya, setelah koneksi diizinkan oleh kebijakan keamanan dalam tembok api, tembok api 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, tembok api 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.
6. Melindungi sumber daya dalam jaringan privat
Salah satu tugas tembok api adalah melindungi sumber daya dari
ancaman yang mungkin datang. Proteksi ini dapat diperoleh dengan
menggunakan beberapa pengaturan peraturan akses (access control),
penggunaan SPI, application proxy, atau kombinasi dari semuanya untuk
mengamankan host yang dilindungi supaya tidak dapat diakses oleh
host-host yang mencurigakan atau dari lalu lintas jaringan yang
mencurigakan. Meskipun demikian, tembok api bukan satu-satunya metode
proteksi teraman terhadap sumber daya, dan mempercayakan proteksi tembok
api dari ancaman 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 tembok api 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 tembok api menjadi tidak berguna. Hal ini
disebabkan oleh firewall 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 tembok api.
No comments:
Post a Comment