daily memorandum 2.3.0

CBUG | FreeBSD | Hiki | Knoppix | Mac | Ruby | W-ZERO3 | Windows | ad | amd64 | ks | linux | momonga | net | print | security | tdiary | unix | www | 会社 | 鯖缶 | 全学ゼミ |

Apple Store(Japan)

2006-10-06 (Fri)

_ [security] 自分で仕掛けた罠に自分でハマり、罠に存在した抜け穴から抜け出す

私が管理している鯖では、 以前書いた方法で 私以外の人間が sudo から shell を呼べないようにしてあります。 さらに、最近では su や sudo, visudo も制限してたりします。 具体的には、sudoers にこんな感じで書いてある、と。

   User_Alias	USER_SYSADM = koma2
   User_Alias	USER_WWWADM = koma2, hoge
   
   Cmnd_Alias	CMND_SHELLS = /bin/sh, /bin/csh, /bin/tcsh, /bin/bash
   Cmnd_Alias	CMND_SU = /bin/su, /usr/bin/sudo, /usr/sbin/visudo
   
   USER_WWWADM	ALL=(root)	ALL, !CMND_SHELLS, !CMND_SU
   USER_SYSADM	ALL=(root)	ALL

で、ここに新たに USER_ZOPEADM みたいな User_Alias を追加しようとして、

   User_Alias	USER_SYSADM = koma2
   User_Alias	USER_WWWADM = koma2, hoge
   User_Alias	USER_ZOPEADM = koma2, fuga
   
   Cmnd_Alias	CMND_SHELLS = /bin/sh, /bin/csh, /bin/tcsh, /bin/bash
   Cmnd_Alias	CMND_SU = /bin/su, /usr/bin/sudo, /usr/sbin/visudo
   
   USER_WWWADM		ALL=(root)	ALL, !CMND_SHELLS, !CMND_SU
   USER_SYSADM		ALL=(root)	ALL
   USER_ZOPEADM	ALL=(root,zope)	ALL, !CMND_SHELLS, !CMND_SU

とか書いてやったら… visudo(8) 実行できなくなりますた。orz 後に書いた USER_ZOPEADM のエントリが優先されてしまうらしい。

直そうにも visudo(8) 呼べないし、 sudo sh -c visudo なんて「抜け穴」も自分で禁止してしまったし、 さてどうすべぇと考えてたら…

shell を呼び出す「抜け穴」なんてほかにいくらでもあることに気付き *1 、無事に visudo を呼び出すことが出来たのでした。 (^.^; ということで、この「制限」、「抜け穴」に気付かない人相手にしか役に立ちませんな。^^; *2

_ [FreeBSD][linux][security] Linux-PAM には auth_as_self に相当するものはないのかな?

FreeBSD の PAM (Open PAM) だと、pam_unix.so(8) に auth_as_self という オプションがあって、これを使うと su(8) で root になるときに root のパスワードではなく su(8) を実行するユーザーのパスワードで 認証することが出来ます。 (参考)

で、これに相当するものって Linux-PAM にはないんですかねぇ。。。? ドキュメントを結構マジメに読んだつもりなのだけど、 それらしいものは見付かりませんでした。

ちなみに、上のエントリで sudo の代わりに su を実行しなかったのは、 root パスワードを * で潰してしまっていたからでした。(*.*; Linux でコレをやるのはキケンらしい。

まぁ、root パスワードは私だけが知っていればいいので、 パスワードを設定しておきましたが、 複数人が知らないといけない場合(しかも、共有はしたくない)はどうするのかな…? 古典的だけど、uid 0 なユーザーを複数作るしかないか…

*1 ヒント: sudoedit. ほかにもいくらでも手はありますけどね。

*2 そもそも、visudo 呼ばなくても、vi で直接 sudoers 編集すればいいじゃんってことも、後で気付いた。B)

本日のリンク元
アンテナ
その他のリンク元
検索