FreeIPA
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.so
を pam_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 のドキュメント を参照):
- 管理者セッションにログイン:
kinit admin
- ホストエントリを作成:
ipa host-add --force --ip-address=192.168.166.31 client1.example.com
(ホストに固定 IP がない場合、ipa host-add client1.example.com
を使ってください) - IPA でクライアントを管理するように設定:
ipa host-add-managedby --hosts=controller.example.com client1.example.com
- クライアントの 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
参照
- Manually Configuring a Linux Client from the FreeIPA user guide
- Freeipa30_SSSD_OpenSSH_integration.pdf