SPDL 文法整理
4日ぶりぐらいにsourceforge.netのCVSが復活。
SPDL(Simplified Poilcy Description Language)の文法を整理
allow/allowonlyの統合
ファイルのアクセス制御にallow(サブディレクトリ全部許可)/allowonly(ディレクトリ直下のファイルのみ許可)とあったが、
どうもわかりにくいので、
AppArmor式の設定記述に。
domain foo_t;
allow /var/* r; → foo_tは、/var直下のファイルにrアクセス可能。
allow /usr/local/** r;→ foo_tは、/usr/localの全てのサブディレクトリにr
アクセス可能
globalドメインの廃止
http://d.hatena.ne.jp/himainu/20060401
の理由で、globalドメインを廃止。
globalの代用
globalが廃止になったがincludeとdenyでそれ以上の働きができる。
- include先でdenyを書くことで設定ミスの防止ができる
- include元でのallowをキャンセルするために、denyが使える
例:
● include/global.h
deny /etc/shadow; -> 設定ミスの防止
allow /usr/lib/** r,x,s;
● foo_t.a
domain foo_t;
include global.h;
allow /etc/* r;
- > /etc/shadowを除いてrアクセスできる
deny /usr/lib;
- > allow /usr/lib/** r,x,s;をキャンセル
SPDLの気になる部分は、ほとんど直った。
AppArmorありがとう。
seeditは、LIDS,TOMOYO,AppArmorからインスパイアされている(パクったという)。
LIDS(パス名ベースの設定,denyで設定ミスを防止する考え方),TOMOYO(デバイスの保護), AppArmor(文法、include)って感じ。
これでSPDLの仕様は,ほぼfixに違いない。次は。。
- audit2spdlを直す
- XMLインポート/エクスポートの修正
- FC5で試す
- デフォルトのポリシをひたすら軽く(RBAC省略、unconfined_tドメイン)
- バグ取り
- コンパイルエラーの行番号とか(includeがあると行番号が変になる)
で、version1.4.0をアナウンスして,MLも作って広く使ってもらおう。