Ubuntu14.04サーバーにOpenLDAPとphpLDAPadminをインストールして設定する方法
序章
LDAP 、またはライトウェイトディレクトリアクセスプロトコルは、一元化された階層的なファイルおよびディレクトリ構造で関連情報を管理およびアクセスするために設計されたプロトコルです。
いくつかの点で、リレーショナルデータベースと同様に動作しますが、これはすべてに当てはまるわけではありません。 階層構造は、データの関連性の主な違いです。 あらゆる種類の情報を保存するために使用でき、集中認証システムの1つのコンポーネントとしてよく使用されます。
このガイドでは、Ubuntu14.04サーバーにOpenLDAPサーバーをインストールして構成する方法について説明します。 次に、phpLDAPadminインターフェースをインストールして保護し、簡単なWebインターフェースを提供します。
LDAPおよびヘルパーユーティリティをインストールする
始める前に、必要なソフトウェアをインストールする必要があります。 幸いなことに、パッケージはすべてUbuntuのデフォルトのリポジトリで利用できます。
初めての使用です apt
このセッションでは、ローカルパッケージインデックスを更新します。 その後、必要なパッケージをインストールできます。
sudo apt-get update
sudo apt-get install slapd ldap-utils
インストール中に、LDAPの管理者パスワードを選択して確認するように求められます。 すぐに変更できるので、実際には何でもここに置くことができます。
slapdを再構成して、より適切な設定を選択します
パッケージがインストールされたばかりですが、先に進み、Ubuntuがインストールされるデフォルトを再構成します。
この理由は、パッケージには多くの重要な構成に関する質問をする機能がありますが、これらはインストールプロセスでスキップされるためです。 ただし、システムにパッケージを再構成するように指示することで、すべてのプロンプトにアクセスできます。
sudo dpkg-reconfigure slapd
このプロセスを実行するときに尋ねられる新しい質問がかなりあります。 今、これらを調べてみましょう:
- OpenLDAPサーバー構成を省略しますか? いいえ
- DNSドメイン名?
- このオプションは、ディレクトリパスの基本構造を決定します。 メッセージを読んで、これがどのように実装されるかを正確に理解してください。
- これは実際にはかなりオープンなオプションです。 実際のドメインを所有していない場合でも、任意の「ドメイン名」の値を選択できます。 ただし、サーバーのドメイン名がある場合は、それを使用することをお勧めします。
- このガイドでは、構成にtest.comを選択します。
- 組織名?
- 繰り返しになりますが、これはほぼ完全にあなたの好み次第です。
- このガイドでは、組織の名前としてexampleを使用します。
- 管理者パスワード?
- インストールのセクションで述べたように、これは管理者パスワードを選択する実際の機会です。 ここで選択したものはすべて、以前に使用したパスワードを上書きします。
- データベースバックエンド? HDB
- slapdがパージされたときにデータベースを削除しますか? いいえ
- 古いデータベースを移動しますか? はい
- LDAPv2プロトコルを許可しますか? いいえ
この時点で、LDAPはかなり合理的な方法で構成する必要があります。
phpLDAPadminをインストールして、WebインターフェイスでLDAPを管理します
コマンドラインからLDAPを管理することは非常に可能ですが、ほとんどのユーザーはWebインターフェイスを使用する方が簡単です。 この機能を提供するphpLDAPadminをインストールして、LDAPツールの学習の摩擦を取り除くのに役立てます。
UbuntuリポジトリにはphpLDAPadminパッケージが含まれています。 次のように入力してインストールできます。
sudo apt-get install phpldapadmin
これにより、管理インターフェイスがインストールされ、必要なApache仮想ホストファイルが有効になり、Apacheがリロードされます。
これで、Webサーバーがアプリケーションにサービスを提供するように構成されましたが、いくつかの追加の変更を行います。 LDAP用に構成したドメインスキーマを使用するようにphpLDAPadminを構成する必要があります。また、構成を少し保護するためにいくつかの調整を行います。
phpLDAPadminを設定する
パッケージがインストールされたので、OpenLDAP構成段階で作成されたLDAPディレクトリ構造に接続できるようにいくつかの構成を行う必要があります。
テキストエディタでroot権限でメイン設定ファイルを開くことから始めます。
sudo nano /etc/phpldapadmin/config.php
このファイルには、LDAPサーバー用に設定した構成の詳細を追加する必要があります。 まず、ホストパラメータを探し、サーバーのドメイン名またはパブリックIPアドレスに設定します。 このパラメーターは、Webインターフェースへのアクセスを計画している方法を反映している必要があります。
$ servers-> setValue('server'、'host'、' server_domain_name_or_IP ');
次に、LDAPサーバー用に選択したドメイン名を構成する必要があります。 この例では、 test.com
. 各ドメインコンポーネント(ドット以外のすべて)をaの値に置き換えることにより、これをLDAP構文に変換する必要があります。 dc
仕様。
これはすべて、書く代わりに test.com
、私たちは次のようなものを書きます dc=test,dc=com
. サーバーの基本パラメーターを設定するパラメーターを見つけ、先ほど説明した形式を使用して、決定したドメインを参照する必要があります。
$ servers-> setValue('server'、'base'、array('dc = test 、dc = com '));
loginbind_idパラメーターでこれと同じことを調整する必要があります。 The cn
パラメータはすでに「admin」として設定されています。 正解です。 調整する必要があります dc
上で行ったように、部分をもう一度:
$ servers-> setValue('login'、'bind_id'、'cn = admin、dc = test 、dc = com ');
最後に調整する必要があるのは、警告メッセージの表示を制御する設定です。 デフォルトでは、phpLDAPadminは、機能に影響を与えないテンプレートファイルについて、Webインターフェイスにかなりの数の迷惑な警告メッセージをスローします。
これらを非表示にするには、 hide_template_warning
パラメータ、それを含む行のコメントを解除し、「true」に設定します。
$ config-> custom->appearance ['hide_template_warning'] = true ;
これは、調整する必要がある最後のことです。 終了したら、ファイルを保存して閉じることができます。
SSL証明書を作成する
LDAPサーバーへの接続をSSLで保護して、外部の関係者が通信を傍受できないようにする必要があります。
管理インターフェースはローカルネットワーク上のLDAPサーバー自体と通信しているため、その接続にSSLを使用する必要はありません。 接続するときは、ブラウザへの外部接続を保護する必要があります。
これを行うには、サーバーが使用できる自己署名SSL証明書を設定する必要があります。 これはサーバーのIDを検証するのに役立ちませんが、メッセージを暗号化することはできます。
OpenSSLパッケージは、デフォルトでシステムにインストールされている必要があります。 まず、証明書とキーを保持するディレクトリを作成する必要があります。
sudo mkdir /etc/apache2/ssl
次に、次のように入力して、キーと証明書を1回の移動で作成できます。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
ユーティリティが証明書のフィールドに正しく入力するには、いくつかの質問に答える必要があります。 本当に重要なのは、次のようなプロンプトだけです。 Common Name (e.g. server FQDN or YOUR name)
. サーバーのドメイン名またはIPアドレスを入力します。
終了すると、証明書とキーがに書き込まれます /etc/apache2/ssl
ディレクトリ。
パスワード認証ファイルを作成する
また、phpLDAPadminの場所をパスワードで保護したいと考えています。 phpLDAPadminにはパスワード認証がありますが、これによりさらに高いレベルの保護が提供されます。
必要なユーティリティは、Apacheユーティリティパッケージに含まれています。 次のように入力して取得します。
sudo apt-get install apache2-utils
ユーティリティを使用できるようになったので、選択したユーザー名と関連するハッシュされたパスワードを含むパスワードファイルを作成できます。
これを /etc/apache2
ディレクトリ。 ファイルを作成し、次のように入力して使用するユーザー名を指定します。
sudo htpasswd -c / etc / apache2 / htpasswd demo_user
これで、セキュリティのアップグレードを利用するためにApacheを変更する準備が整いました。
安全なApache
最初にすべきことは、ApacheでSSLモジュールを有効にすることです。 これを行うには、次のように入力します。
sudo a2enmod ssl
これにより、モジュールが有効になり、使用できるようになります。 ただし、これを利用するには、Apacheを構成する必要があります。
現在、Apacheはというファイルを読み取っています 000-default.conf
通常の暗号化されていないHTTP接続の場合。 接続が暗号化されるように、phpLDAPadminインターフェースのリクエストをHTTPSインターフェースにリダイレクトするように指示する必要があります。
SSL証明書を使用するようにトラフィックをリダイレクトする場合、ユーザーを認証するためのパスワードファイルも実装します。 変更を加えている間、標的型攻撃を最小限に抑えるためにphpLDAPadminインターフェース自体の場所も変更します。
phpLDAPadminApache設定を変更します
最初に行うことは、phpLDAPadminファイルを提供するように設定されているエイリアスを変更することです。
テキストエディタでroot権限でファイルを開きます。
sudo nano /etc/phpldapadmin/apache.conf
これは、インターフェイスにアクセスするURLの場所を決定する必要がある場所です。 デフォルトは /phpldapadmin
、ただし、これを変更して、ボットや悪意のあるパーティによるランダムなログイン試行を削減したいと考えています。
このガイドでは、場所を使用します /superldap
、ただし、独自の値を選択する必要があります。
を指定する行を変更する必要があります Alias
. これは IfModule mod_alias.c
ブロック。 終了すると、次のようになります。
エイリアス/superldap / usr / share / phpldapadmin / htdocs
終了したら、安全にファイルを閉じます。
HTTP仮想ホストを構成します
次に、現在の仮想ホストファイルを変更する必要があります。 エディターでroot権限で開きます。
sudo nano /etc/apache2/sites-enabled/000-default.conf
内部には、次のようなかなり裸の構成ファイルが表示されます。
ServerAdminウェブマスター @localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog ${APACHE_LOG_DIR}/access.log結合
ドメイン名またはIPアドレスに関する情報を追加してサーバー名を定義し、すべてのHTTPリクエストがHTTPSインターフェースを指すようにリダイレクトを設定します。 これは、前のセクションで構成したエイリアスと一致します。
話し合った変更は、最終的には次のようになります。 独自の値で赤の項目を変更します。
ServerAdmin webmaster @ server_domain_or_IP DocumentRoot / var / www / htmlServerNameserver_domain_or_IPリダイレクトパーマネント/superldaphttps:// server_domain_or_IP / superldap ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog ${APACHE_LOG_DIR}/access.log結合
終了したら、ファイルを保存して閉じます。
HTTPS仮想ホストファイルを構成する
Apacheには、デフォルトのSSL仮想ホストファイルが含まれています。 ただし、デフォルトでは有効になっていません。
次のように入力して有効にできます。
sudo a2ensite default-ssl.conf
これにより、ファイルが sites-available
ディレクトリに sites-enabled
ディレクトリ。 次のように入力して、このファイルを編集できます。
sudo nano /etc/apache2/sites-enabled/default-ssl.conf
このファイルは前のファイルよりも少し複雑なので、必要な変更についてのみ説明します。 以下のすべての変更は、ファイルの仮想ホストブロック内に配置する必要があります。
まず、 ServerName
サーバーのドメイン名またはIPアドレスに値を再度変更し、 ServerAdmin
ディレクティブも:
ServerAdmin webmaster @ server_domain_or_IP ServerName server_domain_or_IP
次に、作成したキーと証明書を指すようにSSL証明書ディレクティブを設定する必要があります。 ディレクティブはファイルにすでに存在しているはずなので、ディレクティブが指すファイルを変更するだけです。
SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key
最後に行う必要があるのは、phpLDAPadminインストール全体のパスワード保護を実装するロケーションブロックを設定することです。
これを行うには、phpLDAPadminを提供している場所を参照し、生成したファイルを使用して認証を設定します。 このコンテンツにアクセスしようとする人は誰でも、有効なユーザーとして認証する必要があります。
AuthTypeBasicAuthName 「制限付きファイル」 AuthUserFile/etc / apache2/htpasswd有効なユーザーが必要
終了したら、ファイルを保存して閉じます。
Apacheを再起動して、行ったすべての変更を実装します。
sudo service apache2 restart
これで、実際のインターフェースに進むことができます。
phpLDAPadminWebインターフェイスにログインします
phpLDAPadminソフトウェアに必要な構成変更を加えました。 これで使用を開始できます。
サーバーのドメイン名またはパブリックIPアドレスに続いて、構成したエイリアスにアクセスすることで、Webインターフェイスにアクセスできます。 私たちの場合、これは /superldap
:
http:// server_domain_name_or_IP / superldap
初めてアクセスすると、サイトのSSL証明書に関する警告が表示される可能性があります。
警告は、ブラウザが証明書に署名した認証局を認識していないことを通知するためのものです。 own 証明書に署名したので、これは予期されたものであり、問題ではありません。
「続行」ボタンまたはブラウザに表示される同様のオプションをクリックします。
次に、Apache用に構成したパスワードプロンプトが表示されます。
作成したアカウントのクレデンシャルを htpasswd
指図。 メインのphpLDAPadminランディングページが表示されます。
ページの左側にある「ログイン」リンクをクリックします。
ログインプロンプトが表示されます。 ログイン「DN」は、使用するユーザー名のようなものです。 これには、「cn」の下のアカウント名と、上記で説明したように「dc」セクションに分割されたサーバー用に選択したドメイン名が含まれています。
phpLDAPadminを正しく設定した場合は、adminアカウントの正しい値が事前に入力されている必要があります。 私たちの場合、これは次のようになります。
cn=admin,dc=test,dc=com
パスワードには、LDAP構成時に構成した管理者パスワードを入力します。
メインインターフェイスに移動します。
組織単位、グループ、およびユーザーを追加する
この時点で、phpLDAPadminインターフェースにログインしています。 ユーザー、組織単位、グループ、および関係を追加することができます。
LDAPは、データとディレクトリの階層をどのように構成するかについて柔軟性があります。 基本的に、任意の種類の構造を作成し、それらがどのように相互作用するかについてのルールを作成できます。
このプロセスはUbuntu14.04でもUbuntu12.04と同じであるため、Ubuntu 12.04のLDAPインストール記事の「組織単位、グループ、およびユーザーの追加」セクションに記載されている手順に従うことができます。 。
このインストールの手順はまったく同じです。そのため、インターフェイスの操作方法を練習し、ユニットの構造を学ぶために進んでください。
結論
これで、Ubuntu14.04サーバーにOpenLDAPがインストールおよび構成されているはずです。 また、phpLDAPadminプログラムを介して構造を管理するためのWebインターフェイスをインストールして構成しました。 アプリケーション全体をSSLとパスワードで保護することにより、アプリケーションの基本的なセキュリティを構成しました。
私たちが設定したシステムは非常に柔軟性があり、必要に応じて独自の組織スキーマを設計し、リソースのグループを管理できるはずです。 次のガイドでは、システム認証にこのLDAPサーバーを使用するようにネットワークマシンを構成する方法について説明します。