31.5. モジュールのブラックリスト登録
さまざまなパフォーマンスやセキュリティー上の理由から、システムが特定のカーネルモジュールを使用しないようにする必要がある場合があります。これは、モジュールブラックリスト ( modprobe ユーティリティーが使用するメカニズムを使用して、カーネルが特定のモジュールを自動的に読み込みできないか、モジュールがまったくロードできない)で実現できます。これは、特定のモジュールを使用している場合など、システムに対してセキュリティーリスクが発生したり、モジュールが別のモジュールと同じハードウェアまたはサービスを制御し、両方のモジュールを読み込むと、システムやそのコンポーネントの読み込みによってシステムが不安定になったり、動作しなくなったりするなどの特定の状況で役に立ちます。
モジュールをブラックリストに指定するには、root で
/etc/modprobe.d/
ディレクトリーの指定の設定ファイルに以下の行を追加します。
blacklist <module_name>
< ;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
を完全にブラックリストに指定します。
- 以下のコマンドを実行して、カーネルに
pppol2pt
が現在読み込まれているかどうかを確認します。~]# lsmod | grep ^pppol2tp && echo "The module is loaded" || echo "The module is not loaded"
- モジュールがロードされた場合は、誤った使用を防ぐために、モジュールとそのすべての依存関係をアンロードする必要があります。安全にアンロードする方法は、「モジュールのアンロード」 を参照してください。
- 以下のコマンドを実行して、
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
モジュールをロードできるようになります。
カーネルモジュールをブラックリストに登録する場合には注意してください。
カーネルモジュールをブラックリストに登録する前に、現在のシステム設定が正しく機能するようにモジュールが必ず重要ではないことを確認してください。主要なカーネルモジュールを正しくブラックリストに指定しないと、システムが不安定になったり、システムが動作しなくなったりすることがあります。