前回記事でSamba4とSSSDを利用してLinux/Widowsの統合認証環境を構築しました。
- Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS)
- Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS) 冗長化編
今回はLinuxサーバをドメイン参加させてメンバーサーバを構成します。
構成環境は下記です。
- ドメイン名 : TESTDOMAIN.LOCAL
- 追加メンバーサーバ : server01.testdomain.local
- 追加メンバーサーバIP : 192.168.24.60
ドメイン参加させるLinuxサーバの要件は、
- ユーザはにsssd経由でログインできる
- Linuxのホームディレクトリはドメインコントローラ1台目のホームディレクトリを共有する
です。
今回もCentOS7で構築します。
1. 不要な機能の停止
構築時のエラーを防ぐため、ファイアーウォールの停止とSELinuxを無効化します。
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# systemctl list-unit-files | grep firewalld.service
firewalld.service disabled
# getenforce
Enforcing
# vi /etc/selinux/config
<略>
#SELINUX=enforcing # コメントアウト
SELINUX=disabled # 追記
<略>
# reboot
# getenforce
Disabled
2. 必要なパッケージのインストール
ドメイン参加に必要なパッケージをインストールします。
# yum install krb5-workstation
3. DNSの設定変更
参照先のDNSをsambaで構築したDNSに変更します。
# nmcli device
デバイス タイプ 状態 接続
enp0s3 ethernet 接続済み System enp0s3
lo loopback 管理無し --
# nmcli connection modify "System enp0s3" ipv4.dns "192.168.24.57,192.168.24.58"
# systemctl restart NetworkManager
/etc/resolv.confファイルの中身を確認して、参照先DNSが自サーバになっていることを確認します。
# more /etc/resolv.conf
# Generated by NetworkManager
search testdomain.local
nameserver 192.168.24.57
nameserver 192.168.24.58
4. ドメイン参加の準備
Linuxをドメイン参加させるため samba の設定をします。
# vi /etc/samba/smb.conf
[global]
workgroup = testdomain
kerberos method = secrets and keytab
log file = /var/log/samba/%m.log
realm = TESTDOMAIN.LOCAL
security = ads
krb5.conf ファイルの内容を編集します。
# vi /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = TESTDOMAIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
TESTDOMAIN.LOCAL = {
kdc = dc01.testdomain.local
kdc = dc02.testdomain.local
admin_server = dc01.testdomain.local
admin_server = dc02.testdomain.local
}
[domain_realm]
.testdomain.local = TESTDOMAIN.LOCAL
testdomain.local = TESTDOMAIN.LOCAL
kinit を実行してチケットを取得します。
# kinit このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
Password for このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。:
チケットが取得できているこを確認します。
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
Valid starting Expires Service principal
2016-11-20T16:59:40 2016-11-21T02:59:40 krbtgt/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
renew until 2016-11-27T16:59:35
5. ドメイン参加
net コマンドを使ってLinuxサーバをドメイン参加します。
# net ads join -U administrator
Enter administrator's password:
Using short domain name -- TESTDOMAIN
Joined 'SERVER01' to dns domain 'testdomain.local'
No DNS domain configured for server01. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER
DNSエラーが出ますがが問題ありません。
取得したチケットの一覧を表示して確認します。
# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (des-cbc-crc)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (des-cbc-md5)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (aes128-cts-hmac-sha1-96)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (aes256-cts-hmac-sha1-96)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (arcfour-hmac)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (des-cbc-crc)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (des-cbc-md5)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (aes128-cts-hmac-sha1-96)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (aes256-cts-hmac-sha1-96)
2 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (arcfour-hmac)
2 SERVER01$@TESTDOMAIN.LOCAL (des-cbc-crc)
2 SERVER01$@TESTDOMAIN.LOCAL (des-cbc-md5)
2 SERVER01$@TESTDOMAIN.LOCAL (aes128-cts-hmac-sha1-96)
2 SERVER01$@TESTDOMAIN.LOCAL (aes256-cts-hmac-sha1-96)
2 SERVER01$@TESTDOMAIN.LOCAL (arcfour-hmac)
6. Linuxの認証をSSSD経由でActiveDirectoryと連携
個別要件の
- Linuxユーザはsssd経由でログインできる
を満たす設定をします。
必要なパッケージをインストールします。
# yum install sssd sssd-ad krb5-workstation oddjob-mkhomedir openldap-clients
sssdの設定ファイルを編集します。
# vi /etc/sssd/sssd.conf
[sssd]
config_file_version = 2
domains = testdomain.local
services = nss, pam
debug_level = 0
[nss]
[pam]
[domain/testdomain.local]
id_provider = ad
auth_provider = ad
access_provider = ad
chpass_provider = ad
entry_cache_netgroup_timeout = 15
entry_cache_timeout = 15
ldap_id_mapping = false
# ad_server = server.ad.example.com
#ad_hostname = server.ad.example.com
ad_admin = testdomain.local
1台目構築時と同じく設定のポイントはこちらです。
- ldap_id_mapping
true に設定するとIDを自動生成します。false に設定するとActive DirectoryからIDを取得します。今回は false です。
sssdの設定ファイルのアクセス権を変更します。
# chown root:root /etc/sssd/sssd.conf
# chmod 0600 /etc/sssd/sssd.conf
NSS/PAMの設定をSSSDに切り替えます。
# authconfig --enablesssd --enablesssdauth --enablemkhomedir --update
SSSDを起動します。
# systemctl restart sssd.service
エラーなく起動したら接続テストを行います。
1台目構築時に作成したユーザの情報をidコマンドで取得します。
# id test01
uid=200001(test01) gid=100000(domain users) groups=100000(domain users)
取得できれば接続テストは完了です。
7. NFS と Autofs でホームディレクトリを共有
必要なパッケージをインストールします。
# yum install autofs
auto.master にマウントポイントを記述します。
# vi /etc/auto.master
/- /etc/testdomain.local.misc --timeout=60
testdomain.local.misc にはマウントポイントのマウント方法を記述します。
# vi /etc/testdomain.local.misc
/home/testdomain.local -rw dc01:/home/testdomain.local
autofs サービスを起動します。
# systemctl start autofs
# systemctl enable autofs
マウントポイントを作成します。
# mkdir -m 711 /home/testdomain.local
動作確認を行います。
今回構築したメンバーサーバに test01 ユーザでログインします。
$ id
uid=200001(test01) gid=100000(domain users) groups=100000(domain users)
$ ls -l
-rw-r--r-- 1 test01 domain users 5 11月 13 01:17 test.txt
問題なくホームディレクトリが共有されていることが確認できれば確認完了です。
お疲れ様でした。