びぼうろぐ

ネ申エクセルからの卒業

【CentOS8】ActiveDirectoryのユーザでLinuxにsshする

ユーザ情報はADにまとめたいよね、という要望の下でLinuxドメインに参加させてユーザ情報はADからもらってみます。

環境情報

ActiveDirectory

Linux

  • OS: CentOS8(1911)
    • minimalインストール
    • 参照するDNSサーバは上記のドメコンを指定

手順

# ライブラリインストール
$ 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 する理由

11.2.21. ドメインの作成: アクセス制御

LDAPActive 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

参考

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/planning_identity_management/planning-integration-with-ad_planning-dns-and-host-names#direct-integration_planning-integration-with-ad

access.redhat.com