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

中村雄一

tag: 組み込み

技術解説 2008年9月 8日

 今回は移植のために,表2のようなバージョンのソース・ファイルをダウンロードします.なお,これらのファイルは,http://sourceforge.jp/projects/selpe/files/の「CAT 760 SELinux用各種ソース・ファイル」からもダウンロード可能です.

ソフトウェア バージョン ソース・コードの入手先
Linuxカーネル 2.6.24 ターゲット機器の製造元.CAT760の場合は,http://sourceforge.jp/projects/selpe/files/よりダウンロード可能
libselinux 2.0.35 NSAのWeb サイトhttp://www.nsa.gov/selinux/code/download-trunk.cfm
libsepol 2.0.11
BusyBox 1.9.1 BusyBoxプロジェクトのWebサイト http://www.busybox.net/
表2 SELinuxを導入するために必要なソフトウェアと入手場所

 ダウンロードしたら,作業ディレクトリにそれぞれ展開しておきます.

 また,CAT760ボードで作業する場合,確実に本記事の例を試すためには,ルート・ファイル・システムを,筆者がSELinuxの動作を確認したものと入れ替えることをお奨めします.ルート・ファイル・システムのイメージは,http://sourceforge.jp/projects/selpe/files/よりダウンロードします.ファイル名はrootfs_selinuxtest.binです.なお,こちらのルート・ファイル・システムには,後述するBusyBoxとlibselinuxが既に移植済みです.イメージをFATでフォーマットしたCompactFlashカードに保存します.ボードにCompactFlashカードを差し込み,CAT760のブート・ローダより以下のコマンドを入力します.

  >> admin
  <パスワード入力(初期設定はsilinux)>
  #> cp cf0:rootfs_selinuxtest.bin rom: rootfs

● カーネルのコンパイル

 さて,カーネル,libselinux,libsepol,BusyBoxを順番にクロス・コンパイルしていきます.まずは,カーネルです.コンパイル方法は通常のクロス・コンパイルと同じです.

 筆者の環境では,次のコマンドでカーネルのコンパイル・オプションを設定します.

  $ make menuconfig ARCH=sh

 表3のようなSELinuxに関係するオプションをONにします.

大項目 小項目 意 味
General Setup Auditing Support Auditのサポート
Security Options Enable different security models LSMのサポート
Socket and Networking Security Hooks LSMのうちネットワークに関係した部分
NSA SELinux Support SELinuxのサポート
NSA SELinux Development Support SELinuxのモード切り替えサポート
File Systems Ext2 extended attributes xattrのサポート. Security LabelsはxattrのうちSELinuxに関するもの
Ext2 Security Labels
Ext3 extended attributes
Ext3 Security Labels
JFFS2 xattr Support
JFFS2 Security Labels
表3 SELinuxに関係するカーネル・コンパイル・オプション

 クロス・コンパイルを行います.筆者の環境では,クロス・コンパイラの実行ファイル名は「sh4-linux-gnu-gcc」です.

  $ make CROSS_COMPILE=sh4-linux-gnu-
  $ make CROSS_COMPILE=sh4-linux-gnu-
  modules


 カーネル・モジュールを作業ディレクトリの下のinstallというディレクトリに集めます.

  $ mkdir install
  $ make  CROSS_COMPILE=sh4-linux-gnu-
  INSTALL_MOD_PATH=./install modules_
  install


 生成されたzImageファイルおよびカーネル・モジュール・ファイルを,ターゲット・ボードに転送します.カーネル・モジュールについては,install/lib以下をターゲット・ボードの/libディレクトリの下に転送します.zImageファイルの転送方法については,ターゲット・ボードによって異なるので,各ボードの説明書を参考にしてください.

組み込みキャッチアップ

お知らせ 一覧を見る

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