测试环境
域控:
windows server 2022
NAS(加域):
DSM 7.2.1 update5
Clinet:
Centos 7.9
Centos 加入域
客户端配置
安装域组件以及Kerberos认证组件:
yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-devel krb5-workstation openldap-clients policycoreutils-python-utils -y
修改客户端名称:
hostnamectl set-hostname centos9.zhugh.local
修改DNS,将DSN服务器调整为域控
vi /etc/resolv.conf
search zhugh.local
nameserver 192.168.0.20
修改Kerberos配置
vi /etc/krb5.conf
default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
检查域控是否可以正常连接
nslookup zhugh.local
realm discover zhugh.local
加入域
realm join -U administrator zhugh.local
检查加域是否成功
realm list
授权指定域群组可以登录Centos
realm permit -g 'Domain Users' 'Domain Admins'
授予所有用户可以登录Centos
realm permit --all
授权指定域用户可以登录Centos
realm permit user@zhugh.local
取消授权
realm deny user@zhugh.local
配置SSH允许密码登录
vi /etc/ssh/sshd_config
修改以下配置
PasswordAuthentication yes
可选配置
AD域用户添加sudo权限
vi /etc/sudoers.d/domain_admins
为指定域用户添加sudo权限。
user@zhugh.local ALL=(ALL) ALL
例如:
zhughcentos@zhugh.local ALL=(ALL) ALL
为指定用户组添加sudo权限。
%group@zhugh.local ALL=(ALL) ALL
例如:
%domain\ users@zhugh.local ALL=(ALL) ALL
NFS
NAS部分配置请参考:
https://www.zhugh.com/synology-nas-nfs-kerberos-pei-zhi-yu-shi-yong/
安装nfs客户端
yum -y install nfs-utils
切换root测试挂载
mount -t nfs -o vers=4,sec=krb5 ds3617xs7.zhugh.local:/volume1/docker /nfsmount
编辑fstab创建自动挂载任务(以下为案例):
vi /etc/fstab
ds3617xs7.zhugh.local:/volume1/docker /nfsmount nfs noauto,x-systemd.automount,vers=4,sec=krb5 0 2
由于krb5认证比较特殊,如果开机自动挂载可能会无法正常通过认证,通过以下指令调整为在首次使用时进行装载就可以避免这个问题。
noauto,x-systemd.automount
权限测试
如果用户还未被获取到NAS但是已经通过nfs访问了会导致用户权限变成nobody,此时需要在Centos重新挂载NFS才可以恢复正常:
SMB
安装smb客户端
yum install keyutils cifs-utils -y
切换使用授权的域用户进行挂载
sudo mount -t cifs -o sec=krb5,soft,iocharset=utf8,nounix,file_mode=0777,dir_mode=0777,nocase,vers=3.02,noserverino,mfsymlinks //ds3617xs7.zhugh.local/docker /smbmount
如果希望开机自动挂载,则需要切换到root用户,使用root用户获取对应用户的Kerberos凭据(域名部分需要大写):
kinit jishu3@ZHUGH.LOCAL
编辑fstab创建自动挂载任务,不区分用户(以下为案例):
vi /etc/fstab
//ds3617xs7.zhugh.local/docker /smbmount cifs noauto,x-systemd.automount,sec=krb5,soft,iocharset=utf8,nounix,file_mode=0777,dir_mode=0777,nocase,vers=3.02,noserverino,mfsymlinks 0 2
由于krb5认证比较特殊,如果开机自动挂载可能会无法正常通过认证,通过以下指令调整为在首次使用时进行装载就可以避免这个问题。
noauto,x-systemd.automount
权限测试
编辑fstab创建自动挂载任务,区分用户(以下为案例):
vi /etc/fstab
//ds3617xs7.zhugh.local/docker /smbmount cifs noauto,x-systemd.automount,sec=krb5,soft,nocase,vers=3.02,noserverino,mfsymlinks,multiuser 0 2
权限测试
其他命令
退域
realm leave -U administrator
手动获取Kerberos凭据(此处域名要大写)
kinit zhughcentos@ZHUGH.LOCAL
手动获取server Kerberos凭据
kvno cifs/ds3617xs7.zhugh.local@ZHUGH.LOCAL
清除Kerberos凭据
kdestroy
解决root用户凭据重启后丢失问题
vi .bash_profile
export KRB5CCNAME=/etc/krb5/cache
取消系统管理DNS
/etc/NetworkManager/NetworkManager.conf
在[main]添加:
dns=none
kinit自动获取小写问题
cat /etc/sssd/sssd.conf
domains = SUPHYPERV.LOCAL
[domain/SUPHYPERV.LOCAL]
Kerberos凭据有效期过短问题
kinit zhughcentos@ZHUGH.LOCAL -l 365d