アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » ADMINISTRATOR STAGE » 連載 » そろそろLDAPにしてみないか? » 第11回 OpenLDAPとSSL

そろそろLDAPにしてみないか?

第11回 OpenLDAPとSSL

今回のテーマは暗号化です。SMTPやPOP3プロトコルでは平文パスワードがネットワーク上を流れることが知られていますが,LDAPでも同じことが言え,tcpdumpなどでキャプチャしてみると,パスワード文字列を簡単に取得することができてしまいます。

たとえば,UNIXアカウントをOpenLDAPで管理する場合,実際のパスワード情報はLDAPサーバ上のuserPassword属性中に暗号化された状態で格納されていますが,ネットワーク上のトラフィックをキャプチャしてみると,平文のパスワードを取得することができてしまいます。

信頼されたネットワーク内のみで運用するのであれば話は別ですが,盗聴の危険性を考慮した場合,ネットワーク経路の暗号化を是非検討してみてください。

暗号化の種類

データを暗号化させるためには,いくつかの方法が考えられますが,これはSMTP/POP3/IMAPなどの基本的なプロトコルにおける考え方と同様です。

ひとつ目の方法はSSL/TLSにより,トラフィック全体を暗号化させることです。この場合SSLを使用しますので,LDAPサーバ上にサーバ鍵,証明書,CA情報などを設置しておく必要があります。トラフィックをSSLでカプセリングすることで,パスワード情報だけではなく接続の最初から最後までの全情報を暗号化させることができることが最大のメリットです。また,暗号化だけではなく信頼された接続先に安全に接続できる,という意味も持ちます。

もうひとつの方法は,LDAPバインド時の認証情報のみを暗号化させることです。この場合,バインド時の情報だけが暗号化されていますので,エントリを取得する際の情報は平文の状態となります。SMTP Authの設定を経験されたことのある読者はご存じかと思いますが,CRAM-MD5方式などの暗号化メソッドがそれに該当します。データの一部しか暗号化されないのであれば,「最初からSSL/TLSにしていたほうが良いのでは?」と考える読者の方もいらっしゃるかもしれませんが,全てを暗号化するわけではないため,SSLよりもパフォーマンス的に優れる,というのがメリットです。

今回は前者のSSLによる設定を紹介します。

OpenLDAPとSSL/TLS設定

SSL設定を行うためにはサーバ鍵,証明書などの情報が必須です。通常であればVeriSignのような認証局にCSRを提出し,証明書を取得する手順となりますが,今回は皆さん予想されているとおり,自己証明書を使った構築方法を説明します。

ちなみに,証明書を作成するためのOpenSSLには証明書を手軽に作成するための,CA.shやCA.plというスクリプトが含まれていることが多いのですが,お使いのディストリビューションによっては,opensslコマンドは存在するが,CA.shが存在しない,という場合もありますので,今回はCA.shを使わない方法を説明します。

サーバ鍵の作成

opensslコマンドを使ってサーバ鍵を作成しますが,例のごとく鍵にパスフレーズが含まれていると,安全ではあるのですが運用上不便なところも多いため,パスフレーズ無しの鍵を作成しておきます。

図1 サーバ鍵の作成

% mkdir /tmp/ssl
% cd /tmp/ssl
% openssl genrsa -in server.key.tmp -out server.key 
Generating RSA private key, 1024 bit long modulus 
................................................................++++++ 
.++++++ 
unable to write 'random state' 
e is 65537 (0x10001) 
Enter pass phrase for server.key.tmp: パスフレーズを入力
Verifying - Enter pass phrase for server.key.tmp: パスフレーズを入力
% openssl rsa -in server.key.tmp -out server.key 
Enter pass phrase for server.key.tmp: 先ほどのパスフレーズを入力
writing RSA key 

次に自分自身でサインする証明書を作成します。今回の目的は先に述べたよう,暗号化のみであるため,公の認証局は使用しません。また,後々の運用を楽にするため,有効期限をかなり長めに設定します。

図2 自己証明書の作成

% openssl req -new -x509 -days 3650 -key server.key -out server.crt 
You are about to be asked to enter information that will be incorporated 
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN. 
There are quite a few fields but you can leave some blank 
For some fields there will be a default value, 
If you enter '.', the field will be left blank. 
----- 
Country Name (2 letter code) [AU]:JP 
State or Province Name (full name) [Some-State]:Tokyo 
Locality Name (eg, city) []:Minato-ku 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:BLUECOARA 
Organizational Unit Name (eg, section) []: 
Common Name (eg, YOUR name) []:secure.bluecoara.net 
Email Address []: 

整理しておきますと,サーバ鍵と証明書の内容は次のようなフォーマットになります。

リスト1 サーバ鍵(server.key)

-----BEGIN RSA PRIVATE KEY----- 
MIICXgIBAAKBgQDJU87P/DCNcbT1GbUF4GGsd0AlA637NO9RZ8VV3WGca5ovPqII 
SYYjCEaVdlLdhfw545W5gS4LprsAFU00DKz9G+WAk2GwZgFxO8W5xB8RtvUTokeK 
s/PsOxDFR8PX2UTRZqZePnfxtAHx/Yd7e5EfamZpJ5/eqshjIbcP3p6MUQIDAQAB 
AoGBAMMTb9tb03faa6rqo9rz1fCVBBRZgmVcn19Tm4RdpE06fgW1PK+m/lBHno0I 
P7biMsms2dELeKBVh/DGsy3x8lL+eFEBYo9d9jeHUY6E0Y4e1GhNDisZwKehQUiV 
VwqHI81YbDMmtrZ2U4RWuddgKSyeVa+o63zYqhw/Tps7H+zZAkEA6FD2Sl12ISKZ 
WOZsj6q0orS4TjAjNOU+Z3Ql0deHzkbRN4xJL4QizVIP36+aiEpWydW7d7cnaxu1 
Hpoy7bti4wJBAN3aF2ql39nzwpYaQclbXYVgpsoxSPiapo/8ZpuV7dR6izuqW84l 
BsefE+1cfoU3yKtkZd6xRwG5gw5lqts31jsCQQDi2aQWK7tdUcbCC4d4pm1q7+OE 
3faTAUN1i/IePUMshvRnNIKGdpXxPi+n8naInWawAhfkJ6HDMjQjJNmUUMWXAkEA 
ydlgbNw266rpZIDHUlkaofvqRRTKe8bZvS+8e9rR5P0KKWM63Di8DmwiSVhalQLI 
RYi3VwKcxGjxYOwHpCUNeQJAAoEVQVxUhQq2aXKOaEdjjmODTh+WnbY0OcRgX6KX 
ZDKv4VOV+kRO5G1pKjtM/PMclhzf4l5lHZe5/BWE1LA2Gw== 
-----END RSA PRIVATE KEY----- 

リスト2 証明書(server.crt)

-----BEGIN CERTIFICATE----- 
MIIDEDCCAnmgAwIBAgIJALnZerfv4y/qMA0GCSqGSIb3DQEBBQUAMGQxCzAJBgNV 
BAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzESMBAGA1UEBxMJTWluYXRvLWt1MRIwEAYD 
VQQKEwlCTFVFQ09BUkExHTAbBgNVBAMTFHNlY3VyZS5ibHVlY29hcmEubmV0MB4X 
DTA4MDUwNDAzMjMxM1oXDTE4MDUwMjAzMjMxM1owZDELMAkGA1UEBhMCSlAxDjAM 
BgNVBAgTBVRva3lvMRIwEAYDVQQHEwlNaW5hdG8ta3UxEjAQBgNVBAoTCUJMVUVD 
T0FSQTEdMBsGA1UEAxMUc2VjdXJlLmJsdWVjb2FyYS5uZXQwgZ8wDQYJKoZIhvcN 
AQEBBQADgY0AMIGJAoGBAMlTzs/8MI1xtPUZtQXgYax3QCUDrfs071FnxVXdYZxr 
mi8+oghJhiMIRpV2Ut2F/DnjlbmBLgumuwAVTTQMrP0b5YCTYbBmAXE7xbnEHxG2 
9ROiR4qz8+w7EMVHw9fZRNFmpl4+d/G0AfH9h3t7kR9qZmknn96qyGMhtw/enoxR 
AgMBAAGjgckwgcYwHQYDVR0OBBYEFP2Kyzw0LBvTf2Q5DjVpckh/2tXAMIGWBgNV 
HSMEgY4wgYuAFP2Kyzw0LBvTf2Q5DjVpckh/2tXAoWikZjBkMQswCQYDVQQGEwJK 
UDEOMAwGA1UECBMFVG9reW8xEjAQBgNVBAcTCU1pbmF0by1rdTESMBAGA1UEChMJ 
QkxVRUNPQVJBMR0wGwYDVQQDExRzZWN1cmUuYmx1ZWNvYXJhLm5ldIIJALnZerfv 
4y/qMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAOjeLtA8YNh6QUuoP 
tLYt6RcJgWLVqpkpFv8f3kJgY02AIeSvcWP7sHCFtALf4YkhKEG8eKfQt3kA2jHb 
C3XJzxWGHMLoMBwe3IPdQbeadp8NyWVq6PqlAp0SpX42qRA3oUK0w6d/S4GUnE0S 
8n8o7k/mglbG1Q+aQdY9JQbD+o8= 
-----END CERTIFICATE----- 

では,これらのファイルを便宜上/etc/openldapディレクトリ中にコピーしてください。安全のためサーバ鍵のパーミッションは管理者のみが参照できるように設定しておきます。

図3 ファイルの配置

# cp server.key /etc/openldap/
# cp server.crt /etc/openldap/
# chmod 600 /etc/openldap/server.key
# chown ldap:ldap /etc/openldap/server.*

また,公の認証局を使用する場合には,必要に応じてその認証局のCA情報を同ディレクトリに保存しておいてください。

著者プロフィール

中満英生(なかみつひでお)

大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス