Penyaringan paket

**Penapisan paket** () 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
Packet filtering terbagi menjadi dua jenis, yakni:
* *Static packet filtering* (Penapisan paket statis)
* *Dynamic packet filtering* (Penapisan paket dinamis), atau sering juga disebut sebagai *Stateful Packet Filter*.

### Static Packet Filtering

*Static packet filtering* akan 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 inspeksi paket akan dilakukan terhadap paket yang hendak keluar*, sementara *outbound rule* merujuk kepada inspeksi paket akan dilakukan terhadap paket yang datang dari luar.

### Dynamic Packet Filtering

*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.