Top / :検証 / LDAP

予定


実機確認

基本構成を組む

  • 実機のコンフィグでslapdを起動する。まずは片系のみ。
  • 検索
    • slapcatでデータが確認できること。OK
    • ldapsearchでデータが確認できること。設定データなどは見えないこと。OK

基本機能を確認する

  • 追加・変更・削除
    • 要素追加ができること。OK
    • 要素変更ができること。OK
    • 要素削除ができること。OK
    • データ(エントリごと)追加ができること。OK
    • データ(エントリごと)削除ができること。OK
  • 権限
    • 権限のないdnでは検索できないこと。OK
    • 権限のないdnでは追加できないこと。OK
    • 権限のないdnでは変更できないこと。OK
    • 権限のないdnでは削除できないこと。OK
  • ログイン認証
    • そのLDAPを利用して、ログイン認証できるようにする。OK
      • 正しく設定できていればgetent passwd(各種キーワード)でLDAPから情報が取得できるはず。OK
      • nas0(端末)から、srv0(LDAPサーバ自身)へsshログインする。OK
      • nas0(端末)から、srv1(LDAPサーバでない)へsshログインする。OK
  • 二重化
    • srv0をプロバイダ、srv1をコンシューマに設定し、同期されることを確認する。OK
      • srv0で追加したデータが、コンシューマにコピーされる事を確認する。OK
      • srv1で追加しようとするとエラーになる事を確認する。OK
    • プロバイダとの同期不可(通信障害)の状態で確認する。
      • やはりsrv1でデータ追加しようとしてもエラーになることを確認する。OK
      • この状態でLDAPユーザに対してpasswdコマンドを投入したらどうなるか。齟齬が出るのか。OK
      • srv0で追加したデータが、通信回復後にコンシューマにコピーされることを確認する。
    • プロバイダとの同期不可(プロセス障害)の状態で確認する。
      • srv1でデータ追加しようとしてもエラーになることを確認する。OK
      • srv0のプロセス再起動後に、再同期されるか確認する。OK
    • nsswitch.confの挙動を確認する。
      • LDAP優先設定時、プロバイダとの通信が出来ない状態でログイン認証すると、タイムアウトしてコンシューマとの認証に移るのか。OK(即時に次のLDAPサーバに振り返られた。プロセス刺さったときのタイムアウト時間だと思われる)
      • files優先設定時、LDAPサーバに無用な問い合わせをしない挙動か確認。OK

メモ

  • /etc/nsswitch.confはfiles ldapの順で正しい。逆順だとrootのときにlsするだけでLDAP検索が走ってしまう。両方に問い合わせてしまって問題なのは、ローカルとLDAPの両方に同名ユーザがいる場合。これをしなければよい。
  • 二重化しても何もなければ何の問い合わせも飛ばない。
  • /etc/ldap.confと/etc/openldap.confの違いに注意すること。pamやnsは/etc/ldap.confを見ている。ldap系コマンドだけが/etc/openldap/ldap.confを見る。

拡張機能を確認する

TLS暗号化通信を確認する

  • サーバ証明書を作成する。
    • オレオレ証明書の作成。
    • 証明書の設定。
  • LDAP通信にTLSを利用するよう設定する。
    • ローカルクライアントとの通信の暗号化を確認。
    • ネットワーククライアントとの通信の暗号化を確認。
    • コンシューマLDAPサーバとの同期通信の暗号化を確認。
      • データを追加して、コンシューマに伝播するパケットをキャプチャする。

拡張認証機能を確認する

  • ppolicyスキーマを導入する。
    • ログイン認証の再確認
      • nas0(端末)から、srv0(LDAPサーバ自身)へsshログインする。
      • nas0(端末)から、srv1(LDAPサーバでない)へsshログインする。
    • 拡張機能の確認
      • ログイン失敗回数超過で一定時間ロックされるか。
      • 期限超過で警告が出るか。
      • 猶予期間超過でもロックされない様にできるか。
      • ログイン失敗でパスワード再設定を強制することができるか。
    • ユーザ操作の確認
      • パスワード変更が可能か(LDAPサーバ内から)
      • パスワード変更が可能か(LDAPサーバ外から)
      • パスワード文字数制限が有効になっているか。
      • passwdコマンドはやはりppolicyと連携できないのか。passwdコマンドはppolicyと連携できた。OK
    • ローカルアカウントへの影響
    • LDAP登録していないアカウントにはppolicyが適用されず普通にログインできること。
    • ローカルアカウントの追加で、LDAPにデータ追加されないこと。
    • 無用にLDAPに問い合わせを行わないこと。
  • shadowスキーマ関連の削除
    • shadow系が残っていた場合にppolicyの値だけが適用されているか。例えばアカウント期限など。
    • 削除用のLDIFファイルを作成する。
      • shadow系データはLDAPサーバから削除する方針とする。誤認しやすくなったり、管理が混乱するので。

