A.1. 稼働中のルールセットのリストアップ

現在アクティブなルールセットをリストアップするには、iptables コマンドに特別なオプションを付けて実行する。詳しくはチャプター ルールの作り方 で述べた。コマンドは以下のようになる:

    iptables -L
   

このコマンドを実行すると、現在動作しているルールセットが可能な限り読みやすい形に整形されてリストアップされるはずだ。整形とは、各種ポートは /etc/services ファイルに基づいてポート名へ、IPアドレスは DNS レコードを参照して名前に解決される、などといった事柄だ。ただし、後者は問題につながることもある。例えば 192.168.1.1 といった LAN IPアドレスも解決しようとするのだ。192.168.0.0/16 はプライベートアドレス域なのでリゾルブされるべきものではなく、解決しようと試みる間ハングしたようになる。この問題を避けるには、下記のようにする:

    iptables -L -n
   

もうひとつ役に立つと思われるのは、ポリシー、ルール、チェーンそれぞれの統計情報を見ることだろう。これを行うには、冗長 (verbose) フラグを追加する。その時のコマンドは以下のようになる:

    iptables -L -n -v
   

もちろん、nat テーブルや mangle テーブルをリストアップすることも可能だ。これは -t スイッチでできる。こんな具合だ:

    iptables -L -t nat
   

また、/proc ファイルシステムにもいくつか興味を惹くファイルがある。例えば、今現在 conntrack テーブルにどんなコネクションが記録されているか調べると、役に立つことがある。このテーブルは現在捕捉されている各種のコネクション情報を保有しており、特定のコネクションがどのステート にあるかを知るための基準テーブルとして機能している。このテーブルに手を加えるのは不可で、もし変更できたとしても、ろくなことはない。テーブルを見るには下記のコマンドが使える:

    cat /proc/net/ip_conntrack | less
   

上記コマンドを実行すれば、読み解くには多少の苦労が伴うにしろ、ともかく現在追跡されているコネクションのすべてが見られる。