Jump to content 日本-日本語
製品  >  ソフトウェア  >  Linux

NX保護機能の利用と制限について

Open Source & Linux

導入事例

product

ハードウェア
ソフトウェア
サービス & サポート

buy now?

HPE OPEN SERVICES
保守サービス
教育プログラム

support

OS対応表
ProLiant
Workstation
システム構成図
技術文書
FAQ
ディストリ対応表
サポート & ドライバ
リンク
SDR - 設定方法
FreeBSD
サイトマップ
HPE & Red Hat情報ポータル HPEとRed Hatが実現するオープンなイノベーション
BSD 動作確認レポート等を掲載
コンテンツに進む
05-JAN-05, revised 31-MAR-05
 本ページに記載してある内容は限られた評価環境に於ける検証結果に基づいたものです。本ページの情報を利用する前に予めサイト内リンク技術情報サイト内リンク保証について、ディストリビュータが提供する WEBサイト等をご覧ください。

NX保護機能について

 Xeonの一部と Opteron CPUには NX(no-execute)保護機能が搭載されています。この新機能は実行命令が配置されている事を明示されていないメモリ領域上のコード実行を認めない様に制限する機能です。 この機能によりバッファオーバーフロー問題と呼ばれていた危険性のリスクを低下させる事が可能になります。

影響の出るソフトウェアについて

 NX保護機能が装備された OS環境下では、従来のプログラミング手法で作成されているものの中には正常動作しなくなる場合があります。現時点で確認している問題は下記になります。
  • hpasmドライバ
  • Java環境に影響される各種マネージメントツール類
 hpasmドライバは Opteronに対しては、ProLiant DL585用の v7.1.1B-95に於いて既に NX保護機能に対応しています。Xeon用 hpasmは v7.2.0b-204で対応しています。

noexec=offでの対応について

 NX保護機能に未対応の hpasmドライバを利用する場合、OS側で NX保護機能を停止する必要があります。また Java関係を利用するツール類も同様に影響を受けますので同様です。
 
 kernel parameterで 'noexec=off'を引き渡す事で NX機能は Linuxで利用されなくなります。下記は grub.confの修正例です。
title Red Hat Enterprise Linux ES (2.4.21-20.ELsmp)
    root (hd0,0)
    kernel /vmlinuz-2.4.21-20.ELsmp ro root=LABEL=/ noexec=off
    initrd /initrd-2.4.21-20.ELsmp.img

Xeonの NX保護機能対応可否確認について

 利用している Xeonが NX保護機能に対応しているかの確認は下記の方法で可能です。
#cat /proc/cpuinfo
   model  : 4
   flags  : fpu vme de ... nx ...

 この model 4タイプ(E-0:0f41h)の Xeonは、ProLiant G4シリーズの一部の機種から搭載が開始されています。

Red Hat EL3での NX保護機能の対応について

 Red Hat Enterprise Linux 3では U3(kernel 2.4.21-20.EL)から NX保護機能が装備されています。

 システムが現在 NX保護機能を有効として稼動しているかどうかは、EL3(x86)の場合、#dmesg中に 'NX (Execution Disabled) protection: active'のメッセージが記録されます。EL3(x86_64)の場合、x86の様なメッセージはありませんので、/proc/cmdlineでの 'noexec=off(on)'の出力と前述の model=4かどうかの状況で判断する必要があります。

 EL3の athlon kernelは PAE機能が装備されていないため、NX保護機能も装備されていません。

 EL3の Javaは NX保護機能を有効にした場合、U3上では動作しませんが U4上では動作可能です。

Turbolinux 10 Serverでの NX保護機能について

 ベース kernelである2.6.8-1から NX保護機能が装備されていますが、装備されている kernelは smp64G kernelだけです。

 システムが現在 NX保護機能を有効として稼動しているかどうかは、#dmesg中に 'NX (Execute Disable) protection : active' のメッセージが記録されます。但し、 'noexec=off'を kernel parameterで引き渡しても、このメッセージは記録されますのでご注意ください。

 Turbolinux 10 Serverの Javaは NX保護機能を有効にした場合、動作しません

Miracle Linux 3.0での NX保護機能について

 x86版は現時点で最新の 2.4.21-9.38AXでも NX保護機能は装備されていません。x86_64版はベース kernelである 2.4.21-20.19AXから NX保護機能が装備されています。

 システムが現在 NX保護機能を有効として稼動しているかどうかは、x86_64版の場合、Red Hat EL3(x86)の様なメッセージはありませんので、/proc/cmdlineでの 'noexec=off(on)'の出力と前述の model=4かどうかの状況で判断する必要があります。

 Miracle Linux 3.0(x86_64)の Javaは NX保護機能を有効にしていても、動作可能です。

SUSE Enterprise 8/United Linux 1.0での NX保護機能について

 x86 kernelは NX保護機能が装備されていません。x86_64 kernelは SP4(2.4.21-278)以降で装備されています。

 システムが現在 NX保護機能を有効として稼動しているかどうかは、x86_64版の場合、Red Hat EL3(x86)の様なメッセージはありませんので、/proc/cmdlineでの 'noexec=off(on)'の出力と前述の model=4かどうかの状況で判断する必要があります。

 United Linux 1.0(x86_64)の Javaは NX保護機能を有効にしていても、動作可能です。

SUSE Enterprise 9での NX保護機能について

 x86版は NX保護機能が装備されていません。x86_64版はベース kernelである 2.6.5-7.97から装備されています。

 システムが現在 NX保護機能を有効として稼動しているかどうかは、x86_64版の場合、Red Hat EL3(x86)の様なメッセージはありませんので、/proc/cmdlineでの 'noexec=off(on)'の出力と前述の model=4かどうかの状況で判断する必要があります。

 SUSE Enterprise 9(x86_64)の Javaは NX保護機能を有効にしていても、動作可能です。

RBSUでの on/off機能について

 ProLiant G4シリーズの最新 BIOSでは、NX保護機能を HWから制御する事が可能になりました。この機能を用いて NX保護機能を offにした場合、kernelからは NX保護機能を搭載していない CPUと判断され、/proc/cpuinfoの flagにも 'nx'フラグは表示されなくなります。RBSUでの設定画面はGIFこちらになります。
印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項