7.2.ipFilterの入手とインストール
 7.2.1.ipFilterとpfillの入手
 7.2.2.GCCとMakeの指定
 7.2.3.インストールの下準備
 7.2.4.pfilのインストール
 7.2.5.ipFilterの展開とインストール
 7.2.6.動作確認
 7.2.7.Syslogの設定
 


7.2.ipFilterの入手とインストール

 7.2.1.ipFilterとpfillの入手
    IP FilterのサイトからIP Filterとpfilをダウンロードします。
 ■IP Filter
  ※ipfilterは一番上にあるCurrent versionのとこをクリック
  ※pfillは「Beta-versions can usually be found, if available」のとこのFTPサイト内

 今回は2004/07/22日現在の最新版であるip_fil4.1.3を用いて説明します。
例)wgetを用いて入手
$wget ftp://coombs.anu.edu.au/pub/net/ip-filter/ip_fil4.1.3.tar.gz[Enter]
 --- 省略 ---
$wget ftp://coombs.anu.edu.au/pub/net/ip-filter/pfil2.1.tar.gz[Enter]
 --- 省略 ---

 7.2.2.GCCとMakeの指定
    現在の(私の)設定では、makeはGNUmakeをデフォルトで使用する設定になっているのでSunMake使用するために/usr/bin/makeのリンクを以下のように張り替えます。
$su[Enter]
**** <-- rootのパスワードを入力
#rm /usr/bin/make[Enter] <--gmakeへのリンクを削除
#ln -s /usr/ccs/bin/make /usr/bin/make <--makeへのリンクを作成
#
#

 次に、コンパイルに使用するCコンパイラにが先ほどインストールした64bit対応のGCCを利用するようにします。
 また、コンパイルにldが必要なので「/usr/ccs/bin」にもPATHを通します。
$PATH=$PATH:/usr/local/bin:/usr/ccs/bin[Enter]
$gcc --version[Enter]
 gcc (GCC) 3.3.2
 Copyright (C) 2003 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions. There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 ↑先ほどのGCC3.3.2が実行されることを確認

※もしも「/usr/local/bin」へパスを通してもインストールしたGCCが実行されない場合は他のGCCへもPATHが通っている可能性があるので、他のGCCの名前を一時的に変更するなどして対応してください。

 7.2.3.インストールの下準備
    ipfilterの動作に必要なpfilをまずはインストールします。

1.アーカイブの解凍と展開
 おなじみのコマンドを用いてgz圧縮を伸張し、ファイルを展開します。
$gunzip pfil2.1.tar.gz[Enter]
$tar xfv pfil2.1.ta[Enter]
 --- 省略 ---

2.Makefileの修正
 pfilのオリジナルのMakefileではGCCを使ってコンパイルするときに「code=abs32」が不正だといってエラーになってします。そこで、以下のようにMakefileを修正してGCCでコンパイルできるようにします。
$cd pfil[Enter]
$/opt/sfw/bin/emacs Makefile[Enter]

Makefile
27行目あたり:
 S64FLAGS=-xildoff -xarch=v9 -xchip=ultra -dalign -xcode=abs32 -DDO=pfil${SBITS}
を以下のように変更
 S64FLAGS=-m64 -mcmodel=medlow -DDO=pfil${SBITS}

 7.2.4.pfilのインストール
    Makefileの修正が終わったら、pfilをコンパイルしてインストールを行います。

1.インストール用パッケージの作成
 ソースのディレクトリへ移動しコンパイルを実行します。この時「CC=gcc」としてコンパイラにgccを使うことを指定します。
$CC=gcc make package[Enter]
 --- 省略 ---
 ## Packaging complete.
 pkgtrans -s /tmp pfil.pkg pfil
 Transferring <pfil> package instance

2.パッケージのインストール
 コンパイルして作成したpfilのパッケージ(/tmp/pfil.pkg)をインストールします。
$su[Enter]
**** <-- rootのパスワードを入力
# pkgadd -d /tmp/pfil.pkg[Enter]

The following packages are available:
 1 pfil  Packet Filtering Interface
       (sparc) 2.1,REV=17:20:13 07/29/04

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:[Enter]
 --- 省略 ---
This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of <pfil> [y,n,?]y[Enter]
 --- 省略 ---
Installation of <pfil> was successful.
#

3.システムのリブート
 設定を有効にするため、システムをリブートさせてpfilを読み込ませます。
$su[Enter]
**** <-- rootのパスワードを入力
# shutdown -i6 -g0 -y[Enter]

 7.2.5.ipFilterの展開とインストール
    アーカイブを展開しコンパイルを行います。

1.アーカイブの展開とコンパイル
 ダウンロードしたアーカイブを展開し「make solaris」を実行します。すると、コンパイルが開始されます。
$gunzip ip_fil4.1.3.tar.gz[Enter]
$tar xfv ip_fil4.1.3.tar[Enter]
 --- 省略 ---
$cd ip_fil4.1.3[Enter]
$CC=gcc make solaris[Enter]
 --- 省略 ---

2.パッケージの作成とインストール
 コンパイルしたIpfilterのバイナリからインストール用のパッケージを作成しインストールを行います。
$su[Enter]
**** <-- rootのパスワードを入力
#cd SunOS5[Enter]
#make package[Enter]
 --- 省略 ---
 ## Checking for setuid/setgid programs.
 
 This package contains scripts which will be executed with super-user
 permission during the process of installing this package.
 
 Do you want to continue with the installation of <ipf> [y,n,?]y[Enter]
 --- 省略 ---
 Installation of <ipf> was successful.
#

4.システムのリブート
 設定を有効にするため、システムをリブートさせてIpFilterを読み込ませます。
$su[Enter]
 **** <-- rootのパスワードを入力
# shutdown -i6 -g0 -y[Enter]

 7.2.6.動作確認
    pfilとIpFilterが正しくインストールされ動作していることを確認します。

1.モジュールのチェック
 次のコマンドを用いて、pfilのモジュールが正しくロードされていることを確認します。
$su[Enter]
**** <-- rootのパスワードを入力
#trconf </dev/hme[Enter]
 pfil <-- pfilのモジュールがロードされている
 hme

2.インタフェース設定のチェック
 次のコマンドを用いてhme0(複数ある場合にはそれらも)インタフェースへpfilモジュールが適応されていることを確認します。
#ifconfig hme0 modlist[Enter]
 0 arp
 1 ip
 2 pfil <-- pfilのモジュールが適応されている
 3 hme

 7.2.7.Syslogの設定
    ipfilterに引っかかったパケットのログを取るにはSyslogの設定を変更する必要があります。
 以下のようにしてSyslogの設定を変更してください。
$su[Enter]
**** <-- rootのパスワードを入力
#cd /etc[Enter]
#cp syslog.conf syslog.conf.org[Enter]
#/opt/sfw/bin/emacs syslog.conf[Enter]

 次の一行を19行目あたりに追加
local0.info       /var/log/ipf.log

 ログファイルの作成とSyslogの再起動
#touch /var/log/ipf.log[Enter]
#/etc/rc2.d/S74syslog stop[Enter]
#/etc/rc2.d/S74syslog start[Enter]
 syslog service starting.
#

 
   >>> 7.3.IPFilterの設定へ <<<


このドキュメントの間違い・誤字・脱字を発見された方は筆者までご連絡をいただけるとうれしいです。

また、私のわかる範囲でご質問にも答えようと思います。ご質問や疑問点がある方は気楽にメールをください。