Iptables adalah perangkat lunak firewall yang digunakan dalam distribusi perangkat lunak Linux yang bekerja dengan menyaring paket melalui sistem tabel yang berisi rantai aturan untuk penyaringan paket. Rantai dan set aturan yang terdapat dalam firewall menentukan apakah suatu paket diizinkan dan, jika demikian, bagaimana penanganannya. Tabel itu sendiri disimpan dalam memori, dan perangkat lunak iptables menyediakan konfigurasi rantai di dalam tabel.
Setiap paket data yang dikirim melalui jaringan memiliki informasi identitas yang dibaca oleh sistem penerima. Perangkat lunak Iptables mengambil informasi ini dan menentukan apa yang harus dilakukan dengannya dengan memindahkannya melalui serangkaian aturan yang dirantai. Aturan berfungsi untuk mengklasifikasikan paket berdasarkan informasi pengenalnya, seperti alamat protokol Internet (IP). Setelah diidentifikasi, paket berpindah dari satu rantai ke rantai berikutnya, tergantung pada set aturan yang dikonfigurasi. Rantai menentukan bagaimana sistem mendistribusikan paket.
Aturan adalah kriteria untuk bagaimana sebuah paket bergerak dalam rantai keputusan iptables. Paket akan berpindah dari satu aturan ke aturan berikutnya, selama memenuhi persyaratan untuk setiap rantai. Setiap paket akan diterima, diteruskan, dijatuhkan, diantrekan, disetel ulang, atau dikembalikan.
Penerimaan memindahkan paket ke rantai berikutnya, dan menjatuhkan menghapus paket sepenuhnya. Jika paket di antri, paket tersebut akan dipindahkan dan dialamatkan dalam penangan antrean terpisah di dalam ruang pengguna. Ketika sebuah paket dikembalikan, ia bergerak kembali ke rantai terakhir yang diterima.
Iptables adalah aplikasi ruang pengguna, artinya ia beroperasi dalam ruang terpisah di dalam fitur kernel Linux. Kriteria yang digunakan untuk mengidentifikasi dan mendistribusikan paket oleh firewall sepenuhnya dapat dikonfigurasi dan disesuaikan menggunakan serangkaian opsi perintah. Ini termasuk menyiapkan penyisihan untuk sesi yang ditetapkan, memblokir jenis lalu lintas dan akses dan hanya mengizinkan lalu lintas tertentu pada port tertentu. Perangkat lunak ini juga dapat diatur untuk mencatat semua lalu lintas masuk atau hanya mencatat jenis lalu lintas tertentu.
Perangkat lunak Iptables dikelola oleh proyek Nefilter dan pertama kali dimulai pada tahun 1998. Selain digunakan sebagai firewall dan perangkat lunak manipulasi paket, Iptables juga dapat digunakan untuk penyamaran IP, implementasi proxy transparan, dan analisis log. Hal ini memungkinkan firewall untuk mendeteksi dan mencegah aktivitas yang berpotensi berbahaya, yang selanjutnya melindungi sistem. Perangkat lunak ini juga diatur untuk konfigurasi dengan ekstensi pihak ketiga, karena berisi beberapa lapisan antarmuka pemrograman aplikasi. Iptables biasanya diinstal secara default pada sebagian besar distribusi sistem operasi Linux.