Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

31.5. モジュールのブラックリスト登録

さまざまなパフォーマンスやセキュリティー上の理由から、システムが特定のカーネルモジュールを使用しないようにする必要がある場合があります。これは、モジュールブラックリストmodprobe ユーティリティーが使用するメカニズムを使用して、カーネルが特定のモジュールを自動的に読み込みできないか、モジュールがまったくロードできない)で実現できます。これは、特定のモジュールを使用している場合など、システムに対してセキュリティーリスクが発生したり、モジュールが別のモジュールと同じハードウェアまたはサービスを制御し、両方のモジュールを読み込むと、システムやそのコンポーネントの読み込みによってシステムが不安定になったり、動作しなくなったりするなどの特定の状況で役に立ちます。
モジュールをブラックリストに指定するには、root で /etc/modprobe.d/ ディレクトリーの指定の設定ファイルに以下の行を追加します。
blacklist <module_name>
&lt ;module_name> は、ブラックリストに指定されたモジュールの名前です。
デフォルトでシステムにすでに存在している /etc/modprobe.d/blacklist.conf ファイルを変更できます。ただし、特定のカーネルモジュールにのみ特定の設定が含まれる別の設定ファイル /etc/modprobe.d/ <module_name > .conf を作成することが推奨されます。

例31.4 /etc/modprobe.d/blacklist.conf の例

#
# Listing a module here prevents the hotplug scripts from loading it.
# Usually that'd be so that some other driver will bind it instead,
# no matter which driver happens to get probed first.  Sometimes user
# mode tools can also control driver binding.
#
# Syntax: see modprobe.conf(5).
#

# watchdog drivers
blacklist i8xx_tco

# framebuffer drivers
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist i810fb
blacklist cirrusfb
blacklist intelfb
blacklist kyrofb
blacklist i2c-matroxfb
blacklist hgafb
blacklist nvidiafb
blacklist rivafb
blacklist savagefb
blacklist sstfb
blacklist neofb
blacklist tridentfb
blacklist tdfxfb
blacklist virgefb
blacklist vga16fb
blacklist viafb

# ISDN - see bugs 154799, 159068
blacklist hisax
blacklist hisax_fcpcipnp

# sound drivers
blacklist snd-pcsp

# I/O dynamic configuration support for s390x (bz #563228)
blacklist chsc_sch
ただし、blacklist <module_name > コマンドは、モジュールが手動でロードされないようにしたり、ブラックリスト化されていない別のカーネルモジュールの依存関係としてロードされたりしません。システムでモジュールを読み込めないようにするには、/etc/modprobe.d/ ディレクトリーの指定の設定ファイルを root として修正します。
install <module_name> /bin/true
ここで 、<module_name& gt; はブラックリストに指定されたモジュールの名前です。

例31.5 モジュールブラックリストを一時的な問題のソリューションとして使用する方法

Linux カーネルの PPP over L2TP モジュール(pppol2pt)の不具合が確認され、この不具合がシステム侵害に誤用される可能性があります。システムで pppol2pt モジュールを機能させる必要がある場合は、この問題が修正されるまで pppol2pt を完全にブラックリストに指定します。
  1. 以下のコマンドを実行して、カーネルに pppol2pt が現在読み込まれているかどうかを確認します。
    ~]# lsmod | grep ^pppol2tp && echo "The module is loaded" || echo "The module is not loaded"
  2. モジュールがロードされた場合は、誤った使用を防ぐために、モジュールとそのすべての依存関係をアンロードする必要があります。安全にアンロードする方法は、「モジュールのアンロード」 を参照してください。
  3. 以下のコマンドを実行して、pppol2pt をカーネルに読み込みできないようにします。
    ~]# echo "install pppol2tp /bin/true" > /etc/modprobe.d/pppol2tp.conf
    このコマンドは、システムに /etc/modprobe.d/pppol2tp.conf ファイルの内容を上書きすることに注意してください。このコマンドを実行する前に、既存の pppol2tp.conf を確認してバックアップします。また、モジュールをアンロードできない場合は、このコマンドを有効にするためにシステムを再起動する必要があります。
pppol2pt モジュールの問題が正しく修正されたら、/etc/modprobe.d/pppol2tp.conf ファイルを削除するか、以前のコンテンツを復元できます。これにより、システムが元の設定で pppol2pt モジュールをロードできるようになります。
カーネルモジュールをブラックリストに登録する場合には注意してください。
カーネルモジュールをブラックリストに登録する前に、現在のシステム設定が正しく機能するようにモジュールが必ず重要ではないことを確認してください。主要なカーネルモジュールを正しくブラックリストに指定しないと、システムが不安定になったり、システムが動作しなくなったりすることがあります。