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

中村雄一

tag: 組み込み

技術解説 2008年9月 8日

● システム起動時のSELinux有効化

 ここまでのSELinuxを有効にする作業を,システム起動時に自動的に行われるようにする必要があります.

 selinuxfsのマウントおよびload_policyについては,CAT760の場合は,initプログラム(/sbin/init)の中で行われます.ほかのボードの場合,init(sysVinitというパッケージに含まれる)のソースを検索し,「selinux」の文字があれば対応済みです.また,BusyBoxに含まれるinitもSELinuxに対応しています.

 initがSELinuxに対応していない場合は,initを移植してSELinux対応にするか注3,システム起動スクリプトの中から起動する必要があります.システム起動スクリプトから起動するには,スクリプトの中に,

  mount -t selinuxfs  selinuxfs /selinux
  load_policy


の2行を加えます.この時点で,procファイル・システムがマウントされる前にこれらのコマンドを使うとload_policyでエラーになるので気を付けます.

注3;initのSELinux対応のパッチを入手するには,Fedora projectのサイトから「Sysvinit」のsrc.rpmパッケージを入手し,インストールする.この作業を行うと,SOURCESディレクトリに「sysvinit-selinux.patch」という名前でパッチが格納される.

● システム起動時のタイプ付与設定

 先ほど,システムを構築する際に,タイプ付与設定を行いました.ext2やjffs2上のファイル・システムの場合は,タイプの情報がxattrに保存されているため,システム起動時にタイプ付与をやり直す必要はありません.一方,組み込みでは/var以下や/dev以下をtmpfsファイル・システム(RAM上のファイル・システム)でマウントしていることが多くあります.tmpfsもxattrにタイプの情報を保存できるのですが,電源を落とすとタイプ情報がなくなってしまうため,システム起動時にタイプ付与を行う必要があります.このようなファイルに対しては,システム起動スクリプトの中で,restoreconコマンドを使ってタイプを付与します.

 CAT760ボードの場合は,/var以下にtmpfsがマウントされており,/varにrestoreconを使う必要があります.システム起動スクリプトは,/etc/rcS.d/に格納されています.S01glibc.sh,S02mountkernfs.shというファイルがあり,ファイル名の順番にスクリプトが起動していきます.一通りディレクトリがマウントされた後に,restoreconコマンドが起動するようにします.今回のCAT760の場合は,/etc/rcS.d/S05restoreconを作成し,その内容を以下のようにすればOKです.

  /sbin/restorecon /var -R

● 動作確認

 システムを起動してコンソールからログインし,ここまでが正しく設定されているかどうかを確認します.psコマンドの-Zオプションでドメインを確認します.

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


 init_t,kernel_tのように,プロセスにドメインが付与されていれば,うまくいっています.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日