LoginSignup
0
0

More than 1 year has passed since last update.

LPIC 300 ②LDAPによる認証

Posted at

PAM、NSSとLDAPの連携

  • LinuxでLDAPと連携して認証を行うには、PAMとNSSを使う
    • PAM: pluggable authentication module
    • NSS: name service switch

LDAPサーバの設定

  • LDAP上に、accountオブジェクトクラスとposixgroupオブジェクトクラスを使ってユーザアカウントとグループのデータを格納する
  • これらのオブジェクトは cosine.scheme と nis.scheme に定義されているので、これらをLDAPサーバで読み込むことが必要(slapd.confに記述)

データの追加

  • ユーザデータはLDIFで記述してaddしてもよいが、MigrationToolを使うとローカルのアカウント情報をLDAPに移行することもできる
  • パスワードは slappasswd でハッシュ化して登録する

クライアントホストの設定

NSSとPAMの設定が必要

NSSの設定

LDAPのアカウント情報を参照するために用いる

LDAP参照用のNSSモジュールは古いnss_ldapと新しいnslcd(nss-pam-ldapd)がある

  • 参照するLDAPサーバの設定

    • nss_ldap ⇒ /etc/ldap.conf または /etc/pam_ldap.conf または/etc/pam_ldap.secret
    • nslcd(nss-pam-ldapd) ⇒ /etc/nslcd.conf
  • LDAPのアカウント情報をアカウントマスタとして使用することの設定

    /etc/nsswitch.confに ldap を追記する。記載順序が参照順序になるので、LDAPアカウントを優先的に見るならfilesより前に記述。

    paswd: files ldap
    shadow: files ldap
    group: files ldap

  • /etc/openldap/ldap.conf の設定

    ldapsearchなどのコマンドのデフォルト値の設定

pamの設定

認証をつかさどる。NSSが取得したLDAPの情報で認証することを許可する

/etc/pam.d/system-auth または /etc/pam.d/password-auth に追記

設定とテスト

  • authconfig-tui
    NSSとPAMの設定を一括で実施する(RHEL系)
  • getent
    クライアントでLDAPの参照ができているかどうかテストするとき使う

キャッシュ

  • nscd(Name Service Chache Daemon)を使うとLDAP認証情報をクライアント側でキャッシュできる

Active Directory、KerberosとLDAPの連携

Kerberosとは

  • 身元を保証するチケットを使ってシングルサインオンを実現する機構
  • 認証された対象をプリンシパルと呼ぶ

    • ユーザプリンシパル
    • サービスプリンシパル
    • ホストプリンシパル
  • Kerberosサーバには秘密鍵を置く。ユーザは秘密鍵を生成するためのパスワードを記憶しておく

  • KerberoからTGTを取得するにはkinitコマンドもしくは pam_krb5を用いる

    • kinit パスワードを直接入力する
    • pam_krb5 OSログインパスワードを使う

Kerberoの設定

  • kdc.conf サーバの設定ファイル
  • krb5.conf クライアントの設定ファイル ## Kerberosの構築手順
  • confの作成
  • kdbの作成
  • rootのユーザプリンシパルの作成
    アクセス制御を行わずにKerberosデータベースを制御できるkadmin.localコマンドを使う
  • サーバの起動 service kadmin start service krb5kdc start
  • ユーザプリンシパルの作成
    kadmin: add_princで生成
  • LDAPサーバ用のサービスプリンシパルの作成
    • LDAPサーバでkadminコマンドを使用し、Kerberosサーバにプリンシパルを作成する
    • ktaddコマンドで秘密鍵をKerberosサーバの/etc/openldap/ldap.keytabに保存する
  • LDAPサーバにKerberos用の設定を追加して再起動

    /etc/slapd.conf/etc/sysconfig/ldap に設定を追記して再起動

  • 各ホストでポストプリンシパルを作成

  • pam nssの設定にKerberosを追加

  • 上記完成すると、ポストログイン時にKerberosでチケットが発行され、ほかホストへパスワードなしでログインできる

※sshではGSSAPIAutentication yes の設定必要。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0