02/04/05 21:32 e8an97D8
>>55
iptables と ipchains の最も大きな違いはフィルタの構成にある。
特にルータとして動くときが違う。IP forwarding によってマシンを
通過してゆくパケットは ipchains では input/forward/output の
三つを通るが、iptables では forward チェインしか通らない。
このためルータとして動くときのルールをよりシンプルに書ける。
また、ipchains のマスカレードは forward チェインで行われるが、
iptables では OUTPUT/FORWARD の後ろに置かれた POSTROUTING
チェインと INPUT/FORWARD の前に置かれた PREROUTING チェインで
行われる。だから自分自身から出て行くパケットも NAT できる。
ipchains のマスカレードではマスカレードで使用するポート範囲が
決まっていたが、iptables の NAT では空いているローカルポートを
使う。また必要が無ければポート番号は書き換えられない。
iptables の ip_conntrack 機構により、ステートフルなフィルタが
出来る。例えば外に出てゆく TCP コネクションを許可するのに、
外向きの SYN パケットを許可するルールのみを書けばいい。
戻りパケットやコネクションが成立した後のパケット付随する ICMP
パケットについては ip_conntrack に任せられる。
このためルールを非常に簡潔に書く事が出来るし、不要なポートを
開けっぱなしにしないで済む。