目覚めよ! SELinux

SELinux Policy EditorでSELinuxを簡単に


中村 雄一
日立ソフトウェアエンジニアリング株式会社
技術開発本部 研究部 技師
2006/12/8

 SELinuxを簡単に操れるSEEditの威力

 SELinuxを使っていて最も困るのは、設定が不足していてアプリケーションが動作しなくなることです。SEEditを使えば、設定の追加および修正が簡単にできます。SEEditで足りない設定を追加する例を見てみましょう。

 Wikiの実装として有名なPukiwikiをインストールし(/var/www/html/pukiwikiにインストールしたという前提で以下の話を進めます)、ブラウザからPukiwikiにアクセスすると、Enforcingモードでは、図4左のようなエラーになってしまいます。一方で、Permissiveモードに切り替え(ステータスツールから切り替えます)、もう一度ブラウザからアクセスすると、図4右のように正常にアクセスできます。これから、SELinuxのせいで問題が生じていることが分かります。

図4 (左)設定が不足しているため、Enforcingモードではエラーが発生している
   (右)SELinuxをPermissiveモードに戻すとアクセスができる

 SEEditが入っていない状態でこれを解決するには、ログを解析し表2にあるような設定を手作業で行う必要があります。

■Cent OS 4での設定方法 ■Fedora Core 5、6での設定方法
●設定ファイルへの記述
type wiki_write_t,file_type,sysadmfile;
create_dir_file(httpd_t, wiki_write_t)
/var/www/html/pukiwiki/wiki(/.*)? wiki_write_t
/var/www/html/pukiwiki/cache(/.*)? wiki_write_t
/var/www/html/pukiwiki/backup(/.*)? wiki_write_t
/var/www/html/pukiwiki/diff/.*)? wiki_write_t


●コマンド実行
# make reload
# restorecon -R /var/www/html/pukiwiki
●設定ファイルへの記述
policy_module(local, 1.0)
type wiki_write_t;
files_type(wiki_write_t)
require {
type httpd_t;
type wiki_write_t;
};
allow httpd_t wiki_write_t:dir create_dir_perms;
allow httpd_t wiki_write_t:notdevfile_class_set create_file_perms;
/var/www/html/pukiwiki/wiki(/.*)? wiki_write_t
/var/www/html/pukiwiki/cache(/.*)? wiki_write_t
/var/www/html/pukiwiki/backup(/.*)? wiki_write_t
/var/www/html/pukiwiki/diff/.*)? wiki_write_t


●コマンド実行
# make
# semodule -i local
# restorecon -R /var/www/html/pukiwiki
表2 SEEditを使わずにPukiwikiを使うための設定
手作業で設定を行う必要があり、バージョンによって設定方式が違ううえ、必要な知識も多い。

 SELinuxのバージョンによって設定の書式が異なっているうえ、マクロ、リファレンスポリシー、ポリシー・モジュール、semanageなど、さまざまな前提知識が必要です。設定方法を習得するまでに時間がかかり、この時点でSELinuxをあきらめてしまうユーザーも多いと思われます。

 一方、SEEditを使うと簡単に設定を行うことができます。先ほどのコントロールパネルから、「ポリシーを生成」を選択します。

図5 SEEditのポリシー生成画面

 図5のような画面が現れます。「ポリシーを生成」ボタンを押せば、足りない設定が提示されます。

図6 SEEditが足りないポリシーを提示している

 図6が実行結果の画面です。必要な設定が提示されています。例えば、一番上は、「httpd_tドメインにallow /var/www/html/pukiwiki/diff/* r,w,sという設定をする必要がある」といっています。

 「allow /var/www/html/pukiwiki/diff/* r,w,s」というのが、SEEditの特徴であるSPDLの設定書式です。従来のSELinuxの設定書式は、表2のようなぱっと見て分かりにくいものになっていました。「wiki_write_t」のようなSELinuxのラベルを意識する必要もあります。

 一方、SPDLでは直感的です。「allow /var/www/html/pukiwiki/wiki/* r,w,s」の意味は、「httpd_tドメインに対し、/var/www/html/pukiwiki/wiki以下へ、読み(r)、書き(w)、ディレクトリ閲覧(s)を許可する」となります。また、SELinuxのラベルも表に出てきません。

 さて、ここで提示された設定を本当に追加したい場合は、チェックボックスにチェックを入れます。図7のように、追加される設定が表示されます。これでよければ「セーブし、設定を適用」ボタンを押します。

図7 足りないポリシーを適用する

 もう一度Pukiwikiにアクセスしてみると、今度は正しく動作します。

2/3

Index
SELinux Policy EditorでSELinuxを簡単に
  Page1
あなたのLinuxの中にもSELinuxは眠っている
SEEditとは
まずはSEEditのインストール
SEEditはGUIで直感的に理解可能
Page2
SELinuxを簡単に操れるSEEditの威力
  Page3
裏方に徹するSEEditの働き
ドメインの新規作成も簡単
あなたのフィードバックが明日のSEEditを作ります

関連記事
  連載:SELinuxの最新動向
  連載:セキュアOS「LIDS」入門
  ITmedia エンタープライズ:SELinuxの現状:使いやすさの改善が進むSELinux

Security&Trust記事一覧

@IT Special

- PR -

TechTargetジャパン

Security&Trust フォーラム 新着記事
  • 情報危機管理コンテストで考える――人材は育てるもの? それとも育つもの? (2017/6/21)
    さまざまなセキュリティインシデントに対応する能力をコンテスト形式で鍛える「第12回情報危機管理コンテスト」の決勝戦が、2017年5月25〜27日に和歌山県田辺市で開催された。競技シナリオにもない脆弱(ぜいじゃく)性を見つけたチームあり、意識的に初参加者を加えたチームあり、これまでのコンテストの枠を超えた戦いが繰り広げられた
  • リクルートのCSIRTが、マルウェア対策の一部を内製化した理由 (2017/6/19)
     本連載では、ランサムウェアを含む「マルウェア感染」という、さまざまな企業が頭を悩ませる問題について、リクルートグループのコンピューターインシデント対応チーム「Recruit-CSIRT」の発想と技術をお伝えする
  • 「WannaCry」の次は「SambaCry」? (2017/6/14)
    2017年5月のセキュリティクラスタ、ゴールデンウイークはのんびり過ごせたものの、その後が大変。ワームとして動くランサムウェア「WannaCry」の話題で持ちきりとなりました。騒ぎが落ち着いたと思ったら「SambaCry」が話題に。結局5月末まで、Windowsファイル共有サービスがタイムライン(TL)を賑わしていました。この他、無線LANのタダ乗り無罪判決に対し、総務省が違法だと主張してTL上で意見が飛び交いました。
  • 「WannaCry」にどう対処する、猛威を振るった「ランサムウェア」を知る記事12選 (2017/5/30)
     2017年5月12日からランサムウェア「WannaCry」が大きな話題になった。これをきっかけにランサムウェア対策を講じることになった企業も多いのではないだろうか。本稿では、ランサムウェアに関する記事をピックアップ。今後のセキュリティ対策の参考にしてみてはいかがだろうか
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Security & Trust 記事ランキング

本日 月間
ソリューションFLASH