PAMの仕組みを知りたい
Red Hatディストリビューションでは,ユーザー認証のためにPAM(Pluggable Authentication Modules)と呼ばれるモジュールが用意されている。
通常,サーバに接続する際には認証プログラムが動作して各サービスへ接続される。この認証部分のみを独立させることで各サービス(ftpdなど)ごとに基本的な認証設定をしなくて済むよう配慮されているのだ。各サーバソフトをリコンパイルする必要なく,PAMサポートという形で共通のユーザー認証が実現できる。
認証に関わる設定ファイルは,/etc/pam.d/下に用意されている。プログラムに認証モジュールをプラグインする形で制御を行っているのだ。下のファイル構成例は,Red Hat Linux 6.2のものである。
$ ls -l /etc/pam.d/ total 19 -rw-r--r-- 1 root root 336 Sep91999 chfn -rw-r--r-- 1 root root 336 Sep91999 chsh -rw-r--r-- 1 root root 116 Jun 101999 imap -rw-r--r-- 1 root root 157 Sep91999 kbdrate -rw-r--r-- 1 root root 116 Dec 151999 linuxconf -rw-r--r-- 1 root root 545 Dec 151999 linuxconf-pair -rw-r--r-- 1 root root 437 Mar 282000 login -rw-r--r-- 1 root root 210 Sep 251999 other -rw-r--r-- 1 root root 250 Mar 282000 passwd -rw-r--r-- 1 root root 116 Jun 101999 pop -rw-r--r-- 1 root root 116 Oct 172000 pop3 -rw-r--r-- 1 root root 155 Sep 201999 ppp -rw-r--r-- 1 root root 216 Jul 311999 rexec -rw-r--r-- 1 root root 443 Mar 282000 rlogin -rw-r--r-- 1 root root 204 Jul 311999 rsh -rw-r--r-- 1 root root 97 Sep 261999 samba -rw------- 1 root root 410 Jul 162000 sshd -rw-r----- 1 root root 330 Jul 262000 su -rw-r--r-- 1 root root 70 Feb92000 vlock |
この中で例えば,Sambaの認証ファイルを見てみよう。ここでのポイントは,2つの種類の認証がされていることである。さらに「auth」,「account」,「required」の文字列の意味を理解できればSambaでのPAM認証プロセスが分かるだろう。
$ cat /etc/pam.d/samba auth required /lib/security/pam_pwdb.so nullok shadow account required /lib/security/pam_pwdb.so |
PAMには次の4つのモジュールタイプがある。このタイプ別に定義することで,特定のサービスへのアクセスを制御するのだ。
■PAM認証モジュール | ||||||||||
|
■PAM制御フラグ | ||||||||||
|