連載
» 2002年07月27日 00時00分 公開

Linux管理者への道(2):LDAPによるパスワードの一元管理 (1/3)

パスワードの運用にはさまざまな方法が考えられるが、今回はLDAPを使って各種サービスのパスワードを一元的に統合管理する方法を紹介する。各種サービスをLDAPに対応させることが環境構築のポイントである。(編集局)

[浅野史彦, 小川典嗣,アイティーブースト]

 前回は、パスワード管理するうえで考慮すべき項目の概要を説明しました。今回は「パスワードを管理する」ことを中心に、具体的な環境を想定してシステムを構築してみましょう。

環境構築の前提条件

 実際に要求されることは環境によってさまざまですが、今回は以下のようなネットワーク環境を想定します。

図 今回の記事で想定するネットワーク構成。なお、認証サーバのIPアドレスは「192.168.0.2」とする 図 今回の記事で想定するネットワーク構成。なお、認証サーバの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 画面1 Usermin
  • Windowsからの変更

 WindowsからSambaサーバにアクセスしてパスワード変更を行った場合、自動的にシステムアカウントとSambaユーザーの両方のパスワードを変更させることができます。

画面2 Windows 2000でのパスワード変更画面 画面2 Windows 2000でのパスワード変更画面
  • LDAP専用GUIツール

 LDAPをGUI操作するためのWindows用ツール(LDAP Browserなど)やX Window Systemで動作するgqなどが存在します。ただし、使用するにはLDAP自体についての知識がある程度要求されるため、一般ユーザー向きではありません。

画面3 LDAP Browserでのパスワード変更画面 画面3 LDAP Browserでのパスワード変更画面
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

@ITのメールマガジン(無料)

✔ 【@IT通信】
  編集部のおすすめ記事、限定コラムをお届け
✔ 【@IT新着速報】
  新着記事・速報をまとめてお届け
✔ 【@IT自分戦略研究所Weekly】
  転職支援情報やキャリアアップ情報をお届け

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。