
第2回 LDAPによるパスワードの一元管理
パスワードの運用にはさまざまな方法が考えられるが、今回はLDAPを使って各種サービスのパスワードを一元的に統合管理する方法を紹介する。各種サービスをLDAPに対応させることが環境構築のポイントである。(編集局)
浅野史彦、小川典嗣
アイティーブースト(http://www.itboost.co.jp/)
2002/7/27
前回は、パスワード管理するうえで考慮すべき項目の概要を説明しました。今回は「パスワードを管理する」ことを中心に、具体的な環境を想定してシステムを構築してみましょう。
環境構築の前提条件
実際に要求されることは環境によってさまざまですが、今回は以下のようなネットワーク環境を想定します。
![]() |
| 図 今回の記事で想定するネットワーク構成。なお、認証サーバのIPアドレスは「192.168.0.2」とする |
図を見れば分かるように、この環境ではサーバが別セグメントに隔離されているため、ファイアウォール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内部およびインターネット経由の通信を暗号化する手段をサービスごとに検討します。暗号強度については触れません。
- Samba
あまり暗号強度は強くありませんが、Windowsはパスワードを暗号化して送ります。平文パスワードを送信可能なWindows 95などでも、サーバ側から要求されない限り平文パスワードを送信することはありません。最近のWindowsはセキュリティ向上のため、平文でのパスワード認証はできないようになっています。また、インターネット経由でのアクセスは認めません。
- メール受信サービス
通信にはPOP/SSLを利用します。ただし、POP/SSLに対応するメーラはWindowsではOutlook ExpressあるいはNetscape Mailくらいであるため、ユーザーが使用するメーラを制限することになります。ただし、Usermin/SSLを利用してWebブラウザ経由でメールを見る手段を提供しておきます。
システム自体がLDAPに対応できていれば、特に意識することなくPOP認証にLDAPを利用できます。
- Webサーバへのファイル転送
LDAPに対応しているProFTPDを採用すれば接続できますが、FTPの特性から通信の暗号化が難しいため、インターネットからの接続には違う方法を取ります。
暗号化だけを考えれば、ファイル転送の代替策としてSCPやWebDAV+SSLという手段が考えられます。両者とも簡単にLDAP認証に対応させることが可能です。SCPはWindows用のGUIツールもいくつか存在しますが、今回は後者を採用した方法を紹介します。そのために、ApacheをSSL、LDAP認証、WebDAVに対応させます。
■パスワード変更のユーザーインターフェイス
前回も説明したように、ユーザーにはパスワードを変更させるための適切なインターフェイスを提供しなければなりません。パスワードを変更するツールはいろいろありますが、ここでは今回想定した環境で使用できるものを紹介します。
●コマンドラインツール
- passwdコマンド
システムアカウントのパスワード変更に使用します。pam_ldapモジュールを使用すれば、LDAPに対応できます。ただし、このコマンドでパスワードを変更した場合、Sambaユーザーのパスワードと同期が取れないことに注意してください。
- smbpasswdコマンド
Sambaユーザーのパスワード変更に使用します。SambaをLDAPに対応させてコンパイルすれば、smbpasswdコマンドもLDAPに対応できます。ただし、このコマンドでパスワードを変更した場合、UNIXユーザーのパスワードと同期が取れないことに注意してください。
- smbldap_tools
Sambaチームが作成したユーザー管理用コマンドツール。LDAPのユーザー属性変更の操作は複雑ですが、このツールに含まれるsmbldap-useradd.pl、smbldap-userdel.pl、smbldap-passwd.plなどのスクリプトはuseradd、userdel、passwdコマンドなどと同様の感覚で利用できます。このツールを利用してユーザー情報を登録する場合、shadowパスワードに関する項目はLDAPデータベースに登録されないので、パスワードの有効期限の設定などには対応できません。
●GUIツール
- Usermin
Webブラウザを使用して、パスワードの変更を可能にします。Userminを利用してシステムアカウントのパスワード変更を行う場合は、デフォルトでSambaのパスワードも同時に書き換えようとします。そのため、特に意識しなくてもシステムアカウントとSambaアカウントのパスワードを同期できます。また、Webminを共にインストールすれば、Userminの細かな設定もWebブラウザで行えます。
UserminもPAMを設定してさまざまな認証方法に対応させることができますが、辞書攻撃などに強いパスワードを強制されることがなく、単純なパスワードでも設定できてしまうという欠点もあります。今回は、このツールをユーザー用のパスワード変更ツールとして採用します。

画面1 Usermin
- Windowsからの変更
WindowsからSambaサーバにアクセスしてパスワード変更を行った場合、自動的にシステムアカウントとSambaユーザーの両方のパスワードを変更させることができます。
.
画面2 Windows 2000でのパスワード変更画面
- LDAP専用GUIツール
LDAPをGUI操作するためのWindows用ツール(LDAP Browserなど)やX Window Systemで動作するgqなどが存在します。ただし、使用するにはLDAP自体についての知識がある程度要求されるため、一般ユーザー向きではありません。

画面3 LDAP Browserでのパスワード変更画面
|
1/3
|
|
||||||
|
||||||
| 連載 Linux管理者への道 |
| Linux Squareフォーラム Linux/システム学習関連記事 |
| 連載:Windowsユーザーに教えるLinuxの常識(全12回) Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授! |
|
| 連載:LFSで作って学ぶLinuxの仕組み(全4回) 管理者(root)は、何をしなければならないのか? 管理に際して検討すべきことは? 管理のための技術とは? など、駆け出し管理者のための考え方や方法論を検討する |
|
| 連載:Linux管理者への道(全8回) 「Linux From Scratch」というシンプルなLinuxをインストール&環境構築する作業を通して、LinuxがOSとして機能するための仕組みや設定を見直そう |
|
| Linux Squareフォーラム全記事インデックス |
|
TechTargetジャパン
- 新しい記事も入っていて安心しました (2012/2/7)
Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします - エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

