その他
    ホーム 技術発信 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

    記事を共有