|
サーバーを運用する際、セキュリティ上危険で不要なサーバーアプリケーション、メモリを浪費する不要なデバイスなどをOS再起動後に読み込まないようにします。
FreeBSD ハンドブックなどから引用、要約します。
もし、サーバー内に ディレクトリ /usr/src/sys がなかったら、カーネルソースがインストールされていません。ソースのみインストールできます(OSすべて再インストールする必要はありません)。
% su root # /stand/sysinstall
Configure (設定) ⇒ Distributions (配布ファイル) ⇒ src (カスタム) ⇒ sys (カーネルのソース) をインストールします。
FreeBSDインストール用CDROM にアクセスして、コマンドラインでソースをインストールすることも可能です。
# mount /cdrom # mkdir -p /usr/src/sys # ln -s /usr/src/sys /sys # cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
次に、ディレクトリ arch/conf に移動して、GENERIC コンフィグレーションファイルを別名で保存します。
アーキテクチャー arch は3種類あります。i386, alpha, pc98 で、PC ハードウエアの開発ブランチを表しています。
慣例上、ファイル名は大文字(例 MYKERNEL)とします。複数のマシンを管理しているときは、ホスト名を大文字で使用されることをおすすめします。
/usr/src より下位のディレクトリに、 kernelコンフィグファイルは保管しないで下さい。他の部位で保存して ディレクトリ arch 以下にシンボリックリンクを作ります。
例)
# cd /usr/src/sys/i386/conf # mkdir /root/kernels # cp GENERIC /root/kernels/MYKERNEL # ln -s /root/kernels/MYKERNEL
kernelコンフィグファイル MYKERNEL を編集し、カスタマイズします。
不必要と思われる設定行は安易に削除するのではなく、コメントアウト{行頭に "#" を加えるだけ}すると、削除と同義となります。コメントにしない{"#"のみ削除}と、元の設定に戻ります。まず、
#ident GENERIC ident MYKERNEL
と編集し、他の行にある不要なデバイス等にはコメント "#" 一文字を挿入します。
よく分からないときはコメント"#"してはいけないもの:
cpu "I386_CPU" maxusers 10
コメント "#" する方がよいもの:
#options NFS #Network Filesystem 理由は公開サーバーでは NFS はセキュリティホールになるからです。
追加オプション:
options QUOTA
マルチユーザで使っているサーバマシンでは、Disk quotasを使えるようにすると、ユーザ毎のディスク使用量を制限できます。
次に、カーネルからソースコードをコンパイルします。
2つ方法があります。
カーネルのアップデートをしないときなど:
config(8) 起動 # /usr/sbin/config MYKERNEL
ディレクトリへの移動
FreeBSD version 5.0 では、 # cd ../compile/MYKERNEL
FreeBSD version 4-,(3-,2-)では、 # cd ../../compile/MYKERNEL
コンパイル # make depend # make
インストール # make install
アップグレード時:
4.X 以降の新しいバージョンにアップグレードした場合 (例えば 3.X から 4-STABLE へ, もしくは 4-STABLE から 最新版の 4-STABLE へなど), buildworld を行なってから, 以下のコマンドを実行するそうです。
ディレクトリへの移動 # cd /usr/src
コンパイル # make buildkernel KERNCONF=MYKERNEL
インストール # make installkernel KERNCONF=MYKERNEL
但し、FreeBSD 4.2 以下では書式が異なる(KERNCONFの代わりに KERNELなど)ので、詳しい help を参照して下さい。
ソースツリーをアップグレードしていない場合 (CVSup, CTM, anoncvs, などを実行していない場合), config, make depend, make, make install の順に実行します。
インストール後、新しいカーネルは、ルートディレクトリに /kernel としてコピーされ、これまでのカーネルは、/kernel.old となります。
最初に作成された kernel.old は デフォルト kernel.GENERIC と同じファイルで確実に起動するカーネルですので、
# cd / # cp -ip kernel.old kernel.default
として保存します(kernel.old はカーネル再構築のたびに、変化し続けますので、常にboot可能とは限りません。)
# shutdown -r now
元の環境に戻すときは、ブート時、カウントダウンが始まったらスペースキーを押し、プロンプト画面で、
boot kernel.old boot kernel.GENERIC boot kernel.default
など、boot可能なカーネルを指定します。その後、ファイルを再設定し、カーネルを再構築します。
FreeBSD 5.0では、カーネルは /boot/kernel バックアップは /boot/kernel.old となります。boot 関連のファイル、boot loader(8)、設定ファイルも /boot に保存されます。カスタムされたモジュールは /boot/modules に移動することがありますので、カーネルと同期していないと、不安定になります。初心者がFreeBSD 5.0のカーネルを運用するには、5-STABLE 開発ブランチが作成された後が無難ですので、たとえば、5.1-RELEASE ないし 5.2-RELEASE の公開頃にインストールをおすすめいたします。
|
|