[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今年1月21日に書いたネタ。
現在担当しているWebシステム開発プロジェクトだが、
IAサーバにRedHat Enterprise Linux ES 3.0を乗せたものがターゲット・プラットフォームだ。
12月初旬、本番運用のサーバが顧客のサーバ・センターに設置され、顧客のオープンソース部隊がインターネット向けのセキュア・サーバ化を実施した。
巷ではこういうことを‘要塞化’というらしい。。。
そのサーバで総合テストをやってきたのだが、
su(Substitute User)コマンドの使い勝手が悪い。
私のようなインフラ系SEは、オペレーションのエヴィデンスを残すため、scriptコマンドを用いてTELNETのセッションをログに保存する。
その、scriptコマンドによるロギング・セッションにおいて、suコマンドを実行すると必ずパスワード入力を督促され、正しいパスワードを入力しても拒否されるのだ。
しかも、rootなのに、だ
「なんかおかしい」と直感が働きつつも、他の事に忙殺されて捨て置いていた。
そのうち、
サーバ・センターの運用部隊がF-Secureというウィルス対策ソフトをサーバに導入したのだが、それが起動できないというではないか。
F-Secureが動かない限りはインターネット接続(つまり本番運用サービスが)できない、とのことで、顧客の担当者から「何とかしてよ」と泣きつかれ、
渋々(実は嬉々として)サーバ・センターに出向いた。
検証してみると、
F-SecureはRun Level 3で起動されるようになっているのだが、そこで起動処理がストールするようになっていた。
もっと調べると、標準出力を/dev/nullにリダイレクトする指定のsuコマンドの部分でストールしていた。
「あれ、suの実行結果をリダイレクト出力してる。scriptの不具合と何だか似てるなぁ」と思った。
さらに、su実行時に「incorrect password」というメッセージが出ている。
起動処理を実施するinitプロセスはrootだし、あり得ない事象だ。パスワード間違いなんて。。。
どーも、suコマンドの実行に関する認証の機能がおかしい。
認証はPAMで制御されているが、
そういえば、要塞化の折に‘wheel’ユーザのみsuコマンドを実行できるよう設定した、と連絡があった。
suコマンドのPAM認証を司る、/etc/pam.d/suファイルを開いて見てみた。
すると、
要塞化作業者が追加した、
“auth required /lib/security/pam_wheel.so group=wheel”
という行があった。
当ファイルを眺めていると、
「wheelグループだけsuさせたいならこの行を使え」
みたいなコメントがあるぢゃないか。
そこを見ると、
“auth required /lib/security/pam_wheel.so use_uid”
と書かれている。
"use_uid"オプションって、ナンダァ?
何かヒントでも得られないものかとグーグル神に検索をお願い奉ると、
pam_wheelモジュールに関するバグのレポートが降臨あそばされた。
バ、バグ?!
はた、と思いつき、
以下のように設定してみた。
“auth required /lib/security/pam_wheel.so use_uid group=wheel”
すると。
おぉ、scriptによるロギング・セッション内でsuコマンドが使えるぢゃん。
F-Secureも起動するぢゃん。
wheelグループに属するユーザだけsuできるのも有効。
バッチリぢゃん。
ということで、動いたので、これで由(よし)とする。
"use_uid"オプションがどんな意味かなんて、暇になってから調べよう。
(きっと、永遠に調べない)