LauS(Linux Auditing System)のaudit 

2006年05月14日(日) 2時44分
LauS(Linux Auditing System)のaudit

に関して、個人的に調べたのでメモします。

LauSはその名の通りLinuxの監査を行うシステムで、
具体的には特定のプロセス等を監査しログを保存する役割がある。
auditdはデーモンとして動作して監査ログの保存などを行っている。

で、なぜかRHEL(RedHat Enterprise Linux)3と4ではかなりの違いがある

RHEL3だと/var/log/audit.d以下にバイナリ形式のログが保存される。
そのため中身を見るにはaudit専用ツールである、aucatやaugrep等のコマンドを使用しなければならない。
default(update7相当)の設定だとログは20Mのファイルへ世代ごとに保存され、/var/log/audit.dが残り容量20%を切るまで増え続ける

ということは、# chkconfig --list audit がonなシステムでは、長期間運用していると相当な量のログが作成されていると思われる。

しかも古いlausではログが適切に管理されず、/varを使い尽くすまで増え続けるバグあり。。。かなりクレイジー
(laus-0.1-70RHEL3にて修正済み)
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=130071

これらの理由により、特に必要なければ起動させないほうが良いサービスであること間違いなし。

ちなみにサービス停止方法は、
# service audit stop
# chkconfig audit off

その他LauSの簡単な説明は「RHEL3 update2リリースノート」にあり
http://www.jp.redhat.com/security/notes/utf8/RELEASE-NOTES-U2-i386-ja.html

約一年ぶりに更新。。。 

2006年05月11日(木) 22時53分
最終投稿より早一年。。。

ふと気になって覗いてみたら、一年越しで登録が生きておりました。
ありがたやヤプログ
#というか更新されて無いサイト消しちゃえばいいのに。。。

そういえば、一年前は文字数の制限が少なくてイライラしたけど、
少しは増えたのでしょうかねぇ?

まーせっかくブログを始めてみようかと(1年ぶりに)思ったのだし、
もうすこし他のサービスも見てみようかしらと思ったり

気が向いたら、またココで書こうかなぁ。

selinuxらべるについて3 

2005年05月26日(木) 0時56分
→続き

SELinuの具体的なアクセス制御は、次の様な流れで行います(下線がSELinuxの働き)。

例:
1. プロセスAがファイルBをReadしようとする
2. まずはプロセスAのがファイルBへRead許可があるか従来のパーミッションチェックを行う
3. 2がOKならば、次にSELinuxがプロセスAのタイプとファイルBのタイプを見比べる
4. 2つのタイプの関係が許可された物であれば、SELinuxはプロセスAがファイルBへReadするのを許可する
5. プロセスAがファイルBへReadする

ふむふむ、なんとなく流れはつかめましたよね?


また「ラベル」は「ユーザ:ロール:ドメイン(タイプ)」という3つの属性から成り立っています。この3つの属性については、また次回以降でメモします。。。
(そうそう、ここでちょっと注意! デーモンなどのプロセスに対するラベルの3番目の属性は「ドメインファイルに対するラベルの3番目の属性は「タイプと呼びます。)


さて、今回の話を整理します。

・selinuxはシステム上のリソースのラベルと呼ばれる属性を使ってアクセス制御を行っている

・ラベルは「ユーザ:ロール:ドメイン(タイプ)」の3つで構成されている

・ファイルに対するラベルの3番目の属性はタイプ、デーモンなどのプロセスに対するラベルの3番目の属性はドメインと呼ぶ

ん〜、ちょっとモヤットですか?

次回はラベル間の関係を定義しているファイルを実際に覗いてみます。
多分、次回あたりからselinuxの実際の動きが見えてくると。。。
#そうなるように頭ひねります

あと毎度ですが、「あんたそこ勘違いしとるよ」などご意見ございましたらコメントくださいm(-_-)m

selinuxらべるについて2 

2005年05月26日(木) 0時37分
→続き

次に、# ps auxZ を実行してみます。
# ps auxZ
...
root:system_r:unconfined_t root 3192 0.0 0.5 6948 1432 pts/1 Ss+ 23:01 0:00 bash
user_u:system_r:unconfined_t root 3234 0.2 0.8 8520 2180 ? Ss 23:47 0:00 sshd: root@pts/2
root:system_r:unconfined_t root 3236 0.0 0.5 6304 1400 pts/2 Ss 23:48 0:00 -bash
root:system_r:httpd_t root 3283 0.7 3.7 17756 9536 ? Ss 23:52 0:00 /usr/sbin/httpd
root:system_r:httpd_t apache 3286 0.0 3.7 17756 9560 ? S 23:52 0:00 /usr/sbin/httpd
root:system_r:ntpd_t ntp 3305 0.3 2.1 5528 5528 ? SLs 23:52 0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
root:system_r:named_t named 3319 0.0 1.0 37356 2744 ? Ssl 23:52 0:00 /usr/sbin/named -u named -t /var/named/chroot
root:system_r:unconfined_t root 3406 1.2 0.6 6080 1636 ? Ss 23:52 0:00 /usr/libexec/postfix/master
...

