- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-04-08T09:19:02+09:00","default:dramsukohome","dramsukohome")
[[Linux]]
#shadowheader(1,openladap);
#contents
* 参考 [#f1183791]
- [[CentOS6 OpenLDAPの設定(UnixPower on Networking):http://www.unix-power.net/linux/openldap.html]]
- [[Apache Directory Studioの導入(UnixPower on Networking):http://www.unix-power.net/linux/ads.html]]
* Server [#wa76f6e4]
** Install (以下 su - 権限) [#c01498a3]
yum install openldap openldap-servers openldap-clients
** パスワードの準備 [#b9ca83bd]
- slappasswd
-- New password:[パスワード入力]
-- Re-enter new password:[パスワード入力]
-- {SSHA}3pVTGxVxrS7tFJXrp+sAA6EdSgO8y1NE
- vi /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif
-- 下記を変更
olcRootPW: {SSHA}3pVTGxVxrS7tFJXrp+sAA6EdSgO8y1NE
** DB 環境構築 [#ld0db918]
- バークレーDB、設定ファイルのコピー
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
** Service の起動 [#cb43c135]
/etc/init.d/slapd start
** loglevel の設定 [#r83fdd34]
- [[参考:http://www.unix-power.net/linux/openldap.html]]
vi /etc/sysconfig/ldap
# Options of slapd (see man slapd)
SLAPD_OPTIONS="-l local4 -s 512"
** LDAP の基本設定 [#kd549020]
-ldapsearch -x -LLL -b 'olcDatabase={2}bdb,cn=config' -D cn=config -W
--''Enter LDAP Password: ''[上記で設定したディレクトリパスワードを入力]
--
--dn: olcDatabase={2}bdb,cn=config
--objectClass: olcDatabaseConfig
--objectClass: olcBdbConfig
--olcDatabase: {2}bdb
--olcDbDirectory: /var/lib/ldap
--''olcSuffix: dc=my-domain,dc=com''
--olcAddContentAcl: FALSE
--olcLastMod: TRUE
--olcMaxDerefDepth: 15
--olcReadOnly: FALSE
--''olcRootDN: cn=Manager,dc=my-domain,dc=net''
** データ用ディレクトリの管理情報の変更 [#j78bdf68]
- LDIF ファイルを準備し適用する方法
-- vi bdb-init.ldif -W
--- # 設定を行うDNを指定
--- dn: olcDatabase={2}bdb,cn=config
--- # このLDIFファイルで修正を行うことを宣言します
--- changetype: modify
--- # olcRootDNを書き換えることを指定し値を指定する
--- replace: olcRootDN
--- olcRootDN: cn=Manager,dc=unix-power,dc=net
--- -
--- # olcSuffixを書き換えることを指定し値を指定する
--- replace: olcSuffix
--- olcSuffix: dc=unix-power,dc=net
--- -
--- # olcRootPWを追加することを指定し値を指定する
--- add: olcRootPW
--- olcRootPW: {SSHA}en/K3sLikQDCWk/lMmWLNh8svNQ+ggf0
- GUI ツール、Apache Directory Studio
-- これ、すごく便利です。
--- [[Apache Directory Studio:http://directory.apache.org/studio/]]
** 初期データの登録(以下は CUI) [#m8b4017b]
- vi init.ldif
dn: dc=unix-power,dc=net
objectclass: dcObject
objectclass: organization
o: VIRTUAL CORPORATION
dc: unix-power
dn: cn=Manager,dc=unix-power,dc=net
objectclass: organizationalRole
cn: Manager
- 登録は ldapadd コマンド
ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f init.ldif
- vi add.ldif
dn: ou=Users,dc=unix-power,dc=net
objectclass: organizationalUnit
ou: Users
dn: ou=Groups,dc=unix-power,dc=net
objectclass: organizationalUnit
ou: Groups
dn: ou=Computers,dc=unix-power,dc=net
objectclass: organizationalUnit
ou: Computers
# ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f add.ldif
Enter LDAP Password:
adding new entry "ou=Users,dc=unix-power,dc=net"
adding new entry "ou=Groups,dc=unix-power,dc=net"
adding new entry "ou=Computers,dc=unix-power,dc=net
- vi groupadd.ldif
dn: cn=develop,ou=Groups,dc=unix-power,dc=net
objectClass: posixGroup
cn: develop
gidNumber: 1000
dn: cn=sales,ou=Groups,dc=unix-power,dc=net
objectClass: posixGroup
cn: sales
gidNumber: 1001
dn: cn=market,ou=Groups,dc=unix-power,dc=net
objectClass: posixGroup
cn: market
gidNumber: 1002
# ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f groupadd.ldif
Enter LDAP Password:
adding new entry "cn=develop,ou=Groups,dc=unix-power,dc=net"
adding new entry "cn=sales,ou=Groups,dc=unix-power,dc=net"
adding new entry "cn=market,ou=Groups,dc=unix-power,dc=net"
- vi useradd.ldif
dn: uid=takeda,ou=Users,dc=unix-power,dc=net
objectclass: posixAccount
objectclass: inetOrgPerson
sn: takeda
cn: kazuma
displayName: Takeda Kazuma
uid: takeda
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/takeda
loginShell: /bin/bash
userPassword: {CRYPT}B5fKzlwfatuy2
mail: takeda@unix-power.net
dn: uid=suzuki,ou=Users,dc=unix-power,dc=net
objectclass: posixAccount
objectclass: inetOrgPerson
sn: suzuki
cn: hajime
displayName: Suzuki Hajime
uid: suzuki
uidNumber: 1001
gidNumber: 1000
homeDirectory: /home/suzuki
loginShell: /bin/bash
userPassword: {CRYPT}B5fKzlwfatuy2
mail: suzuki@unix-power.net
dn: uid=tanaka,ou=Users,dc=unix-power,dc=net
objectclass: posixAccount
objectclass: inetOrgPerson
sn: tanaka
cn: takuya
displayName: Tanaka Takuya
uid: tanaka
uidNumber: 1002
gidNumber: 1000
homeDirectory: /home/tanaka
loginShell: /bin/bash
userPassword: {CRYPT}B5fKzlwfatuy2
mail: tanaka@unix-power.net
# ldapadd -x -W -D "cn=Manager,dc=unix-power,dc=net" -f useradd.ldif
Enter LDAP Password:
adding new entry "uid=takeda,ou=Users,dc=unix-power,dc=net"
adding new entry "uid=suzuki,ou=Users,dc=unix-power,dc=net"
adding new entry "uid=tanaka,ou=Users,dc=unix-power,dc=net"
* Client [#fed74a6e]
** common [#qf0987cb]
- ldap に loginshell を設定
** Redhat系 [#b9d5ae44]
+sudo yum install openldap-clients nss-pam-ldapd
+sudo authconfig-tui
-- ユーザー情報
ユーザー情報 認証 │
[ ] キャッシュ情報 [ ] MD5 パスワードを使用 │
[*] LDAP を使用 [*] シャドウパスワードを使用 │
[ ] NIS を使用 [*] LDAP 認証を使用 │
[ ] IPAv2 の使用 [ ] Kerberos 5 を使用 │
[ ] Winbind を使用 [ ] 指紋読み取りを使用 │
[ ] Winbind 認証を使用 │
[*] ローカル認証は十分です
-- [ ] TLS を使用
--- サーバー: ''ldap://123.456.789.012/''
--- ベース DN: ''dc=tar3,dc=net''
- sudo vi /etc/pam.d/system-auth (もし中身にsssがあれば)
#auth sufficient pam_sss.so use_first_pass
auth sufficient pam_ldap.so use_first_pass
#account [default=bad success=ok user_unknown=ignore] pam_sss.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
#password sufficient pam_sss.so use_authtok
password sufficient pam_ldap.so use_authtok
#session optional pam_sss.so
session optional pam_ldap.so
- sudo vi /etc/pam.d/password-auth (もし中身にsssがあれば)
#auth sufficient pam_sss.so use_first_pass
auth sufficient pam_ldap.so use_first_pass
#account [default=bad success=ok user_unknown=ignore] pam_sss.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
#password sufficient pam_sss.so use_authtok
password sufficient pam_ldap.so use_authtok
#session optional pam_sss.so
session optional pam_ldap.so
- sudo vi /etc/nsswitch.conf
#passwd: files sss
passwd: files ldap
#shadow: files sss
shadow: files ldap
#group: files sss
group: files ldap
#services: files sss
services: files ldap
#netgroup: files sss
netgroup: files ldap
#automount: files sss
automount: files ldap
- sudo vi /etc/pam.d/sshd
session required pam_mkhomedir.so skel=/etc/skel/ umask=0007
- service の restart
sudo service nslcd restart
- 確認
getent passwd
** Debian系 [#l7ae19bd]
+sudo apt-get install libpam-ldap libnss-ldap nss-updatedb libnss-db
--- 失敗した時の再設定
sudo dpkg-reconfigure ldap-auth-config
++ Should debconf manage LDAP configuration?
<はい>
++ LDAP server Uniform Resource Identifier:
ldap://123.456.789.012/
++ Distinguished name of the search base:
dc=tar3,dc=net
++ LDAP version to use:
3
++ Make local root Database admin:
<はい>
++ Does the LDAP database require login?
<いいえ>
++ LDAP account for root:
cn=Manager,dc=tar3,dc=net
++ LDAP root account password:
[LDAP root account password]
++ The meanings for selections are:
<了解>
++ Local crypt to use when changing passwords:
exop
+ sudo vi /etc/pam.d/sshd
# Create home directory automatically.
session required pam_mkhomedir.so skel=/etc/skel/ umask=0007
+ sudo vi /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap
netgroup: ldap
+ 確認
getent passwd
+ sudo 時、password を2回聞かれる問題
sudo vi /etc/pam.d/common-auth
++ before
auth [success=1 default=ignore] pam_ldap.so use_first_pass
++ after
auth [success=1 default=ignore] pam_ldap.so try_first_pass
+ x ログイン時にユーザー名が表示されない~
--ctrl + alt + F1 を押してコンソールへ。一度、ldap ユーザーでログインする。
* ApacheDirectoryStudio [#oa1da4d3]
**setButton(GtkWidget*): アサーション `!_button._widget' に失敗しました。 [#u2b48527]
-参考:[[https://bugs.launchpad.net/ubuntu/+source/gtk2-engines-oxygen/+bug/1242801]]
-以下の箇所を変更
sudo vi /usr/share/themes/oxygen-gtk/gtk-2.0/gtkrc
--`GtkComboBox::appears-as-list = 1`
-- -> `GtkComboBox::appears-as-list = 0`