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

カーネルの再構築

IPFilter は非常に多くの OS に対応したソフトです。多くのソフトに 対応出来ている理由は、現代的なカーネルの持つモジュールに対応して いるからで、カーネルを再構築せずにモジュールをダイナミックに カーネルに組み込む事が出来る仕組みによっています。しかし、きちんと したファイアーウォールを作る場合には、カーネルを再構築出来る場合には 再構築した方が良いでしょう。FreeBSDでは、カーネルの再構築は非常に 容易に行えるようになっているので、ここではカーネルを再構築した上で 設定することにします。

カーネルを再構築する場合には基本的には以下の流れになります。

  1. 編集
    /sys/i386/conf ディレクトリに移動し、適当なファイルを参考に(GENERIC 及び LINT)カーネル設定ファイルを作成します(詳細は後述)。
  2. コンフィグ
    カーネル設定ファイルに従って必要なディレクトリやファイルを用意します。 これは config コマンドが自動的に行ってくれます。カーネル設定ファイル の名前が MYKERNEL だったならば、
    
        #  config  MYKERNEL
    
    で終りです。
  3. make
    config の最後に指示が出ますが、../../compile/MYKERNEL に移動し、
    
        #  make depend
        #  make
    
    を実行します。カーネル設定ファイルに誤りがなければ、新しいカーネルが 出来ます。
  4. カーネルのインストール
    カーネルがうまく出来れば、それをインストールして再起動します。
    
        #  make install
        #  shutdown  -r  now
    
  5. 再起動時に失敗したら
    うまく再起動出来なかった場合には以前のカーネルが、/kernel.old に残って いますので、起動時に以下のメッセージが出ている間に、
    
        Booting [kernel] in 9 seconds...
    
    リターンキー以外のキーを押して、失敗したカーネルを unload してから、 前にブートに成功したカーネルを load して、boot します。
    
      disk1s3a:> unload
      disk1s3a:> load  /kernel.old
      /kernel.old text= ...
      disk1s3a:> boot
      ...
    
    (> 以降を入力)

但し、make install コマンドは現在ある /kernel を /kernel.old に移動 しますので、成功した時の /kernel.old を取っておきたい場合には、 予め名前を変更しておきましょう。また、/kernel も /kernel.old も共に ブートしない場合には /kernel.GENERIC がありますので、これでブートして ください(従って、/kernel.GENERIC は絶対に削除してはいけません)。



Noriyo Kanayama