同じ様な見慣れない表示がありましたね?
実はこの見慣れない表示こそが、selinuxのアクセス制御を行っている重要な要素の一つで「ラベル」と呼ばれる属性なのです。

この「ラベル」は、ファイル・ディレクトリ・プロセス...等のリソース(資源)に付与されます。
selinuxは、(例えば)プロセスがあるファイルにアクセスする際に、許可された「ラベル」同士の関係であるかをチェックすることによりアクセス制御を行うのです!!

→次へ

selinuxらべるについて1 

2005年05月26日(木) 0時24分
「次回は、selinuxを体感する(操作する)方法についてメモします。」
と書いたのですが、まずはアクセス制御の仕組みにがわかりにくいのでそちらから。

ということで、今回からは実際にselinuxを扱い、どのようにアクセス制御を行っているのかをメモします。
「用語」が多く出てきますが反復すればそのうち覚えるはず!?

以前selinuxが有効な時には、「従来のパーミッションチェックでは考慮できなかった、プロセス、ユーザやリソースごとへの必要最小限の権限を付与し厳密なアクセス制御を行える。」と書きました。

「従来のパーミッションチェック」とは、# ls -lで表示されるようなowner.group.otherによるアクセス制御のことというのはわかりますね。ではselinuxで使用している「プロセス、ユーザやリソースごとへの必要最小限の権限」とは、どのように表示されるのでしょう?

まずはselinuxの動作しているシステム上で # ls -Z を実行します。
# ls -Z /
drwxr-xr-x root root system_u:object_r:bin_t bin
drwxr-xr-x root root system_u:object_r:boot_t boot
drwxr-xr-x root root system_u:object_r:device_t dev
drwxr-xr-x root root system_u:object_r:etc_t etc
...

おや、見慣れない表示がありましたね?

→次へ

selinuxもーどの切り替えについて2 

2005年05月22日(日) 15時05分
→続き

3. ブート時のオプション指定による切り替え

/boot/grub/grub.confのkernel行のお尻に、下記のオプションを付け加えます。
#RHEL4ではインストール時にブートローダは強制的にgrubが選択されるので、grubに関してのみメモします。

enforcing=1 もしくは selinux=1 ←アクティブモード
enforcing=0 ←警告モード
selinux=0 ←無効モード

下記は無効モードに設定する時の例です。

