iptablesの動作は全てをいきなり網羅的に理解するのは大変です。スモールスタート方式で基礎的なところから確認していきます。まずはもっとも基本的なINPUT、OUTPUT、FORWARDの違いからスタートです。
そもそも通信とは?
iptablesの動作を理解する際には、通信といったときに、何と何が通信しているかを意識してください。
INPUTの動作
端末外部のプロセスから、NICを通って内部のプロセスへ通信する際に適用されます。
INPUTをDROPするように設定すると、外部からの通信が端末内のプロセスに一切届かなくなります。
OUTPUTの動作
端末内部のプロセスから、NICを通って外部のプロセスへの通信する際に適用されます。
OUTPUTをDROPするように設定すると、外部への通信が一切できなくなります。
この場合、PINGすらできなくなる!
FORWARDの動作
内部のNWに接続しているNIC1から、インターネット側のNIC2に対して、パケットを転送するケースを考えてください。FROWARDは、ルータ等のパケットの転送の際に実行されます。
INPUTは「内部のプロセスへ」、OUTPUTは「内部のプロセスから」の通信に対して適用されます。
転送では、端末内部のプロセスとは通信をおこないません。そのためINPUTやOUTPUT等でDROPしたとしても、転送は破棄されません。FORWARDをDROPするように設定すると、NIC間での転送が行われなくなります。
今後書くこと
iptablesの設定(フィルタテーブル・NATテーブル)
透過型FWの設定
透過型プロキシの設定
NICのbridgeの設定