何はともあれ、まずは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は自動起動の有効化。
これでインストール作業は完了!
丁寧で良いですね!「こやったら動く」という記事は多いですが、それぞれの意味を説明する記事が少なく、知りたい欲求が溜まる一方でしたので、ここの記事は良いです。
みうきさん
身に余るコメント、ありがとうございますm(_ _)m
わたしも意味、意義などとても知りたく、自分が知りたいと思うことは他の人も知りたいのではないかと思い、書き留めてみました!
もう2020年ですが、この一連の記事を参照してOpenLDAPサーバを問題なく構築できました!
いろんな記事を当たっていましたがなかなかうまくいかず非常に困っていました。本当に助かりました。
ありがとうございました。
環境は以下です。参考まで。
“`
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
“`