使用例:
title Red Hat Enterprise Linux ES (2.6.9-5.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/1 selinux=0
initrd /initrd-2.6.9-5.EL.img

これで再起動後に設定が有効になります。簡単ですね?
ちなみにこのブートオプションでselinuxの動作モードを設定した際には、2の設定よりも優先されます。

次回は、selinuxを体感する(操作する)方法についてメモします。

あと、「あんたそこ勘違いしとるよ」などご意見ございましたらコメントくださいm(-_-)m

selinuxもーどの切り替えについて1 

2005年05月22日(日) 14時58分
今回はselinuxのモード切替についてメモ。

selinuxのモード切替には、3通りの方法があります。
#と私は思ってます。他にもあったらコメントくださいm(-_-)m

1. setenforceコマンドによる切り替え
2. /etc/selinux/configファイルによる切り替え
3. ブート時のオプション指定による切り替え



1. setenforceコマンドによる切り替え

selinuxがアクティブor警告モードにあるとき、setenforceコマンドが使用できます。

使用例:
# setenforce 1  ←アクティブモードへ切り替える
# setenforce 0  ←警告モードへ切り替える

また、現在の動作モードを確認する際には、getenforceコマンドが使用できます。selinuxが無効のときは「selinux動いてないからわかんないよー」といった内容のエラーが出ます。
#このエラーから無効モードだと確認できるけど。。。

使用例:
# getenforce
enforcing   ←これはアクティブの時の表示、警告の時は「permissive」と表示される

ただし、setenforceコマンドで指定した場合、再起動後には元の設定に戻るので、再起動後にも有効な設定を行うには、次の2or3の方法で設定する必要があります。


2. /etc/selinux/configファイルによる切り替え

/etc/selinux/configにあるSELINUXというパラメータに、次回起動時のモードを指定します。

SELINUX=enforcing ←アクティブモード
      =permissive ←警告モード
      =disabled ←無効モード

configファイルを保存した後に再起動を行えば、設定が有効になります。

→次へ

selinuxもーどについて2 

2005年05月22日(日) 3時19分
→続き

なぜかといえば、先ほども書いたように「警告」モードなら制限を受けずにselinuxを有効にした時の動作が確認できるからです。そう、サービスの正常動作を確認しながら、selinuxの拒否状況をログにより確認できるのです!!
#拒否ログは/var/log/messagesdmesgに書かれます
このログを元にコマめにselinux(もしくはシステム側の)設定を変更すれば、「有効」モードに変更した時も意図しないアクセス拒否を防ぐことができます。
#そして、そのころにはユーザさんもselinuxに強くなってるはず。。。

もし導入時に「無効」モードに設定して、すべて設定が終わった後に「アクティブ」モードへ、それと共に意図しない拒否or拒否ログが大量に。。。なんてことになりかねません。
そんな状態でのご相談は、できれば受けたくないですよね?

ということで、selinuxは「警告」モードから始めるべし

次回は、このモードの切り替え方法についてメモします。

あと、「あんたそこ勘違いしとるよ」などご意見ございましたらコメントくださいm(-_-)m

#ところで、ヤプログって2000文字制限あるんだ。
#面倒だ。。。

selinuxもーどについて1 

2005年05月22日(日) 2時09分
さっそくlinuxメモを。

最近私、selinuxの勉強をしてます。
私は日々linuxのサポート業務をしているのですが、ユーザさんは圧倒的にRHELなんですよ。で、最近発売されたばかりのRHEL4を導入したいって言うチャレンジャーなユーザが現れたんですわ。
#せめてupdate2 or 3あたりで採用した方がいいんじゃないの?と思うが。。。
ということで、うちの部で1番暇そうな私に人柱になれとの命令がくだったのです

ところで、RHEL4と言えば(というかkernel2.6と言えば)なんといってもselinux!難しいんじゃないかという印象のあるやつですが、実際に使ってみると「まともに設定すればかなり使える機能」ってことがわかるんですよ。
といってもまだまだ触り始めたばかりでよーわからんのですが、まずは基本的な動作モードをメモメモ

selinuxの動作モードには、次の3つのモードがあります。それぞれのモードは下記の通り。

アクティブ(enforcing) ・・・ selinuxが有効に働くモード。従来のパーミッションチェックでは考慮できなかった、プロセス、ユーザやリソースごとへの必要最小限の権限を付与し厳密なアクセス制御を行える。拒否状況はログに記録される。

警告(permissive) ・・・ selinuxは動作しているが一切の制限を行わずログのみを書き出すモード(制限は従来のパーミッションチェックのみ)。

無効(disabled) ・・・ selinuxが動作しないモード。

とりあえず自分で使ってみたい場合はアクティブでも良いかもしれませんが、ユーザさんが導入してくれと言った時はアクティブは危険です。動かないんですけど系の質問が来る確立大で、そのたびに「まずは切り分けのためにselinuxを無効にしてください」なんて言わないといけない。
ではユーザさんが導入してくれと言った時は何を選択すべきか?
答えはズバリ「警告」です。

→次へ

blogはじめてみます 

2005年05月22日(日) 2時00分
社会人2年目。

そろそろ後輩が職場にやってきそうなのですが、1年前とたいして変わってない気がするんですよねー、わたし。
仕事で使ってるlinuxのコマンドも、一時期より忘れてる気がするし。。。

ということで、今後の成長を記録&忘れちゃいけないlinux関連のメモをblogに残してみようかと。
#超個人的な内容になる予感。。。
まぁいいんですよ、こういうのは自己満足で。

とにもかくにも、継続してみないとね
2006年05月
« 前の月  |  次の月 »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
最新コメント
アイコン画像Ivan
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Banik
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Ivan
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Denik
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Banik
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Banik
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Ivan
» selinuxらべるについて3 (2008年03月10日)
アイコン画像Ivan
» 約一年ぶりに更新。。。 (2008年03月10日)
アイコン画像Ivan
» selinuxらべるについて3 (2008年03月10日)
アイコン画像Nick
» 約一年ぶりに更新。。。 (2008年03月10日)
プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:issi
読者になる
Yapme!一覧
読者になる