パスワードの運用にはさまざまな方法が考えられるが、今回はLDAPを使って各種サービスのパスワードを一元的に統合管理する方法を紹介する。各種サービスをLDAPに対応させることが環境構築のポイントである。(編集局)
前回は、パスワード管理するうえで考慮すべき項目の概要を説明しました。今回は「パスワードを管理する」ことを中心に、具体的な環境を想定してシステムを構築してみましょう。
実際に要求されることは環境によってさまざまですが、今回は以下のようなネットワーク環境を想定します。
図を見れば分かるように、この環境ではサーバが別セグメントに隔離されているため、ファイアウォール1とファイアウォール2の間は暗号化を不要とします。
上記のサーバ構成で普通に構築すると、以下の「パスワードデータベース」が使用されると考えられます。
サービス | パスワードデータベース(※) |
---|---|
ファイル共有サービス(Samba) | /usr/local/samba/private/smbpasswd |
リモートログインサービス メールサービス(Qpopper) |
/etc/passwd |
Webサービス(Apacheのベーシック認証) | .htpasswd |
※ 一般的なファイル名 |
今回は、この3つのパスワードを一元管理するために「LDAPサーバ」を利用します。つまり、ユーザーアカウントおよびパスワードをLDAPに格納し、すべてのサービスが同じデータを参照するようにします。
ただし、ここで1つ考慮すべき点があります。パスワードは、元のデータを割り出せないような仕組みで暗号化するのが普通です。パスワードが正しいかどうかを確認するには、同じ方法で暗号化したデータ同士を比較する必要があります。しかし、LinuxとWindowsではパスワードの暗号方法が異なるため、入力したパスワードが同じでも暗号化されたパスワードデータを後で比較することは不可能です。そのため、複数のパスワードデータをLDAPサーバの1人のユーザーの属性としてまとめたとしても、一方のパスワード(例えばWindows)に対して変更があった場合には、他方のパスワード(例えばLinux)も変更されるような仕組みが必要です。
ここでは、LAN内部およびインターネット経由の通信を暗号化する手段をサービスごとに検討します。暗号強度については触れません。
あまり暗号強度は強くありませんが、Windowsはパスワードを暗号化して送ります。平文パスワードを送信可能なWindows 95などでも、サーバ側から要求されない限り平文パスワードを送信することはありません。最近のWindowsはセキュリティ向上のため、平文でのパスワード認証はできないようになっています。また、インターネット経由でのアクセスは認めません。
通信にはPOP/SSLを利用します。ただし、POP/SSLに対応するメーラはWindowsではOutlook ExpressあるいはNetscape
Mailくらいであるため、ユーザーが使用するメーラを制限することになります。ただし、Usermin/SSLを利用してWebブラウザ経由でメールを見る手段を提供しておきます。
システム自体がLDAPに対応できていれば、特に意識することなくPOP認証にLDAPを利用できます。
LDAPに対応しているProFTPDを採用すれば接続できますが、FTPの特性から通信の暗号化が難しいため、インターネットからの接続には違う方法を取ります。
暗号化だけを考えれば、ファイル転送の代替策としてSCPやWebDAV+SSLという手段が考えられます。両者とも簡単にLDAP認証に対応させることが可能です。SCPはWindows用のGUIツールもいくつか存在しますが、今回は後者を採用した方法を紹介します。そのために、ApacheをSSL、LDAP認証、WebDAVに対応させます。
前回も説明したように、ユーザーにはパスワードを変更させるための適切なインターフェイスを提供しなければなりません。パスワードを変更するツールはいろいろありますが、ここでは今回想定した環境で使用できるものを紹介します。
システムアカウントのパスワード変更に使用します。pam_ldapモジュールを使用すれば、LDAPに対応できます。ただし、このコマンドでパスワードを変更した場合、Sambaユーザーのパスワードと同期が取れないことに注意してください。
Sambaユーザーのパスワード変更に使用します。SambaをLDAPに対応させてコンパイルすれば、smbpasswdコマンドもLDAPに対応できます。ただし、このコマンドでパスワードを変更した場合、UNIXユーザーのパスワードと同期が取れないことに注意してください。
Sambaチームが作成したユーザー管理用コマンドツール。LDAPのユーザー属性変更の操作は複雑ですが、このツールに含まれるsmbldap-useradd.pl、smbldap-userdel.pl、smbldap-passwd.plなどのスクリプトはuseradd、userdel、passwdコマンドなどと同様の感覚で利用できます。このツールを利用してユーザー情報を登録する場合、shadowパスワードに関する項目はLDAPデータベースに登録されないので、パスワードの有効期限の設定などには対応できません。
Webブラウザを使用して、パスワードの変更を可能にします。Userminを利用してシステムアカウントのパスワード変更を行う場合は、デフォルトでSambaのパスワードも同時に書き換えようとします。そのため、特に意識しなくてもシステムアカウントとSambaアカウントのパスワードを同期できます。また、Webminを共にインストールすれば、Userminの細かな設定もWebブラウザで行えます。
UserminもPAMを設定してさまざまな認証方法に対応させることができますが、辞書攻撃などに強いパスワードを強制されることがなく、単純なパスワードでも設定できてしまうという欠点もあります。今回は、このツールをユーザー用のパスワード変更ツールとして採用します。
WindowsからSambaサーバにアクセスしてパスワード変更を行った場合、自動的にシステムアカウントとSambaユーザーの両方のパスワードを変更させることができます。
LDAPをGUI操作するためのWindows用ツール(LDAP Browserなど)やX Window Systemで動作するgqなどが存在します。ただし、使用するにはLDAP自体についての知識がある程度要求されるため、一般ユーザー向きではありません。
Copyright © ITmedia, Inc. All Rights Reserved.