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

中村雄一

tag: 組み込み

技術解説 2008年9月 8日

● libsepolのクロス・コンパイル

 これは,BusyBoxのコンパイル専用です.ターゲット・ボードに転送する必要はありません.次のようにクロス・コンパイルします.

  $ make  CC=sh4-linux-gnu-gcc


 そして,開発機のクロス・コンパイル環境にインストールします.こちらも,環境によってインストール先は異なります.

  # cp src/libsepol.so /usr/sh4-linux-gnu/lib/
  # ln -s /usr/sh4-linux-gnu/lib/libsepol.so /usr/sh4-linux-gnu/lib/libsepol.so.1


● BusyBoxのクロス・コンパイル

 BusyBoxのクロス・コンパイル方法は通常のBusyBoxの場合と同じ手順です.今回は,SELinuxに関連したコマンドのみが入ったBusyBoxを作ります.まず,

  $ make menuconfig


で,SELinuxに関連したコンパイル・オプションを設定します.表4のようなオプションを最低限有効にする必要があります.
 クロス・コンパイルを行います.

  $ make CROSS_COMPILE=sh4-linux-gnu-

 生成されたbusyboxというファイルがBusyBoxの実行ファイルです.これを,ターゲット・ボードの/usr/local/bin/busyboxとしてコピーします.こうすれば,ターゲット・ボードに既に入っているBusyBox(/bin/busybox)と共存できます.
 そして,SELinuxに関するコマンドを使う場合にだけ,新しく入れたBusyBoxを呼ぶようにします.SELinuxに関連するコマンドを,新しく入れたBusyBoxへのシンボリック・リンクとします.

  # ln -s /usr/local/bin/busybox /sbin/load_policy
  # ln -s /usr/local/bin/busybox /sbin/restorecon
  # ln -s /usr/local/bin/busybox /sbin/setenforce
  # ln -s /usr/local/bin/busybox /sbin/getenforce
  # mv /bin/ls /bin/ls.orig; ln -s /usr/local/bin/busybox /bin/ls
  # mv /bin/ps /bin/ps.orig;ln -s /usr/local/bin/busybox /bin/ps
  # mv /usr/bin/id /usr/bin/id.orig; ln -s /usr/local/bin/busybox /usr/bin/id


 こうすることで,例えば/sbin/load_policyとタイプすると,BusyBox(/usr/local/bin/busybox)からload_policyの処理が呼ばれます.

組み込みキャッチアップ

お知らせ 一覧を見る

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