FreeIPA

提供: ArchWiki
ナビゲーションに移動 検索に移動

FreeIPA はオープンソースの ID, ポリシー, 監査 (IPA) スイートです。RedHat が支援しており Microsoft の Active Directory と同じようなサービスを提供します。

IPA クライアントとして設定

時刻が同期されていることを確認してください。時刻にズレがあると Kerberos は機能しません。NTP が推奨されています。

LDAP 認証の手順に従って SSSD をセットアップしてください。以下のような SSSD 設定を使って、必要なフィールドは置き換えてください:

/etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss, pam, sudo, ssh
domains = EXAMPLE.COM
#debug_level = 9

[domain/EXAMPLE.COM]
#debug_level = 9
cache_credentials = true
krb5_store_password_if_offline = true
id_provider = ipa
auth_provider = ipa
access_provider = ipa
chpass_provider = ipa
#ipa_domain=ipa.example.com  # Optional if you set SRV records in DNS
#ipa_server=controller.example.com  # Optional if you set SRV records in DNS
ipa_hostname=fqdn.for.machine

LDAP と同じように pam も設定します。pam_ldap.sopam_sss.so に置き換えてください。

/etc/krb5.conf ファイルを作成:

/etc/krb5.conf
[libdefaults]
        default_realm = EXAMPLE.COM
        dns_lookup_realm = false
        dns_lookup_kdc = false
        rdns = false
        ticket_lifetime = 24h
        fowardable = yes
        #allow_weak_crypto = yes  # Only if absolutely necessary. Currently FreeIPA supports strong crypto.

[realms]
        EXAMPLE.COM = {
                admin_server = controller.example.com
                kdc = controller.example.com:749
                default_admin = example.com
        }

[domain_realm]
        example.com = EXAMPLE.COM
        .example.com = EXAMPLE.COM

[logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmin.log

IPA サーバーからクライアントを追加してください (Fedora のドキュメント を参照):

  1. 管理者セッションにログイン: kinit admin
  2. ホストエントリを作成: ipa host-add --force --ip-address=192.168.166.31 client1.example.com
    (ホストに固定 IP がない場合、ipa host-add client1.example.com を使ってください)
  3. IPA でクライアントを管理するように設定: ipa host-add-managedby --hosts=controller.example.com client1.example.com
  4. クライアントの keytab を生成: ipa-getkeytab -s controller.example.com -p host/client1.example.com -k /tmp/client1.keytab

生成した keytab をクライアントにインストール:

$ scp user@controller.example.com:/tmp/client1.keytab krb5.keytab
# mv krb5.ketab /etc/krb5.keytab

SSH の統合

authorized_keys

/etc/ssh/sshd_config の以下の行をアンコメントすることで LDAP ディレクトリからユーザーの SSH 公開鍵を取得するように sshd を設定できます:

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody

設定したら sshd を再起動してください。

ウェブインターフェイスを使用するか -sshpubkey='ssh-rsa AAAA...' 引数を使って ipa user-mod または ipa user-create コマンドを実行することで FreeIPA のユーザーアカウントに ssh を追加できます。

ssh 鍵をテスト:

# sudo -u nobody sss_ssh_authorizedkeys <username>

ssh 公開鍵が標準出力に表示され何もエラーメッセージが表示されなければ問題ありません。

known_hosts

/etc/ssh/ssh_config に以下の行を追加することで FreeIPA のディレクトリエントリからホストの公開鍵の情報を取得するように ssh を設定できます:

GlobalKnownHostsFile /var/lib/sss/pubconf/known_hosts
ProxyCommand /usr/bin/sss_ssh_knownhostsproxy -p %p %h

参照