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