2011年1月6日

トラブル対応20111105 - 運用日誌

SELinuxのエラーログに以下が発生。

host=localhost.localdomain type=AVC msg=audit(1294116997.483:57): avc: denied { read } for pid=4029 comm="smartd" name="libm.so.6" dev=sda2 ino=1508034 scontext=system_u:system_r:fsdaemon_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=lnk_file




メッセージ切り分け

意味としては、「/usr/sbin/smartdコマンド(セキュリティコンテキストsystem_u:system_r:fsdaemon_t:s0)がlibm.so.6ファイル(セキュリティコンテキストsystem_u:object_r:file_t:s0)を読み込もう(read)としてアクセス拒否(denied)となっている」となる。

意味通りなら環境設定に間違いがあることになる。

明らかにわかることとしては、libm.so.6ファイルはライブラリなので、通常、file_tでなくlib_tのはず。

調査切り分け

/usr/sbin/smartdがどこのlibm.so.6を読みにいくか確認

# ldd /usr/sbin/smartd
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00002ba449ca8000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002ba449ec0000)
        libm.so.6 => /lib64/libm.so.6 (0x00002ba44a1c0000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002ba44a444000)
        libc.so.6 => /lib64/libc.so.6 (0x00002ba44a652000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002ba44a9a9000)
        libsepol.so.1 => /lib64/libsepol.so.1 (0x00002ba44abae000)
        /lib64/ld-linux-x86-64.so.2 (0x00002ba449a8b000)

/lib64/libm.so.6 であることを確認

/lib64/libm.so.6のセキュリティコンテキストを再確認

# ls -Zl /lib64/libm*
-rwxr-xr-x 1 system_u:object_r:file_t         root root 615136 10月 26 05:40 /lib64/libm-2.5.so
lrwxrwxrwx 1 system_u:object_r:file_t         root root     11 10月 27 17:46 /lib64/libm.so.6 -> libm-2.5.so

ちなみに他のライブラリファイルはどうなっているかというと、、

# ls -Zl /lib64/
...
lrwxrwxrwx 1 system_u:object_r:lib_t          root root      16 10月  5 16:05 libwrap.so.0 -> libwrap.so.0.7.6
-rwxr-xr-x 1 system_u:object_r:lib_t          root root   37368  9月 22  2009 libwrap.so.0.7.6
drwxr-xr-x 2 system_u:object_r:lib_t          root root    4096 10月 27 17:46 rtkaio
drwxr-xr-x 4 system_u:object_r:lib_t          root root    4096 12月 18 04:02 security

他は、lib_tだ。

ファイルコンテキストの現状ルール(ユーザ追加ルール)を確認

# cat /etc/selinux/targeted/contexts/files/file_contexts.local 
# This file is auto-generated by libsemanage
# Please use the semanage command to make changes

/lib64/libm.so.6    system_u:object_r:file_t:s0
/lib64/libm-2.5.so    system_u:object_r:file_t:s0

何か余計なものが登録されている。今回直接原因はこれであろう。

問題対処

セキュリティコンテキストルールを修正

# cat /etc/selinux/targeted/contexts/files/file_contexts.local 
# This file is auto-generated by libsemanage
# Please use the semanage command to make changes

/lib64/libm.so.6    system_u:object_r:file_t:s0
/lib64/libm-2.5.so    system_u:object_r:file_t:s0
# semanage fcontext -d -t system_u:object_r:file_t:s0 '/lib64/libm.so.6'
# semanage fcontext -d -t system_u:object_r:file_t:s0 '/lib64/libm-2.5.so'
# cat /etc/selinux/targeted/contexts/files/file_contexts.local 
# This file is auto-generated by libsemanage
# Please use the semanage command to make changes

# 

セキュリティコンテキストを修正

# ls -lZ /lib64/libm*
-rwxr-xr-x  root root system_u:object_r:file_t         /lib64/libm-2.5.so
lrwxrwxrwx  root root system_u:object_r:file_t         /lib64/libm.so.6 -> libm-2.5.so
# fixfiles relabel

    Files in the /tmp directory may be labeled incorrectly, this command 
    can remove all files in /tmp.  If you choose to remove files from /tmp, 
    a reboot will be required after completion.
    
    Do you wish to clean out the /tmp directory [N]? 
