パスワードを忘れた? アカウント作成
434751 journal

Maxの日記: [mdk]msec

日記 by Max

Mandrakeには、システムのセキュリティレベルを設定する
msecというソフトウエアが標準で入っている。
msec本体はpythonで書かれていて、システム内の多くの操作に
ついて一定の制限を設けたり、不正な変更に対して自動的に補正する
ような機能を有している。

セキュリティレベルはMandrake 9.0の場合6段階に分かれていて
0を最も緩いレベルとして5まで徐々に厳しくなっていく。
ファイルのパーミションチェックやその自動修正、promiscモードで
LANカードが使用されているかどうかのチェック(sniffing防止)
等々をやってくれる。詳細は/usr/share/doc/msec*/security.txt
に書かれているが、おおむね

0: 誰でも何でもし放題(危険)
1: 緩い制限
2: 通常(Normal:デスクトップ用)
3: 少しセキュア(More Secure:デスクトップかLAN内部のサーバ)
4: セキュア(Secure:主にインターネットサーバ)
5: 偏執的なほどセキュア( Paranoid:主にインターネットサーバ
  構築時)

という風に決められている。
この設定はインストール時に可能だが、インストール後も
# msec n
というコマンドで随時変更できるようになっている。
デスクトップPCとしてインストールするときは通常2か3を指定し
サーバを作るときは3か4を指定する。5はよほどのことがない限り
まず設定する必要はないレベルだ。あえて価値があるとしたら、
インターネットにさらされる状態でサーバを構築する際、ローカル
ログインが可能な状態でありさえすればいい、という場合にこれを
使うことになるだろう。しかし、たいていはある程度安全な状態の
場所で構築作業の初期ステップは実施するものだ。

それぞれのセキュリティレベルに対応したスクリプト類は、
/usr/share/msec 配下に、置かれていて

level.* = ポリシー設定
perm.* = システム内の各ディレクトリやファイルのパーミション

のようになっている。通常はこれらをさわる必要はないのだが、
変更が必要な場合もまま出てくる。

たとえば、msec=4の設定でnagios(遠隔モニタツール)を入れる
場合、モニタリング記録は一般ユーザnagiosで実行され、ホーム
ディレクトリである/var/log/nagiosに蓄えられていく。
しかし、/var/log配下のディレクトリは/usr/share/msec/perm.4
によると、

/var/log/ root.adm 751
/var/log/* root.root 600
/var/log/lp-errs lp.lp 600
/var/log/*/* current 600
/var/log/*/*/* current 600
/var/log/*/. current 700
/var/log/intraline/. current 750

の様に設定されている。これが何を引き起こすかというと、nagios
のcgiプログラムがhttpdからのリクエストをハンドルしてユーザ名
apacheにて記録されたログを参照しに行くことができなくなる。
スーパユーザになり手動で/var/log/nagios配下のパーミションを
変更しても、cronジョブで毎時1分にパーミション設定を自動補正
してくれるおかげでまた元に戻される。

元に戻される様子は/var/log/messagesに残される。

Feb 23 17:01:02 mdk msec: changed mode of /var/log/nagios/status.log from 664 to 644

などの"msec"で始まるログエントリがそれだ。
このことを知らないと、設定がいつの間にか変更されているという
不可解な現象に悩むことになる。

nagiosの場合、これを解消する方法は簡単で、たとえば

/var/log/nagios/ current 755
/var/log/nagios/* current 644
/var/log/nagios/*/. current 755
/var/log/nagios/*/* current 644

の様なエントリを/usr/share/msec/perm.4に追加する。
これではセキュリティ上不安があるという場合は、ユーザapache
の所属グループにnagiosを追加しておいて、

/var/log/nagios/ current 750
/var/log/nagios/* current 640
/var/log/nagios/*/. current 750
/var/log/nagios/*/* current 640

の様にしてもいいだろうと思う。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

ソースを見ろ -- ある4桁UID

読み込み中...