Linux 2.4.x 以降でパケットフィルタリングなどに使用されるプログラム。IPv4用。IPv6用はip6tables。
■ 機能
・パケットフィルタリング
・ネットワークアドレス/ポートトランスレーション(NA[P]T)
・その他パケット改変など
■ 歴史
Linux 2.0.x … ipfwadm
Linux 2.2.x … ipchains
Linux 2.4.x … iptables ←★これ。以前のものから大きく改良された。
チェインとテーブルの組み合わせ毎の定義により、どのタイミングでどのようにパケット操作するかをコントロールできる。
■チェイン
パケット操作のタイミングはチェインとして定義されている。
・PREROUTING
・FORWARD
・INPUT
・OUTPUT
・POSTROUTING
■ テーブル
・mangleテーブル … パケットの改変に使われる。
・natテーブル … NATに利用する。
・rawテーブル … コネクション追跡で扱われないよう特定のパケットにマークを付ける。
・filterテーブル … パケットのフィルタリングに使用される。
全てを理解せずとも、基本的な設定は定型的に行う事が出来ると思いますが、チェイン&テーブルという(実装というより理論・構造としての)フレームワークが定義されている上で、カスタマイズ可能な仕組みになっており、詳細にパケットをコントロールしたい場合にも対応出来る深みのある機能だと思います。