How to build Internet Server with Linux

last update: 29 Sep 2004

home |index |previous |next |contents

認証の基本



まずはじめに、Unix系システムの基本的なセキュリティ機構である、認証について述べます。
3.1 パスワード

    3.1.1 パスワードの選択、管理

    いまさらくどくど書きませんが、どんなに完全なセキュリティシステムを作っても、 鍵をかけ忘れてはどうにもなりません。推測しやすいパスワードも、ないに等しい ものです。
    不用意にアカウントを発行することもセキュリティホールを自ら作っているような ものです。また、使用していないアカウントは削除すべきです。

    3.1.2 シャドウパスワード

    シャドウパスワード方式とは、暗号化したパスワードを/etc/shadowファイルに 保存することでセキュリティを高める方法です。

    長い間、UNIX系OSのパスワードは/etc/passwdファイルに暗号化して保存されていました。 /etc/passwdファイルはさまざまなプログラムがユーザ認証に利用するため、 このファイルのパーミッションは、一般ユーザに対して可読(読み出し可能)にしておかなければなりません。

    note: 例えば、lsコマンドを実行したときにファイルの所有者名が表示されますが、 それはlsコマンド実行中に/etc/passwdファイルを使ってユーザIDから所有者名を得ているのです。

    そのため、一般ユーザになりすましたクラッカーに、rootの(暗号化した)パスワードを解読されて、サーバを乗っ取られる可能性があります。

    このような事態を避けるため、/etc/passwdファイルにはパスワード関連情報を一切記述せず、 rootユーザのみ可読な/etc/shadowファイルに暗号化したパスワードを保存するシャドウパスワード方式が考案されました。

    RedHat7.0以降はデフォルトでシャドウパスワード方式が使われています。

    RedHat6.2以前のシステムを使用している場合、インストール時にシャドウパスワード方式を使うかどうか選択できます。
    pwconvコマンドで、通常のパスワード方式からシャドウパスワード方式に移行できます。

    # pwconv
    

    シャドウパスワード方式への移行


3.2 PAM(Pluggable Authentication Modules)
PAM(Pluggable Authentication Modules)とは、ユーザ認証を制御するモジュール群と、 それらモジュール群を利用するためのAPIを含めたシステムのことです。

Unix系OS上でアプリケーションを作成する際、ユーザ認証機能も独自に作ると、 開発に手間がかかるだけでなく、セキュリティホールを抱え込む危険性が高まります。
そこでユーザ認証機構を独立させてモジュール化し、 アプリケーション開発におけるユーザ認証関連のセキュリティ問題の発生を抑えると共に、 管理を簡略化してセキュリティを高めるシステム、PAMが開発されました。

現在では、RedHat(5.0以降)を含む、ほとんどのディストリビューションがPAMをサポートしています。

PAMの設定ファイルは/etc/pam.dディレクトリ以下にあります。RedHat7.2サーバインストールでは、次のような設定ファイル群があります。

# ls /etc/pam.d/
chfn	kbdrate		login	ppp	rsh	su
chsh	linuxconf	other	rexec	smtp	sudo 	system-auth
ftp	linuxconf-pair	passwd	rlogin	sshd

ls /etc/pam.d


以下に、PAMの設定ファイルの書式について説明します。
type	control	module-path	module-arguments

PAM設定ファイルの書式


書式の各項目について説明します。

その他、PAMに関する詳細は、次のURLを参照してください。
http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/


home |index |previous |next |contents


since 04/Oct/2004