SELinuxで組み込み機器のセキュリティを高める(後編) ―― 組み込み機器にSELinuxを適用する

中村雄一

tag: 組み込み

技術解説 2008年9月 8日

4 最低限のシステムを構築

 ここまでで,SELinuxに関連するプログラムとファイルがターゲット・ボードに移植されました.これを基にして,最低限SELinuxが動作するシステムを構築します.SELinuxを動作させるために必要な項目は,「selinuxfsのマウント」,「ポリシのロード」,「ファイルにタイプを付与する」の三つです.これらの項目を,順番にシリアル・コンソール(デバイスによってはSSHやtelnet)でログインして,手作業で実行してみます.手作業でうまく動作することを確認したら,起動時に自動的に3項目が実行されるようにします.

● selinuxfsをマウントする

 selinuxfsとは,SELinuxの管理のために使われる特殊なファイル・システムです.selinuxfs中のファイルをオープンすることでSELinux内部のデータにアクセスできるような仕組みになっています.SELinuxの管理コマンドはこのselinuxfsを通じてSELinuxの管理操作を行っているので,selinuxfsをマウントする必要があります.マウント・ポイントは/selinuxにするのが普通なので,このディレクトリを作成します.

  # mkdir /selinux


 ここにselinuxfsをマウントします.

  # mount -t selinuxfs selinuxfs /selinux

● ポリシのロード

 SELinuxによるアクセス制御を使うには,ポリシ設定ファイルをカーネルに読み込ませる必要があります.先ほど移植したload_policyコマンドを使うことで実現できます.次のように使います.

  # load_policy


 これでポリシが読み込まれました.

● タイプ付与

 現段階では,ファイルには何もタイプが付与されていません.タイプを付与するには,ファイル・システムのxattrにタイプの情報を書き込む必要があります.「どんなファイルにどんなタイプを付与するか?」という設定は,/etc/selinux/seedit/contexts/files/file_contextsファイルによってなされています.この設定どおりにタイプを付与するためのrestoreconというコマンドが用意されています.最も典型的な使い方は,次のとおりです.

  # restorecon -R <ディレクトリ>


 これで,ディレクトリ以下のファイルのタイプ付与設定を行えます.今回は,すべてのファイルに対してタイプ付与を行うので,ボード上で次のように入力します注2

  # restorecon -R /



注2;読み込み専用マウントにしていると作業が失敗するので,読み書き可能でマウントする.また,/procや/sysディレクトリに対してエラーが表示されることがあるが,無害である.

● ここまでの動作確認

 これで,SELinuxが最低限動作しています.プロセスに「ドメイン」が付与されていることを確認します.確認には,ボード上でpsコマンドのZオプションを使います.

  # ps -Z
  PID Context	Stat Command
  1 system_u:system_r:kernel_t
  S   init [2]
  2 system_u:system_r:kernel_t
  SW< [kthreadd]
   ...


 プロセス名の左に,「system_u:object_r:<ドメイン>」という書式でプロセスに付与されたドメインが表示されます.

 ファイルに「タイプ」が付与されていることを確認します.ファイルのタイプの確認にはlsコマンドのZオプションを使います.

  # ls -Z /
  drwxr-xr-x ~ system_u:object_r:dir_bin_t bin
  drwxr-xr-x ~ system_u:object_r:dir_childdir__t boot
  ...


 これも,ファイル名の左に「system_u:object_r:<タイプ>」という書式でファイルに付与されたタイプが表示されています.確かにファイルにタイプが付与されています.

 なお,この状態では,まだ「permissiveモード」で動作しています.モードの確認にはgetenforceコマンドを使います.

  # getenforce
  Permissive


 前編で紹介したように,permissiveはテスト用のモードで,SELinuxに拒否されるアクセスがあった場合も,アクセスは通してログだけを残します.実質的にSELinuxのアクセス制御が無効になっているように見えます.ポリシの設定が固まるまではpermissiveモードで動作させます.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日