next up previous contents
Next: 演習課題 Up: フィルタリングとカーネル Previous: カーネルの設定ファイル


カーネルの再構築が済んだら、再起動する前に、設定ファイル(/etc/rc.conf)を 編集し、再起動後すぐにNATになるように設定をしておきます。カーネルの 設定はデフォルトでは立ち上がった際に、安全のため全てのパケットの受け入れを拒否 するようになっています。今の場合には、NATのみを使い、フィルタリングは 素通しの設定にします。この設定の詳細については次の章で詳しく見ること にして、ここでは素通しの設定は /etc/ipf.rules に次のように書いておきます。

pass in  all
pass out all

次に、これらの設定に従って、フィルタリング、NAT を起動時に動くように /etc/rc.conf に設定をします。

ipfilter_enable="YES"    # Set to YES to enable ipfilter functionality
ipfilter_flags=""        # should be *empty* when ipf is _not_ a module
                         # (i.e. compiled into the kernel) to
                         # avoid a warning about "already initialized"
ipnat_enable="YES"       # Set to YES for ipnat; needs ipfilter, too!
ipmon_enable="YES"       # Set to YES for ipmon; needs ipfilter, too!
tcp_keepalive="YES"      # Enable stale TCP connection timeout (or NO).
tcp_drop_synfin="YES"    # Set to YES to drop TCP packets with SYN+FIN
                         # NOTE: this violates the TCP specification
icmp_drop_redirect="YES" # Set to YES to ignore ICMP REDIRECT packets
icmp_log_redirect="YES"  # Set to YES to log ICMP REDIRECT packets

なお、タイプミスが心配な方は、/etc/default/rc.conf から該当行を コピーしてきて、必要な箇所のみを編集すれば良いでしょう。

設定が終ったら、再起動して、プライベート側にマシンを用意してテスト して見てください。基本的には、プライベートからルーティングされていない グローバル側に出て行き、コネクションが成立すれば大丈夫でしょう (例えば telnet で試す)。詳しくは、tcpdump や ethereal などで、 グローバル、プライベート両方のパケットを監視して見てください。

Noriyo Kanayama