Tembok api
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.
Firewall terbagi menjadi dua jenis, yakni sebagai berikutSecara mendasar, tembok api dapat melakukan hal-hal berikut:
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.
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:
Agar dua host TCP/IP dapat saling berkomunikasi, mereka harus saling membuat sambungan 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.
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".
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.
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:
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.
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.