1.OpenLDAPサーバの構築① -インストール

投稿者: | 2017年11月29日

何はともあれ、まずはOpenLDAPサーバ(図のA)を作る。


 

構築環境

リソース 要件 備考
ディストリビューション(OS) CentOS7.4 ※CentOS7系だったら大きな変化は無し
HDD 40G 任意
メモリ 1GB 任意
CPU 1コア1スレッド 任意

※メモリ少なめなのは自宅環境でつくってるため。。。


サーバ周りの環境条件

①インターネットがつながっているととても便利。
ローカルインストールでもできるけど、ちょっと面倒。
②筐体もしくは仮想環境なんでも
クラウドの時代ですので、仮想環境(VMWare、vsphere client、Virtualbox)で十分。
③一旦はrootユーザで作業
後でldapでユーザ追加するときに、インストール時やuseraddコマンドで作成したユーザと競合するので、ひとまずrootユーザで作業。


■yumコマンドでldap関連パッケージのインストール

[root@ldapserver ~]# yum install openldap-servers openldap-clients
                :
                :
perl-macros.x86_64 4:5.16.3-292.el7             perl-parent.noarch 1:0.225-244.el7
perl-podlators.noarch 0:2.5.1-3.el7             perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7
  

完了しました!

openldap-clientsも念のためインストールしておく。「完了しました!」と最後に表示されればOK。
systemctlコマンドで確認すると、まだ有効にはなっていないがldapサービスがインストールされたことが確認できる。(以下の表示になる) ちなみにサービスの名前は「slapd」。

[root@ldapserver ~]# systemctl status slapd
 slapd.service - OpenOpenLDAPサーバ Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
                :

インターネット環境になく、CentOSインストールメディアからパッケージをインストールする場合はリポジトリファイルを編集してyumコマンドを使うとよい。

①OSインストールメディアをマウントする。

[root@ldapserver ~]# mount /dev/cdrom /media
mount: /dev/sr0 is write-protected, mounting read-only

/dev/cdromはCentOS7のメディアを扱うデバイス。/mediaはCentOSインストールの時に自動で生成されるディレクトリ。なんでもいいが一旦は/mediaを使用する。
「mount: /dev/sr0 is write-protected, mounting read-only」と出ればOK。

②リポジトリファイルを編集する。

[root@ldapserver ~]# vi /etc/yum.repos.d/CentOS-Media.repo

<変更前(OSインストール直後の場合)>
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

<変更後>
[centos-media]
name=centos-media
baseurl=file:///media        ―>  ①でマウント先に指定した「/media」がここにくる。
gpgcheck=0
enabled=1

③disablerepo,enablerepoオプションを使用してyumコマンドを実行する。

[root@ldapserver ~]# yum --disablerepo=* --enablerepo=centos-media install openldap-servers openldap-clients

/etc/yum.repos.d/CentOS-Media.repoにコメントアウトされた記述がいっぱいあるが、気にするのは上記の部分だけでよい。

openldap-clientsも念のためインストールしておく。「完了しました!」と最後に表示されればOK。
yumコマンドでインストールする場合と同様に、systemctlコマンドでインストールされたことを確認してみる。

[root@ldapserver ~]# systemctl status slapd
 slapd.service - OpenOpenLDAPサーバ Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
                :

■firewalldサービスでldapプロトコルの解放

systemctlコマンドで見ると、firewalldサービスはOSインストール直後、自動で起動されていることがわかる。セキュリティに心配なければfirewalld自体を無効にするのもありだが、ここはプロトコルを狙い撃ちで許可する。

[root@ldapserver ~]# systemctl status firewalld
 firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 土 2017-12-02 13:37:17 JST; 7h ago
     Docs: man:firewalld(1)
 Main PID: 695 (firewalld)
   CGroup: /system.slice/firewalld.service
           mq695 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
                  :

※「Active」の表示が出ればOK。もしActiveでない場合は、
systemctl start firewalld で起動、
systemctl enable firewalld でOS再起動後も自動起動を有効化しておくこと。

[root@ldapserver ~]# firewall-cmd --list-all    ->  現状の設定を確認。
  public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@ldapserver ~]# firewall-cmd --add-service=ldap --permanent
success
[root@ldapserver ~]# firewall-cmd --reload
success
[root@ldapserver ~]# firewall-cmd --list-all    ->  設定後の状態確認。
  public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: ssh dhcpv6-client ldap    ->  「ldap」が追加されていればOK
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

firewall-cmdの–permanentは恒久設定(firewalldサービスやOS再起動後も、設定が消えない)
firewall-cmd –reloadは設定反映のため必須。


■slapdサービスの起動・有効化

firewalldの設定が終わったら、slapd起動とOS再起動後の自動起動有効化を設定する。

[root@ldapserver ~]# systemctl start slapd
[root@ldapserver ~]# systemctl enable slapd
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
[root@ldapserver ~]# systemctl status slapd
 slapd.service - OpenOpenLDAPサーバ Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2017-12-03 11:43:02 JST; 13s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
 Main PID: 9071 (slapd)
   CGroup: /system.slice/slapd.service
           mq9071 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

firewallコマンドのstartはサービス起動、enableは自動起動の有効化。

これでインストール作業は完了!

1.OpenLDAPサーバの構築① -インストール」への3件のフィードバック

  1. みうき

    丁寧で良いですね!「こやったら動く」という記事は多いですが、それぞれの意味を説明する記事が少なく、知りたい欲求が溜まる一方でしたので、ここの記事は良いです。

    返信
    1. タン 投稿作成者

      みうきさん

      身に余るコメント、ありがとうございますm(_ _)m
      わたしも意味、意義などとても知りたく、自分が知りたいと思うことは他の人も知りたいのではないかと思い、書き留めてみました!

      返信
  2. たろー

    もう2020年ですが、この一連の記事を参照してOpenLDAPサーバを問題なく構築できました!
    いろんな記事を当たっていましたがなかなかうまくいかず非常に困っていました。本当に助かりました。
    ありがとうございました。

    環境は以下です。参考まで。
    “`
    $ cat /etc/redhat-release
    CentOS Linux release 7.7.1908 (Core)
    “`

    返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA