このチュートリアルでは、Ubuntu16.04LTSへのOpenLDAPサーバーのインストールと構成について見ていきます。 phpLDAPadminもインストールします Webベースの管理ツール。
OpenLDAPとは
OpenLDAP は、ネットワーククライアントにディレクトリサービスを提供するオープンソースの高速ディレクトリサーバーです。クライアントアプリケーションは、ライトウェイトディレクトリアクセスプロトコル(LDAP)を使用してOpenLDAPサーバーに接続します そのサーバーに保存されている組織情報にアクセスします。適切なアクセス権があれば、クライアントはディレクトリを検索し、ディレクトリ内のレコードを変更および操作できます。 OpenLDAPは、ディレクトリ内のデータの読み取りと変更の両方で効率的です。
OpenLDAPサーバーは、ユーザーアカウントの集中管理を提供するために最も一般的に使用されます。たとえば、OpenLDAPでアカウントを作成し、メールサーバー、FTPサーバー、Sambaサーバー、またはその他のサーバーに接続している場合は、サーバーごとに新しいアカウントを作成せずに、アカウントを使用してこれらのサーバーにログインできます。
Ubuntu16.04にOpenLDAPサーバーをインストールする方法
次のコマンドを実行して、Ubuntu16.04パッケージリポジトリからOpenLDAPサーバーとクライアントコマンドラインユーティリティをインストールします。 slapd スタンドアロンLDAPデーモンの略です 。
sudo apt install slapd ldap-utils
LDAPディレクトリの管理者エントリのパスワードを設定するように求められます。
完了すると、slapdが自動的に開始されます。次のコマンドでステータスを確認できます:
systemctl status slapd
デフォルトでは、openldapとして実行されます /etc/default/slapdで定義されているユーザー ファイル。
基本的なインストール後の構成
インストールプロセスでは、構成なしでパッケージがインストールされます。 OpenLDAPサーバーを正しく実行するには、インストール後の基本的な構成を行う必要があります。次のコマンドを実行して、構成ウィザードを開始します。
sudo dpkg-reconfigure slapd
一連の質問に答える必要があります。次のようにこれらの質問に答えてください:
LDAPサーバー構成を省略します:いいえ 。
DNSドメイン名:linuxbabe.comのようにドメイン名を入力します 。ドメイン名に正しいAレコードを設定する必要があります。 directory.linuxbabe.comのようなサブドメインを使用することもできます 。この情報は、ベースDN(識別名)を作成するために使用されます LDAPディレクトリの。
組織名:LinuxBabeのように組織名を入力します。
管理者パスワード:インストール時に設定したものと同じパスワードを入力します。
データベースバックエンド: MDB 。
BDB (Berkeley Database)は遅くて面倒です。これは非推奨であり、将来のOpenLDAPリリースでサポートが終了する予定です。 HDB (階層型データベース)はBDBバックエンドのバリアントであり、非推奨にもなります。
MDB 読み取りはBDBより5〜20倍高速です。書き込みは2〜5倍高速です。また、BDBの1/4のRAMを消費します。そのため、データベースバックエンドとしてMDBを選択します。
slapdがパージされたときにデータベースを削除しますか? いいえ 。
古いデータベースを移動しますか? はい 。
LDAPv2プロトコルを許可しますか? いいえ 。 LDAPの最新バージョンは、1997年に開発されたLDAPv.3です。LDAPv2は廃止されました。
これで、プロセスはあなたの答えに従ってOpenLDAPサービスを再構成します。これで、OpenLDAPサーバーを使用する準備が整いました。
LDAPクライアントの構成
/etc/ldap/ldap.conf すべてのOpenLDAPクライアントの設定ファイルです。このファイルを開きます。
sudo nano /etc/ldap/ldap.conf
ベースDNの2つのパラメータを指定する必要があります およびURI 私たちのOpenLDAPサーバーの。次のテキストをコピーしてファイルの最後に貼り付けます。 your-domainを置き換えます およびcom 必要に応じて。
BASE dc=your-domain,dc=com URI ldap://localhost
最初の行はベースDNを定義します。これは、クライアントプログラムにディレクトリ内の検索を開始する場所を指示します。 OpenLDAPサーバーの設定時にサブドメインを使用した場合は、ここにサブドメインを追加する必要があります
BASE dc=subdomain,dc=your-domain,dc=com
2行目は、OpenLDAPサーバーのURIを定義しています。 LDAPサーバーとクライアントは同じマシン上にあるため、URIをldap://localhostに設定する必要があります 。
OpenLDAPサーバーのテスト
OpenLDAPサーバーが実行され、クライアントの構成が完了したので、次のコマンドを実行してサーバーへのテスト接続を確立します。
ldapsearch -x
出力:
# extended LDIF # # LDAPv3 # base <dc=linuxbabe,dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # linuxbabe.com dn: dc=linuxbabe,dc=com objectClass: top objectClass: dcObject objectClass: organization o: LinuxBabe # admin, linuxbabe.com dn: cn=admin,dc=linuxbabe,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
結果:0成功 OpenLDAPサーバーが機能していることを示します。次の行が表示された場合は、機能していません。
result: 32 No such object
phpLDAPadminのインストール
phpLDAPadminは、OpenLDAPサーバーを管理するためのWebベースのプログラムです。コマンドラインユーティリティを使用してOpenLDAPサーバーを管理できますが、使いやすいインターフェイスが必要な場合は、phpLDAPadminをインストールできます。
次のコマンドを実行して、UbuntuパッケージリポジトリからphpLDAPadminをインストールします。
sudo apt install phpldapadmin
UbuntuサーバーでWebサーバーが実行されていない場合、上記のコマンドはApacheWebサーバーを依存関係としてインストールします。 NginxなどのWebサーバーがすでに存在する場合、Apacheはインストールされません。
Apacheを使用する場合
インストールにより、構成ファイルphpldapadmin.confが配置されます /etc/apache2/conf-enabled/の下 ディレクトリ。インストールが完了すると、
your-server-ip/phpldapadmin
または
your-domain.com/phpldapadmin
HTTPSを有効にするには、Let’sEncryptから発行された無料のTLS証明書を取得してインストールします。
Nginxを使用する場合
Nginxユーザーは、phpLDAPadminのサーバーブロックファイルを手動で作成する必要があります。
sudo nano /etc/nginx/conf.d/phpldapadmin.conf
次のテキストをコピーしてファイルに貼り付けます。 ldap.your-domain.comをご希望のドメイン名に置き換えてください。
server {
listen 80;
server_name ldap.your-domain.com;
root /usr/share/phpldapadmin/htdocs;
index index.php index.html index.htm;
error_log /var/log/nginx/phpldapadmin.error;
access_log /var/log/nginx/phpldapadmin.access;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
} ファイルを保存して閉じます。次に、Nginx構成にテキストを送信します。
sudo nginx -t
テストが成功した場合は、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
これで、ldap.your-domain.comでphpLDAPadminWebインターフェイスにアクセスできます。 。 HTTPSを有効にするには、Let’sEncryptから発行された無料のTLS証明書を取得してインストールします。
phpLDAPadminの設定
コマンドラインクライアントで行ったのと同じように、いくつかの構成を行う必要があります。 phpLDAPadmin設定ファイルは/etc/phpldapadmin/config.phpにあります 。
sudo nano /etc/phpldapadmin/config.php
OpenLDAPとphpLDAPadminは同じマシンで実行されているため、SSL/TLS暗号化なしでデフォルトのLDAPポート389でローカルホストに接続するようにphpLDAPadminを構成します。
行293は、phpLDAPadminがローカルホストに接続することを指定しています。
$servers->setValue('server','host','127.0.0.1'); 行296はデフォルトでコメント化されています。これは、標準ポート389が使用されることを意味します。
// $servers->setValue('server','port',389); 行335はデフォルトでコメント化されています。これは、TLS暗号化が有効になっていないことを意味します。
// $servers->setValue('server','tls',false); 次に、300行目に移動します。
$servers->setValue('server','base',array('dc=example,dc=com')); 次のように変更します:
$servers->setValue('server','base',array()); これにより、phpLDAPadminはOpenLDAPサーバーのベースDNを自動的に検出します。次に、匿名ログインを無効にすることができます。 453行目に移動します。
// $servers->setValue('login','anon_bind',true); デフォルトでは、匿名ログインが有効になっています。これを無効にするには、コメント文字(2つのスラッシュ)を削除し、trueをfalseに変更する必要があります。
$servers->setValue('login','anon_bind',false); これらの警告は煩わしく重要ではないため、テンプレートの警告を無効にすることをお勧めします。 161行目に移動します。
// $config->custom->appearance['hide_template_warning'] = false;
コメント文字を削除し、falseをtrueに変更します。
$config->custom->appearance['hide_template_warning'] = true;
ファイルを保存して閉じます。
phpLDAPadminWebインターフェイスへのアクセス
これで、Webブラウザを使用してphpLDAPadminツールをテストできます。 phpLDAPadminを最初にロードすると、次のようになります。
OpenLDAPサーバーにログインするには、ログインリンクをクリックします。ログインダイアログボックスが表示されます。デフォルトのログインDNはcn=admin,dc=example,dc=comです。 。 dc=exampleを変更する必要があるかもしれません 。私の場合、ログインDNをcn=admin,dc=linuxbabe,dc=comに変更する必要があります 。
パスワードは、OpenLDAPサーバーの設定中に設定した管理者パスワードです。 phpLDAPadminにログインすると、このディレクトリサーバーを管理できます。
それでおしまい!このチュートリアルが、両方のOpenLDAPサーバーのインストールと構成に役立つことを願っています。 およびphpLDAPadmin Ubuntu16.04で。次のチュートリアルでは、OpenLDAPでユーザーログインを認証するようにUbuntuを構成する方法を説明します。