連携機能を確認する

  • ホームdirの自動作成の設定を行う。OK
    • 追加したアカウントで初ログインする際に、自動的にホームdirが作成されること。OK
  • オートマウントの設定を行う。OK
    • /export/home配下にNFSv3で、ログインユーザ毎のホームdirがオートマウントされること。OK
      • 一定時間経過後(ログアウト後)にumountされること。OK
      • 複数アカウントでログインし、それぞれのホームdirがマウントされること。OK

その他の問題の検証

  • スラブメモリ増大問題
    • オートマウント設定状態で、ログイン(オートマウント)ログアウトして、スラブメモリが増えるか確認する。
    • 連続ログイン・ログアウトを設定し、スラブメモリが増えるか確認する。
      • 増え続ける場合、最終的にハングアップまで行くか、挙動を確認する。
      • 増大する場合、一定周期にフラッシュすればハングアップしないか確認する。
    • NFSv4だと問題が発生しないか確認する。
      • その場合、オートマント設定の方法を調べなおし、再確認する。

コメント

  • note_ldap.txtをアップロード -- 俺 2014-12-08 13:32:17
  • auto.txt -- 俺 2014-12-08 16:46:43
  • autoexpect使え! -- 俺 2014-12-12 17:16:02
  • autoexpect使え! -- 俺 2014-12-15 13:45:52
  • for_tejun.tgzをうp -- 俺 2015-01-13 14:53:28
  • script.txt -- 俺 2015-01-14 12:19:52
  • auto.export_home -- 俺 2015-01-15 15:31:32
  • 20150122.tgz -- 俺 2015-01-26 21:17:55

メモ


* 実施したコマンド
rpm -ivh pam_ldap-185-11.el6.x86_64.rpm nss-pam-ldapd-0.7.5-18.2.el6_4.x86_64.rpm
authconfig --enableldap --enableldapauth --ldapserver=10.159.213.14 --ldapbasedn="dc=esight,dc=ntt-east,dc=co,dc=jp" --enablemkhomedir --update

/etc/openldap/ldap.confの編集
/etc/nslcd.confの編集
/etc/pam_ldap.confの編集

authconfig --enableldaptls --update

/etc/init.d/nslcd restart

/etc/sssd/sssd.conf の [domain/default] セクションの最下行に以下を追加。
ldap_tls_reqcert = never
enumerate = True


* 検証用に特別に
- sen-mnetm01には検証用にldapsearch使いたいので、以下のパッケージも投入。
-- rpm -ivh openldap-clients-2.4.39-8.el6.x86_64.rpm
-- このrpmにはldapxxx系のコマンド群が入っているだけなので、一般のサーバにはインストールしなくてよいと思う。

- ldapserchコマンドで確認
-- ldapsearch -x -w kuraesig -D "cn=Manager,dc=esight,dc=ntt-east,dc=co,dc=jp" -b "dc=esight,dc=ntt-east,dc=co,dc=jp" "uid=hasegawa"


* メモ
- キャプチャする方法(IPも指定)
tcpdump -i eth1 -s 0 -A "host 10.159.215.9 and port ldap or port ldaps"
- LDAP認証でsshログインしてきたユーザの時刻とユーザ名を表示
grep "sshd.*user=" /var/log/secure | awk '{print $3, $NF}'



* 結論としての手順
** LDAPクライアント設定の編集
+ LDAPコンフィグの設定
++ /etc/openldap.confに以下を設定する。
 ★後で書く
+ システム認証設定の変更
++ /etc/nsswitchに以下を設定する。
passwd:     files sss
shadow:     files
group:      files sss

automount:  files sss
++ /etc/sysconfig/authconfigに以下を設定する。
USEMKHOMEDIR=yes     #yesにする

USESSSDAUTH=yes      #yesにする
USESSSD=yes          #yesにする

ちなみにLDAP関連はデフォ(no)のままで問題ない。
USELDAPAUTH=no
USELDAP=no
また、yesでも問題ない。

++ /etc/pam.d/system-auth-acに以下を設定する。
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
#既存のaccount [default〜pam_sss.soの行をコメントアウトして書き換える。
account     [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore authinfo_unavail=ignore] pam_ldap.so


++ /etc/pam.d/password-auth-acも上記と同じ。



★ところでsssdはどっからもってきた? sssd-common-1.11.6-30.el6.x86_64.rpmらしいが。


/etc/init.d/sssd restart; /etc/init.d/nslcd restart

PAM解析ノウハウ

認証中(前)なら auth optional pam_echo.so [ファイル名:%s:%u] before_xxx とか 認証後なら、 session optional pam_echo.so [ファイル名:%s:%u] before_xxx とか

ただし、本当の最初の認証が済まないと、画面表示はされない。 その場合は、syslogには出せるかも。 session optional pam_succeed_if.so uid < 30001 session optional pam_succeed_if.so uid < 30002とか入れて行く

( 訪問者数: 131, 本日: 1, 昨日: 0 )

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
最終更新: 2017-11-15 19:05:33 (2372d)