OpenLDAPサーバーのインストール
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[CentOS7]]
*OpenLDAPサーバーのインストール [#vf91ec98]
各サーバー間でユーザーのアカウント情報を共有できるように ...
**OpenLDAP をインストールします。 [#bab260fa]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum -y install openldap-servers open...
|[root@localhost ~]# cp /usr/share/openldap-servers/DB_CO...
|[root@localhost ~]# chown ldap. /var/lib/ldap/DB_CONFIG|
|[root@localhost ~]# systemctl start slapd|
|[root@localhost ~]# systemctl enable slapd|
**OpenLDAP の管理者パスワードを設定します。 [#yd0f1bc6]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# slappasswd &color(lightpink){←管理者...
|New password: &br; Re-enter new password: &br; {SSHA}xxx...
|[root@localhost ~]# vi chrootpw.ldif|
|&color(lightpink){# olcRootPW に生成した管理者パスワード...
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
**基本的なスキーマを読み込んでおきます。 [#kff9ed0b]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
**自身のドメイン名を設定します。 [#pac8cf53]
|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# ディレクトリマネージャーのパスワード...
|[root@localhost ~]# slappasswd|
|New password: &br; Re-enter new password: &br; {SSHA}xxx...
|[root@localhost ~]# vi chdomain.ldif|
|&color(lightpink){# dc=***,dc=*** は自身のドメイン名に置...
|dn: olcDatabase={1}monitor,cn=config &br; changetype: mo...
|[root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// ...
|SASL/EXTERNAL authentication started &br; SASL username:...
|[root@localhost ~]# vi basedomain.ldif|
|&color(lightpink){# dc=***,dc=*** は自身のドメイン名に置...
|[root@localhost ~]# ldapadd -x -D cn=Manager,dc=hoge,dc=...
|Enter LDAP Password: &color(lightpink){# ディレクトリマ...
**Firewalld を有効にしている場合は、LDAPサービスの許可が...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# firewall-cmd --add-service=ldap --pe...
|success|
|[root@localhost ~]# firewall-cmd --reload|
|success|
-----
*OpenLDAP ユーザーアカウントを追加する [#k632bec0]
''LDAP'' サーバーにユーザーアカウントを追加します。
**ユーザーを個別に追加します [#la8090f3]
|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# パスワード生成};|
|[root@localhost ~]# slappasswd|
|New password: &br; Re-enter new password: &br; {SSHA}xxx...
|[root@localhost ~]# vi ldapuser.ldif|
|&color(lightpink){# 新規作成}; &br; &color(lightpink){# ...
|dn: uid=cent,ou=People,dc=hoge,dc=com &br; objectClass: ...
|[root@localhost ~]# ldapadd -x -D cn=Manager,dc=hoge,dc=...
|Enter LDAP Password: &br; adding new entry "uid=cent,ou=...
**ローカル ''passwd/group'' に登録されているユーザー/グル...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi ldapuser.sh|
|&color(lightpink){# ローカルの ''UID'' 番号が ''1000-999...
#!/bin/bash
SUFFIX='dc=hoge,dc=com'
LDIF='ldapuser.ldif'
echo -n > $LDIF
GROUP_IDS=()
grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd | (while read...
do
USER_ID="$(echo "$TARGET_USER" | cut -d':' -f1)"
USER_NAME="$(echo "$TARGET_USER" | cut -d':' -f5 | c...
[ ! "$USER_NAME" ] && USER_NAME="$USER_ID"
LDAP_SN="$(echo "$USER_NAME" | cut -d' ' -f2)"
[ ! "$LDAP_SN" ] && LDAP_SN="$USER_NAME"
LASTCHANGE_FLAG="$(grep "${USER_ID}:" /etc/shadow | ...
[ ! "$LASTCHANGE_FLAG" ] && LASTCHANGE_FLAG="0"
SHADOW_FLAG="$(grep "${USER_ID}:" /etc/shadow | cut ...
[ ! "$SHADOW_FLAG" ] && SHADOW_FLAG="0"
GROUP_ID="$(echo "$TARGET_USER" | cut -d':' -f4)"
[ ! "$(echo "${GROUP_IDS[@]}" | grep "$GROUP_ID")" ]...
echo "dn: uid=$USER_ID,ou=People,$SUFFIX" >> $LDIF
echo "objectClass: inetOrgPerson" >> $LDIF
echo "objectClass: posixAccount" >> $LDIF
echo "objectClass: shadowAccount" >> $LDIF
echo "sn: $LDAP_SN" >> $LDIF
echo "givenName: $(echo "$USER_NAME" | awk '{print $...
echo "cn: $USER_NAME" >> $LDIF
echo "displayName: $USER_NAME" >> $LDIF
echo "uidNumber: $(echo "$TARGET_USER" | cut -d':' -...
echo "gidNumber: $(echo "$TARGET_USER" | cut -d':' -...
echo "userPassword: {crypt}$(grep "${USER_ID}:" /etc...
echo "gecos: $USER_NAME" >> $LDIF
echo "loginShell: $(echo "$TARGET_USER" | cut -d':' ...
echo "homeDirectory: $(echo "$TARGET_USER" | cut -d'...
echo "shadowExpire: $(passwd -S "$USER_ID" | awk '{p...
echo "shadowFlag: $SHADOW_FLAG" >> $LDIF
echo "shadowWarning: $(passwd -S "$USER_ID" | awk '{...
echo "shadowMin: $(passwd -S "$USER_ID" | awk '{prin...
echo "shadowMax: $(passwd -S "$USER_ID" | awk '{prin...
echo "shadowLastChange: $LASTCHANGE_FLAG" >> $LDIF
echo >> $LDIF
done
for TARGET_GROUP_ID in "${GROUP_IDS[@]}"
do
LDAP_CN="$(grep ":${TARGET_GROUP_ID}:" /etc/group | ...
echo "dn: cn=$LDAP_CN,ou=Group,$SUFFIX" >> $LDIF
echo "objectClass: posixGroup" >> $LDIF
echo "cn: $LDAP_CN" >> $LDIF
echo "gidNumber: $TARGET_GROUP_ID" >> $LDIF
for MEMBER_UID in $(grep ":${TARGET_GROUP_ID}:" /etc...
do
UID_NUM=$(echo "$MEMBER_UID" | cut -d':' -f2)
[ $UID_NUM -ge 1000 -a $UID_NUM -le 9999 ] && ec...
done
echo >> $LDIF
done
)
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# sh ldapuser.sh|
|[root@localhost ~]# ldapadd -x -D cn=Manager,dc=hoge,dc=...
|Enter LDAP Password: &br; adding new entry "uid=cent,ou=...
**登録したユーザーとグループを削除する場合は以下のように...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# ldapdelete -x -W -D 'cn=Manager,dc=h...
|Enter LDAP Password:|
|[root@localhost ~]# ldapdelete -x -W -D 'cn=Manager,dc=h...
|Enter LDAP Password:|
-----
*OpenLDAP LDAPクライアントの設定 [#z890674f]
LDAP サーバーのユーザーアカウント情報を共有できるように L...
**OpenLDAP クライアントをインストールして設定します。 [#x...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum -y install openldap-clients nss-...
|&color(lightpink){# ldapserver=(自身のLDAPサーバーのホス...
|[root@localhost ~]# authconfig --enableldap --enableldap...
|[root@localhost ~]# exit|
|logout &br; &br; CentOS Linux 7 (Core) &br; Kernel 3.10...
|[redhat@localhost ~]$ &color(lightpink){# ログインできた...
|[redhat@localhost ~]$ passwd &color(lightpink){# パスワ...
|Changing password for user redhat. &br; Enter login(LDAP...
**SELinux を有効にしている場合、ホームディレクトリがない...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi mkhomedir.te|
|&color(lightpink){# 以下の内容で新規作成};|
module mkhomedir 1.0;
require {
type unconfined_t;
type oddjob_mkhomedir_exec_t;
class file entrypoint;
}
#============= unconfined_t ==============
allow unconfined_t oddjob_mkhomedir_exec_t:file entrypoi...
|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# 中間ファイル生成};|
|[root@localhost ~]# checkmodule -m -M -o mkhomedir.mod m...
|checkmodule: loading policy configuration from mkhomedir...
|[root@localhost ~]# semodule_package --outfile mkhomedir...
|&color(lightpink){# モジュールインストール};|
|[root@localhost ~]# semodule -i mkhomedir.pp|
-----
*OpenLDAP LDAP over SSL/TLS [#a7ba3fab]
LDAP over TLS を設定し、LDAP サーバーとクライアント間の通...
**まずは SSL 証明書を作成しておきます。 [#n57906e4]
**LDAP サーバーの設定です。 [#o4fa2d78]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# cp /etc/pki/tls/certs/server.key /et...
|[root@localhost ~]# chown ldap. /etc/openldap/certs/serv...
|[root@localhost ~]# vi mod_ssl.ldif|
|&color(lightpink){# 新規作成};|
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/openldap/certs/ca-bundle.crt
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/server.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/server.key
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// ...
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=ex...
SASL SSF: 0
modifying entry "cn=config"
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/sysconfig/slapd|
|&color(lightpink){# 9行目:追記}; &br; SLAPD_URLS="ldap...
|[root@localhost ~]# systemctl restart slapd|
**LDAP クライアントの設定です [#ncc6f3eb]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# echo "TLS_REQCERT allow" >> /etc/ope...
|[root@localhost ~]# echo "tls_reqcert allow" >> /etc/nsl...
|[root@localhost ~]# authconfig --enableldaptls --update|
|getsebool: SELinux is disabled|
|[root@localhost ~]# exit|
|logout &br; &br; CentOS Linux 7 (Core) &br; Kernel 3.10...
|[redhat@localhost ~]$ &color(lightpink){# ログインできた...
終了行:
[[CentOS7]]
*OpenLDAPサーバーのインストール [#vf91ec98]
各サーバー間でユーザーのアカウント情報を共有できるように ...
**OpenLDAP をインストールします。 [#bab260fa]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum -y install openldap-servers open...
|[root@localhost ~]# cp /usr/share/openldap-servers/DB_CO...
|[root@localhost ~]# chown ldap. /var/lib/ldap/DB_CONFIG|
|[root@localhost ~]# systemctl start slapd|
|[root@localhost ~]# systemctl enable slapd|
**OpenLDAP の管理者パスワードを設定します。 [#yd0f1bc6]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# slappasswd &color(lightpink){←管理者...
|New password: &br; Re-enter new password: &br; {SSHA}xxx...
|[root@localhost ~]# vi chrootpw.ldif|
|&color(lightpink){# olcRootPW に生成した管理者パスワード...
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
**基本的なスキーマを読み込んでおきます。 [#kff9ed0b]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
|[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ...
|SASL/EXTERNAL authentication started &br; SASL username:...
**自身のドメイン名を設定します。 [#pac8cf53]
|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# ディレクトリマネージャーのパスワード...
|[root@localhost ~]# slappasswd|
|New password: &br; Re-enter new password: &br; {SSHA}xxx...
|[root@localhost ~]# vi chdomain.ldif|
|&color(lightpink){# dc=***,dc=*** は自身のドメイン名に置...
|dn: olcDatabase={1}monitor,cn=config &br; changetype: mo...
|[root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// ...
|SASL/EXTERNAL authentication started &br; SASL username:...
|[root@localhost ~]# vi basedomain.ldif|
|&color(lightpink){# dc=***,dc=*** は自身のドメイン名に置...
|[root@localhost ~]# ldapadd -x -D cn=Manager,dc=hoge,dc=...
|Enter LDAP Password: &color(lightpink){# ディレクトリマ...
**Firewalld を有効にしている場合は、LDAPサービスの許可が...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# firewall-cmd --add-service=ldap --pe...
|success|
|[root@localhost ~]# firewall-cmd --reload|
|success|
-----
*OpenLDAP ユーザーアカウントを追加する [#k632bec0]
''LDAP'' サーバーにユーザーアカウントを追加します。
**ユーザーを個別に追加します [#la8090f3]
|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# パスワード生成};|
|[root@localhost ~]# slappasswd|
|New password: &br; Re-enter new password: &br; {SSHA}xxx...
|[root@localhost ~]# vi ldapuser.ldif|
|&color(lightpink){# 新規作成}; &br; &color(lightpink){# ...
|dn: uid=cent,ou=People,dc=hoge,dc=com &br; objectClass: ...
|[root@localhost ~]# ldapadd -x -D cn=Manager,dc=hoge,dc=...
|Enter LDAP Password: &br; adding new entry "uid=cent,ou=...
**ローカル ''passwd/group'' に登録されているユーザー/グル...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi ldapuser.sh|
|&color(lightpink){# ローカルの ''UID'' 番号が ''1000-999...
#!/bin/bash
SUFFIX='dc=hoge,dc=com'
LDIF='ldapuser.ldif'
echo -n > $LDIF
GROUP_IDS=()
grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd | (while read...
do
USER_ID="$(echo "$TARGET_USER" | cut -d':' -f1)"
USER_NAME="$(echo "$TARGET_USER" | cut -d':' -f5 | c...
[ ! "$USER_NAME" ] && USER_NAME="$USER_ID"
LDAP_SN="$(echo "$USER_NAME" | cut -d' ' -f2)"
[ ! "$LDAP_SN" ] && LDAP_SN="$USER_NAME"
LASTCHANGE_FLAG="$(grep "${USER_ID}:" /etc/shadow | ...
[ ! "$LASTCHANGE_FLAG" ] && LASTCHANGE_FLAG="0"
SHADOW_FLAG="$(grep "${USER_ID}:" /etc/shadow | cut ...
[ ! "$SHADOW_FLAG" ] && SHADOW_FLAG="0"
GROUP_ID="$(echo "$TARGET_USER" | cut -d':' -f4)"
[ ! "$(echo "${GROUP_IDS[@]}" | grep "$GROUP_ID")" ]...
echo "dn: uid=$USER_ID,ou=People,$SUFFIX" >> $LDIF
echo "objectClass: inetOrgPerson" >> $LDIF
echo "objectClass: posixAccount" >> $LDIF
echo "objectClass: shadowAccount" >> $LDIF
echo "sn: $LDAP_SN" >> $LDIF
echo "givenName: $(echo "$USER_NAME" | awk '{print $...
echo "cn: $USER_NAME" >> $LDIF
echo "displayName: $USER_NAME" >> $LDIF
echo "uidNumber: $(echo "$TARGET_USER" | cut -d':' -...
echo "gidNumber: $(echo "$TARGET_USER" | cut -d':' -...
echo "userPassword: {crypt}$(grep "${USER_ID}:" /etc...
echo "gecos: $USER_NAME" >> $LDIF
echo "loginShell: $(echo "$TARGET_USER" | cut -d':' ...
echo "homeDirectory: $(echo "$TARGET_USER" | cut -d'...
echo "shadowExpire: $(passwd -S "$USER_ID" | awk '{p...
echo "shadowFlag: $SHADOW_FLAG" >> $LDIF
echo "shadowWarning: $(passwd -S "$USER_ID" | awk '{...
echo "shadowMin: $(passwd -S "$USER_ID" | awk '{prin...
echo "shadowMax: $(passwd -S "$USER_ID" | awk '{prin...
echo "shadowLastChange: $LASTCHANGE_FLAG" >> $LDIF
echo >> $LDIF
done
for TARGET_GROUP_ID in "${GROUP_IDS[@]}"
do
LDAP_CN="$(grep ":${TARGET_GROUP_ID}:" /etc/group | ...
echo "dn: cn=$LDAP_CN,ou=Group,$SUFFIX" >> $LDIF
echo "objectClass: posixGroup" >> $LDIF
echo "cn: $LDAP_CN" >> $LDIF
echo "gidNumber: $TARGET_GROUP_ID" >> $LDIF
for MEMBER_UID in $(grep ":${TARGET_GROUP_ID}:" /etc...
do
UID_NUM=$(echo "$MEMBER_UID" | cut -d':' -f2)
[ $UID_NUM -ge 1000 -a $UID_NUM -le 9999 ] && ec...
done
echo >> $LDIF
done
)
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# sh ldapuser.sh|
|[root@localhost ~]# ldapadd -x -D cn=Manager,dc=hoge,dc=...
|Enter LDAP Password: &br; adding new entry "uid=cent,ou=...
**登録したユーザーとグループを削除する場合は以下のように...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# ldapdelete -x -W -D 'cn=Manager,dc=h...
|Enter LDAP Password:|
|[root@localhost ~]# ldapdelete -x -W -D 'cn=Manager,dc=h...
|Enter LDAP Password:|
-----
*OpenLDAP LDAPクライアントの設定 [#z890674f]
LDAP サーバーのユーザーアカウント情報を共有できるように L...
**OpenLDAP クライアントをインストールして設定します。 [#x...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum -y install openldap-clients nss-...
|&color(lightpink){# ldapserver=(自身のLDAPサーバーのホス...
|[root@localhost ~]# authconfig --enableldap --enableldap...
|[root@localhost ~]# exit|
|logout &br; &br; CentOS Linux 7 (Core) &br; Kernel 3.10...
|[redhat@localhost ~]$ &color(lightpink){# ログインできた...
|[redhat@localhost ~]$ passwd &color(lightpink){# パスワ...
|Changing password for user redhat. &br; Enter login(LDAP...
**SELinux を有効にしている場合、ホームディレクトリがない...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi mkhomedir.te|
|&color(lightpink){# 以下の内容で新規作成};|
module mkhomedir 1.0;
require {
type unconfined_t;
type oddjob_mkhomedir_exec_t;
class file entrypoint;
}
#============= unconfined_t ==============
allow unconfined_t oddjob_mkhomedir_exec_t:file entrypoi...
|BGCOLOR(black):COLOR(white):|c
|&color(lightpink){# 中間ファイル生成};|
|[root@localhost ~]# checkmodule -m -M -o mkhomedir.mod m...
|checkmodule: loading policy configuration from mkhomedir...
|[root@localhost ~]# semodule_package --outfile mkhomedir...
|&color(lightpink){# モジュールインストール};|
|[root@localhost ~]# semodule -i mkhomedir.pp|
-----
*OpenLDAP LDAP over SSL/TLS [#a7ba3fab]
LDAP over TLS を設定し、LDAP サーバーとクライアント間の通...
**まずは SSL 証明書を作成しておきます。 [#n57906e4]
**LDAP サーバーの設定です。 [#o4fa2d78]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# cp /etc/pki/tls/certs/server.key /et...
|[root@localhost ~]# chown ldap. /etc/openldap/certs/serv...
|[root@localhost ~]# vi mod_ssl.ldif|
|&color(lightpink){# 新規作成};|
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/openldap/certs/ca-bundle.crt
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/server.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/server.key
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// ...
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=ex...
SASL SSF: 0
modifying entry "cn=config"
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/sysconfig/slapd|
|&color(lightpink){# 9行目:追記}; &br; SLAPD_URLS="ldap...
|[root@localhost ~]# systemctl restart slapd|
**LDAP クライアントの設定です [#ncc6f3eb]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# echo "TLS_REQCERT allow" >> /etc/ope...
|[root@localhost ~]# echo "tls_reqcert allow" >> /etc/nsl...
|[root@localhost ~]# authconfig --enableldaptls --update|
|getsebool: SELinux is disabled|
|[root@localhost ~]# exit|
|logout &br; &br; CentOS Linux 7 (Core) &br; Kernel 3.10...
|[redhat@localhost ~]$ &color(lightpink){# ログインできた...
ページ名: