ホーム DoRuby カーネルの再構築

カーネルの再構築

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

以前、誰かが「Linux2.6系の脆弱性でroot権限奪ってみた」
という記事を書いていましたが、最近CentOSをインストール
したところ、見事にこの脆弱性に引っかかったので、カーネル
を再構築するハメになりました。

というわけで、以下、カーネルの再構築について簡単に
手順を記したいと思います。

作業環境

OS:CentOS5
現行カーネルバージョン:2.6.18-8.el5

カーネルの再構築

1.以下のサイトからカーネルの最新ソースファイルを取得# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2

2.root権限で/usr/srcへ移動。# su –
# cd /usr/src

3.1のファイルを展開し、シンボリックリンクを作成# tar jxvf linux-2.6.26.tar.bz2
# ln -s linux-2.6.26 linux
# ln -s linux-2.6.26 linux-2.6

4.configファイルをコピー# cp /usr/src/kernels/2.6.18-8.e15-x86_64/.config /usr/src/linux/.config

5.configファイルを更新する# cd linux
# make oldconfig

※ ここから先は対話形式で進む。デフォルト設定でよければ[Enter]で先へ進もう。
y = カーネルに静的に組み込まれる。
m = カーネルモジュールとして組み込まれる。(使用時のみ動作する)
n = 設定を無効化。
? = ヘルプを参照。

6.余計なファイルの削除# make clean

7.Kernel を構築します# make bzImage

8.モジュールのコンパイル# make modules

9.モジュールのインストール# make modules_install

10.全体のインストール# make install

11.動作確認
サーバ起動時に、方向キー上下でKernelを選択することが出来るので、
最新カーネルを選択し、問題がないかを確認する。
(失敗の場合は各種デバイスが認識されなかったりする)

ブートローダの設定

デフォルトで最新カーネルで起動するように設定。# vi /etc/grub.conf

「title CentOS (******)」がカーネルの情報で、
上から順に0,1…となる。
最新のカーネルは0(一番上)になっているので、
defaultの設定を0に変更すれば、最新バージョンで
起動する。default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.26)
          root (hd0,0)
          kernel /vmlinuz-2.6.26 ro root=LABEL=/
          initrd /initrd-2.6.26.img
title CentOS (2.6.18-8.el5)
          root (hd0,0)
          kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/
          initrd /initrd-2.6.18-8.el5.img

記事を共有
モバイルバージョンを終了