/sbin/setfiles:  labeling files under /
matchpathcon_filespec_eval:  hash table stats: 151863 elements, 36525/65536 buckets used, longest chain length 23
/sbin/setfiles:  labeling files under /boot
matchpathcon_filespec_eval:  hash table stats: 41 elements, 41/65536 buckets used, longest chain length 1
/sbin/setfiles:  labeling files under /var/lib/libvirt/images
matchpathcon_filespec_eval:  hash table stats: 7 elements, 7/65536 buckets used, longest chain length 1
/sbin/setfiles:  labeling files under /archives
matchpathcon_filespec_eval:  hash table stats: 3919 elements, 1971/65536 buckets used, longest chain length 9
/sbin/setfiles:  Done.
# ls -lZ /lib64/libm*
-rwxr-xr-x  root root system_u:object_r:lib_t          /lib64/libm-2.5.so
lrwxrwxrwx  root root system_u:object_r:lib_t          /lib64/libm.so.6 -> libm-2.5.so
# 

修正完了

根本原因

とりあえず、正常に戻ったはずだが、そもそも何故余計な定義が付いたのかが不明。いろいろ実験した際に定義を追加してしまったのか?暫く様子見とする。

(追伸) そういえば実験でこのファイルのセキュリティコンテキストをいじったことがある、、自分が原因だ。

以上

0 件のコメント:

コメントを投稿

ラベル

Android Android-x86 apache Backup Blog CentOS DDNS Debian DIY DTM Eclipse Excel Fedora Firefox Google Chrome Hyper-V java Kreetingkard KVM Linux Linux Mint Linuxコマンド例 Linuxシステム管理 Linux管理 Minecraft Minecraft: Wii U Edition Nintendo 3DS nmap O'REILLY Office KB openssl OpenStack openSUSE openSUSE 12 Parted Magic patch(1) PC DIY PC自作 pgrep(1) PHP Picasa pmap(1) PMMP Postfix postgresql printer ps(1) pukiwiki QEMU RHEL rhel5 rhel6 samba sar(1) savscan(1) savupdate(1) Scientific Linux 6 security SELinux SEO showrgb(1) Slackware Linux SLES smbclient(1) smbstatus(1) snmpd(8) squid startx(1) stat(1) strace(1) syslogd(8) tac(1) tee(1) testdisk Thunderbird timezone tomcat touch(1) tr(1) trouble shooting tuning ubuntu uname(1) USB tethering USBブート USBメモリ vi(1) vim(1) virtualbox VMWare VMWare Player vmware server VMware Tools VNC Web Services Wii U Windows wordpress x window XAMPP イベント・祭り インターネット おもちゃ屋 カツカレー ギフト クリーニング店 ゲーム ゴミ コンビニ サンプルコード スポーツ スポット スマホ ソースコード その他 ダーツ ツールTIPS つぶやき ディスク設定 デジタルDIY デジタルガジェット デスクトップ設定 ドラッグストア トラブル トラブルシューティング ニュース ネットワーク設定 バス観光 バックアップ・リストア ビリヤード ブログパーツ プログラミング ブログ作成 ペット用品店 ホームセンター マンションギャラリー メダリーフ リモートアクセス設定 リラクゼーション レジストリ 為替 映画館 英語勉強メモ 横浜市 横浜市交通局 横浜矢向周辺 横濱たちばな亭 屋台 屋内プレイランド 屋内遊園地 温泉 花火 画像 海水浴場 外食 街猫 学校 楽天ウェブサービス 鎌倉 交通 公園 公共施設 国内x86サーバ 災害 雑貨店 参考文献 散髪 使い方 子供教室 死因 寺社 車関連 習い事 住居メンテナンス 出前 情報 食料品店 尻手駅前 新横浜 新横浜駅 新規出店情報 新築 新鶴見公園 新鶴見人道橋 神社 水族館 川崎 川崎駅 川崎市南部市場 川崎大師 卓球 段葛 中古屋 中山ビル 釣り施設 鶴岡八幡宮 鶴見 鶴見神社 電気店 電車 統計 動物園 南武線 日枝神社 買い物 買物 博物館等 八景島シーパラダイス 美容・サロン 百貨店 病院 風呂 複合商業施設 保育園 本屋 漫画 漫画喫茶 矢向 遊園地