#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`

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS