クライアントPCでlinuxを使っていて、アクティブディレクトリで認証したい!なんていうニッチな人向け。
sssdでlinuxをADに参加させるための手順
fedora21を使った。fedora22, fedora23, fedora24 でも同じだったと思う。
今回はドメインを hogehogedomain.local
, 自分のPC名(hostname)を pc208-fc
とします。
realmdを使って(直接Sambaを使わないで)設定する
# yum -y install realmd
host名の設定
/etc/hostname をADに登録したいPC名に編集
[root@pc208-fc ~]# cat /etc/hostname
pc208-fc.hogehogedomain.local
/etc/nsswitch.confの設定
hostsの探し方を変更して、dnsを前に持ってくる。(これは環境によって不要な可能性があるかも)
[root@pc208-fc ~]# diff /etc/nsswitch.conf /etc/nsswitch.conf.bk
39c39
< hosts: files dns mdns4_minimal [NOTFOUND=return] myhostname
---
> hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Active Directoryの情報取得
[root@pc208-fc ~]# realm discover --verbose
* Resolving: _ldap._tcp.hogehogedomain.local
* Performing LDAP DSE lookup on: 172.16.3.39
* Performing LDAP DSE lookup on: 172.16.2.32
* Performing LDAP DSE lookup on: 172.16.3.38
* Successfully discovered: hogehogedomain.local
hogehogedomain.local
type: kerberos
realm-name: HOGEHOGEDOMAIN.LOCAL
domain-name: hogehogedomain.local
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
各種パッケージのインストール
上のrealm discoverで出てるrequired-packageとして出力されているパッケージを導入する。
[root@pc208-fc ~]# yum install oddjob oddjob-mkhomedir sssd adcli samba-common
realmd設定
# cat /etc/realmd.conf
[users]
default-home = /home/%U
default-shell = /bin/zsh
[active-directory]
default-client = sssd
[service]
automatic-install = yes
[hogehogedomain.local]
computer-ou = OU=Computers,DC=hogehogedomain,DC=local
automatic-id-mapping = yes
fully-qualified-names = no
ドメインへの参加
# realm join hogehogedomain.local -U murata
Password for murata:
これでsshdなどが動いていれば
$ ssh murata\@hogehogedomain.local@172.16.3.172
でADのパスワードでログインできるようになります。172.16.3.172は自分自身のIPアドレス。
SSSDの設定を追加
すでに導入済みとなる、oddjob_mkhomedirの設定を、/etc/sssd/sssd.confに追記する。
[domain/hogehogedomain.local]
override_homedir = /home/%u
[nss]
fallback_homedir = /home/%u
%dは、ドメイン名、%uはユーザ名が補間されて、初回ログイン時に自動的にディレクトリが作成されるようになる。
# systemctl restart sssd.service
デフォルトのシェルを指定する
ADドメインユーザは、LDAPv3スキーマのloginShell属性でシェルの定義を行う。しかし、AD側で一々設定するのは面倒なので、SSSD側の設定で実現する。/etc/sssd/sssd.conf
ログインユーザー時にhogehogedomain.localをつけなくても良くする。のも同時に。
[domain/hogehogedomain.local]
default_shell = /bin/bash
use_fully_qualified_names = TrueからFalseに
[nss]
shell_fallback = /bin/sh
allowed_shells = /bin/bash /bin/zsh
sssd再起動
# systemctl restart sssd.service
visudo
%domain\ admins ALL=(ALL) NOPASSWD: ALL
を追加すればsudoerにdomain admin@hogehogedomain.localのグループが入る。
あとはお好きにどうぞ。