【CentOS8】ActiveDirectoryのユーザでLinuxにsshする
ユーザ情報はADにまとめたいよね、という要望の下でLinuxもドメインに参加させてユーザ情報はADからもらってみます。
環境情報
ActiveDirectory
Linux
手順
# ライブラリインストール $ sudo yum install -y sssd realmd adcli oddjob oddjob-mkhomedir # sssdの状況確認 $ sudo systemctl status sssd ● sssd.service - System Security Services Daemon Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-05-06 12:24:28 JST; 36s ago Main PID: 2106 (sssd) Tasks: 5 (limit: 5588) Memory: 38.3M ... # ドメイン検索 $ realm discover test.com test.com type: kerberos realm-name: TEST.COM domain-name: test.com configured: no server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common-tools # ドメイン参加(Domain Administratorのパスワードが必要) $ sudo realm join -U administrator test.com administrator に対するパスワード: # ログイン可能なユーザーグループを絞る $ sudo realm permit -g 'domain users'
(参考)realm permit する理由
LDAP、Active Directory、Identity Management サーバーは、ドメイン用のアクセス制御ルールを提供できます。関連したフィルターオプション(ldap_access_filter) は、特定のホストへアクセスを許可されるユーザーを指定します。ユーザーフィルターを使用しないとすべてのユーザーがアクセスを拒否されます。
これを設定しておかないと認証サーバへアクセスすることができないみたいです。
動作確認
# ドメインユーザ(user1)で対象ホスト(centos8)にsshできることを確認 > ssh user1@test.com@centos8 Password: [user1@test.com@centos8 ~]$
設定内容の確認
$ sudo cat /etc/sssd/sssd.conf [sssd] domains = test.com config_file_version = 2 services = nss, pam [domain/test.com] ad_domain = test.com krb5_realm = TEST.COM realmd_tags = manages-system joined-with-adcli cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = simple simple_allow_groups = domain users