#3:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
これによって、以前に開始され、受け付けられたコネクションすべてに対するルールのチェックがバイパスされるようになる。「ESTABLISHED」引数および「RELATED」引数は「--state」オプションに属するものである。「ESTABLISHED」引数は「既に確立されているコネクションに属しているパケットすべて」を意味しており、「RELATED」引数は「既に確立されているコネクションには属していないものの、既に確立されているコネクションに関連しているパケットすべて」を意味している。iptablesは、内部に持っている「状態遷移機械」とカーネルレベルの「conntrack」モジュールを用いてコネクションの追跡を行うようになっている。これによってiptablesは、コネクションの可否を決定できるようになるわけだ。この指定を活用することで、管理者は自らの作業を低減できるようになる。
以下は、こういった状態の遷移である。ローカルユーザーがコネクションを開設しようとすると、該当パケット(そのコネクションを開設するための)が「PREROUTING」チェイン内に「NEW」という状態で記録される。ローカルユーザーの元に応答パケットが返ってくると、「PREROUTING」チェイン内の状態は「ESTABLISHED」に変更される。このため、状態が「ESTABLISHED」になった時点で、適切なiptablesのルールを用いて許可されることになるのだ。
#4:iptables -N logdrop
この便利なチェインを用いることで、iptablesによってドロップされたすべてのパケットをログとして記録することができる。こういったことはもちろん、このチェインを作成するだけでは実現できない。実際には、次の2つのルールを追加する必要がある。それは「iptables -A logdrop -j LOG」と「iptables -A logdrop -j DROP」だ。これでルールに適合するすべてのパケット(この例では、ドロップされるすべてのパケット)がlogdropチェインに追加され、ログ出力が行われた後でドロップされるようになるのである。
#5:iptables -t nat -A PREROUTING -i WLAN_INTERFACE -p tcp --dport PORTNUMBERS -j DNAT --to-destination DESTINATION_IP
外部からのパケットを特定内部マシンの特定ポートにルーティングする必要がある場合、ここで解説する指定を行えばよい。このルールは、ネットワークアドレス変換の利点を活かして、パケットの適切なルーティングを行うものとなっている。あなたのニーズに合わせるには、「WLAN_INTERFACE」を外部ネットワークと内部ネットワークの橋渡しを行うWLANインターフェースへと変更し、「PORTNUMBERS」を変更し、「DESTINATION_IP」をルーティング先マシンのIPアドレスに適合するよう変更しなければならない。