| 2.kernelの再構築とLinux FreeS/WAN及びPoPToPのインストール 今回構築するVPNの構成をもう一度確認しておきましょう。 それでは、この図にあるAのLinux ServerとEのLinux Serverに以下の作業を行います。 (1)再起動用ブートフロッピーディスクの作成 すぐにでも kernel の再構築を始めたいところですが、もし再構築に失敗した場合、Linuxが起動しなくなる恐れがあります。 そこで、現在稼動中の kernel で再起動用のブートフロッピーを作成しておきましょう。 新しいフロッピーディスクを用意し、ドライブに差し込んでおいてください。 そして、
で kernel のバージョンを確認します。(ここでは、「2.4.18-19.7.x 」と返ってきたとします。) 次に、以下のコマンドを入力して、表示されたメッセージに対し <Enter> キーを押せばブートフロッピーの完成です。
(2)kernelの展開 それでは、ダウンロードしてきた linux-2.4.19.tar.gz を /usr/src/ のディレクトリで展開しましょう。
これにより、/usr/src/linux-2.4.19 というディレクトリが作成され、そこにソースが展開されます。 次に、 /usr/src/linux というディレクトリがあるかどうかを確認し、次のように処理します。
これは、これからの一連の処理が /usr/src/linux というディレクトリにあるソースに対して行わなければエラーとなるためです。 さて、デフォルトの状態のままで kernel を再構築すると /boot/ ディレクトリに vmlinuz-2.4.19 というkernel が作成されるとともに、そのkernelに対応した各種モジュールが /lib/modules/2.4.19/ のディレクトリにインストールされます。 ところが、kernel のバージョンが linux-2.4.19 のままで、PPTPやIPsecの新しいパッチを適用して再構築すると、やはり/boot/ ディレクトリに vmlinuz-2.4.19 という kernel と /lib/modules/2.4.19 というモジュールディレクトリが作成されます。 すなわち、新しいものに置き換わってしまうということです。 これは、ちょっとまずいことになります。 それまでの vmlinuz-2.4.19 の kernel では正しく起動していたLinuxが、新しいパッチを適用したために正しく起動しないかもしれません。 こうしたことが起こらないように、今回構築する kernel のバージョン名を少し変えておくことにします。 方法は簡単です。 /usr/src/linux/ のディレクトリにある Makefile の「 EXTRAVERSION 」の値を適当なエディタで修正するだけです。 具体的には、
で開いて、先頭から4行目にある「 EXTRAVERSION = 」(デフォルトでは「=」の後ろには何も書かれていません)に適当な文字(今回は「-VPN」)を追加して保存します。
これで、今回構築する kernel は /boot/vmlinuz-2.4.19-VPN となり、モジュールのディレクトリも /lib/modules/2.4.19-VPN/ となります。 もし、linux-2.4.19 を使ってもう一度別の kernel を再構築する場合には、「 EXTRAVERSION 」の値を違ったものにすれば、今回構築する kernel( vmlinuz-2.4.19-VPN ) や モジュール( /lib/modules/2.4.19-VPN )はそのまま残るので、安心できます。 (3)カーネル・パラメータの設定 さて、kernel を再構築する場合、一番の難関がカーネル・パラメータの設定です。 カーネル・パラメータの項目は数百個もあり、これをいちから設定していくのは至難の業です。 そこで、既存のカーネル・パラメータの設定(ここではRedHat Linux が設定しているカーネル・パラメータ)を引き継ぎ、新たに必要な項目だけ設定するようにすれば簡単かつ確実です。 この場合、今までにカーネルのソースをインストールしていれば非常に簡単な処理で済みます。 現在のkernel が2.4.18-19.7.x で、/usr/src/linux-2.4.18-19.7.x/ というディレクトリがあった場合、そのディレクトリにある「.config」というファイルを利用します。 この /usr/src/linux-2.4.18-19.7.x/.config というファイルを /usr/src/linux/ のディレクトリにコピーするだけです。
もし、今までにカーネルのソースをインストールしたことがなければ、ここでインストールしてください。 linux-2.4.18-19.7.x のソースは、kernel-source-2.4.18-19.7.x.i386.rpm です。 これを、RedHat社 のErrata・アップデートやAbout Rpmfind.Net Server からダウンロードし、
とすると、/usr/src/linux-2.4.18-19.7.x/configs/ のディレクトリにいくつかの「.config」ファイルもインストールされます。 そこで、自分のマシンに適したものを /usr/src/linux/ にコピーします。 例えば、「 kernel-2.4.18-i686.config 」を使う場合には、
とします。 (4)PPTPのパッチ適用 それでは、PPTPのパッチを適用しましょう。(現在のディレクトリは、/usr/src/linux/ です。) AのLinuxサーバーにPoPToP(pptp)の機能が不要な場合は、次の「(5)Linux FreeS/WANのインストールとkernelのコンパイル」に進んでください。
それでは、パッチが正しく適用されたか確認してみましょう。
とすると、以下のメニューが表示されます。 このメニューの「Network device support ---> 」を選択し、「 PPP (point-to-point protocol) support 」の項目が次のようになっていればパッチが正しく適用されたことになります。 確認後、2度 < Exit > を選択し、「 Do you wish to save your new kernel configuration? 」という問い合わせに <Yes > を選択し、設定内容を保存します。 (5)Linux FreeS/WANのインストールとkernelのコンパイル それでは、Linux FreeS/WANのインストールを始めましょう。 但し、タイトルに書きましたように、Linux FreeS/WANのインストールは、同時に kernel のコンパイルも行います。 ここで重要な点は、ダウンロードしてきたLinux FreeS/WANを /usr/src/ のディレクトリで展開することです。 そうしないと、/usr/src/linux/ のディレクトリにある kernel のソースに正しくパッチが適用されません。 なお、今回はX.509公開鍵証明書に対応した freeswan-1.99-x509-0.9.19.tar.gz を使用してみることにしました。
以上により、/usr/src/freeswan-1.99 というディレクトリが作成され、その中にソースファイルが展開されます。 次に、
とすると、再度menuconfig の画面が表示されますので、 このメニューの「Networking Options ---> 」を選択し、「 IP Security Protocol (FreeS/WAN IPSEC) 」の項目が次のようになっていることを確認します。 確認後、2度 < Exit > を選択し、「 Do you wish to save your new kernel configuration? 」という問い合わせに <Yes > を選択し、設定内容を保存すると、続いて自動的に kernel のコンパイルが始まります。 つまり、通常 kernel をコンパイルする場合の処理である
が行われるわけです。 ちなみに、私のマシン(CPU=Pentium U 350MHz、MEM=128MB)のマシンではおよそ2時間かかりました。(~_~;) コンパイルの結果は、( /usr/src/freeswan-1.99 )/out.kbuild というファイルに出力されますので、
として、何も出力されなければ無事にコンパイルが終了したことになります。 <補足> --------------------------------------------------------------------------- 最新バージョンの「linux-2.4.20.tar.gz」を使いコンパイルした場合、途中でエラーとなり、そのエラーメッセージが次のように出力されました。
------------------------------------------------------------------------------------ エラーが無いことを確認すれば、
を実行します。 これは、通常の kernel をコンパイルするときの、
と同じことを実行します。 この処理も私のマシンでは1時間ほどかかりました。 先ほどと同様に、コンパイルの結果は、( /usr/src/freeswan-1.99 )/out.kinstall というファイルに出力されますので、
として、何も出力されなければ無事にコンパイルが終了したことになります。 kernel再構築の最後の処理は、ブート・ローダーの設定です。 ベースとなったRedHat Linux 7.3では、GRUB(GRand Unified Bootloader)を使用していますので、
で開き、下記の赤字で示した行を追加します。
以上で、Linux FreeS/WANのインストールとPPTP及びIPsecに対応した kernel の再構築が完了しました。 (6)PPPのアップデート及びPoPToPのインストール これは簡単です。 ダウンロードしてきた ppp-2.4.1-3mppe.i386.rpm と pptpd-1.1.3-1.i386.rpm の2つのファイルをいつものコマンドでインストールするだけです。
(7)Linuxの再起動 以上で全てのインストール作業は終了しました。 新しい kernel でLinuxを再起動させましょう。
|