himainuの日記

SELinux Policy Editor開発日誌SELinux一般執筆講演履歴

2006-04-20

[] AppArmor,SELinux 05:06

直接対決

長いので後で読もう。

読んだ。AppArmorネ申最高。多少謎な部分もあるが(/tmpの保護は嘘だろうと思う),私がなんとなく感じていたことを、まとめてバンバン言ってくれている。私が言おうと思ったら、文面用意するだけで、日が暮れるに違いない。AppArmorネ申は、おそらく、長年この問題に取り組んでおられたのだろう。実装だけじゃなく、学問的な考察もされていたのだと思う。

にしても、相変わらず議論は平行線だ。どうなっちゃうんだろ。SELinux側の要求(?)は、「AppArmorなんかやめちまえ」と言っているに等しい気がする。そう簡単にやめられるわけがないし、AppArmorなりの信念を感じる。

LSM MLの最初の投稿

http://marc.theaimsgroup.com/?l=linux-security-module&m=98706471912438&w=2

LSMができた経緯。実は、AppArmorネ申の投稿。

[][]  08:51

例によって作業メモ…

ホームディレクトリのサポート

ホームディレクトリのサポートを忘れてた。

例えば,httpd_tに,public_htmlのアクセスさせたい場合

allow /home/<ユーザ名>/public_html r,s;

をユーザーの数だけ書く必要がある。。100人ユーザがいたら100行(^^;

AppArmorばりに,

allow /home/*/public_htmlという書式をサポートしたいのだが、

これはかなり大変そうなので、

とりあえず、

allow ~/public_html r,s;

という書式をサポートしようと考えた。

~/とすると、ホームディレクトリ(/home/ユーザ名)を表す(root除く)

で、実装開始してみたが、これがまた思った以上に大変…

genhomedirconを駆使して実装してみた。

~で始まるファイル名がある場合は、homedir_template

に、タイプ付けを出力。

で、genhomedirconで、file_contexts.homedirsを生成。

makediffrelabel用に、file_contexts,file_contexts.homedirsをくっつけたファイルfile_contexts.allを作成。

file_contexts.homedirsから,/rootに関するエントリを消去。。

てな感じでやっていったが、

make diffrelabelがうまくいかないことに気づいた。

fcdiff.tmpが以下のようになって、restoreconで読み込めない。

/home/[^/]*/public_html

だが、

[^/] -> *に置き換えればrestoreconで読み込める。

つまり、

restorecon /home/[^/]*/public_html -R は駄目だが,

restorecon /home/*/public_html -R

はうまく動く。

結果,

domain httpd_t

allow ~/public_html/** r,s;

で、ユーザのホームページを公開できるようになった。

がこの書式には、問題がある。

「/home/ynakam/public_html」だけアクセスという設定ができない。

root以外のユーザのホームディレクトリが同じとみなされてしまう。

つまり,

allow /home/ynakam xxxx

と特定のユーザのホームディレクトリを指定して設定しても、無効にされてしまう。

これの修正はすごーく大変そうなので、やめとこう。

まだ問題があって、

ディレクトリの「dir:search」の自動許可もうまく動かないはず。。。

その他

seedit-converterの-oオプションは、出力ディレクトリに。

generated.conf(マクロ展開前のpolicy.conf), file_contexts, homedir_template, customizable_types unconfined_domains

が出力される。

明日こそ、ドキュメント書きやろ。。

OMOOMO 2006/04/22 13:03 Pitbullも参戦みたい

himainuhimainu 2006/04/25 13:13 >Pitbullも参戦みたい
こりゃすごい。