LinuCレベル3 303試験の例題と解説
328.3パケットフィルタ
■トピックの概要
このトピックの内容は以下の通りです。
<328.3 パケットフィルタ>
重要度 5
<説明>
iptablesの使用方法と設定に精通していること。
<主要な知識範囲>
・iptables を使用したパケットフィルタリング及びNAT(Network Address Translation)機能
<重要なファイル、用語、ユーティリティ>
・iptables
・iptables-save/iptables-restore
■例題
iptablesの説明として間違っているものを選びなさい。
1. netfilterはLinuxカーネルに実装されたパケットフィルタリング/NATの仕組みである
2. iptablesはTCPやUDPなどのパケットをルールに基づいてフィルタリングする
3. NATを使用する場合にはカーネルのIPフォワードを有効にする必要がある
4. iptables-saveはiptablesの設定を復元するシェルスクリプトを生成する
※この例題は実際のLinuC試験とは異なります。
解答と解説
答えは4. iptables-saveはiptablesの設定を復元するシェルスクリプトを生成する です。
iptablesを実行して、フィルタリングを行いたいパケットについてのルールを定義していきます。具体的には、TCPやUDP、ICMPといったプロトコルの種別やポート番号などの条件、そして条件にマッチした場合の許可や拒否といった挙動などを定義していきます。
iptablesによるNATは、あらかじめ指定されたIPアドレスやポート番号に転送を行う静的NATや、IPアドレスとポート番号の変換を行うIPマスカレードなどが設定できます。これらの機能はネットワークインターフェース間のパケット転送を伴うので、カーネルの設定を変更する必要があります。具体的には、/etc/sysctl.confファイルに以下の項目を設定しておきます。
○/etc/sysctl.confファイルへの設定項目
net.ipv4.ip_forward = 1
iptablesの設定はシステムを再起動すると失われてしまうので、iptables-saveコマンドを使って設定を出力、保存しておきます。保存した内容をiptables-restoreコマンドに読み込ませることでiptablesの設定を復元できるので、多くのディストリビューションではシステム起動時にiptables-restoreコマンドを実行することになります。
iptables-saveコマンドの出力形式は、iptablesコマンドを実行する際に指定するオプションと値の形式になっているので、保存した情報をさらにエディタなどで修正し、iptables-restoreコマンドで再度読み込みし直すことでiptablesの設定を変更できます。実際の運用ではこのような方法でのiptablesの設定を行うことになるでしょう。