Configuring RHEL for Kerberized NFSv4 mounts
These steps are required in all cases.
# yum install adcli sssd nfs4-acl-tools
/etc/krb5.conf
with at least these lines (Use Puppet when appropriate, e.g. DAC servers)
[libdefaults]
default_realm = KIEWIT.DARTMOUTH.EDU
dns_lookup_realm = false
dns_lookup_kdc = true
forwardable = true
rdns = false
/etc/idmapd.conf
so it matches the NFSv4 Domain setting on the Isilon (KIEWIT.DARTMOUTH.EDU).
Domain = KIEWIT.DARTMOUTH.EDU
# adcli join kiewit.dartmouth.edu -S lexington2.dartmouth.edu -U adminaccount -O \
'OU=Servers,dc=Kiewit,dc=Dartmouth,dc=edu' --service-name=nfs --service-name=host
# klist -k -t /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
2 10/17/2018 14:40:17 MYHOST$@KIEWIT.DARTMOUTH.EDU
[...]
RPCGSSDARGS="-t 3600"
# systemctl start rpcidmapd
# systemctl start rpcgssd
# mount -t nfs -o sec=krb5,nfsvers=4.0 server:/ifs/path/to/export /mount_point
Configuring the sssd service enables NetID logins (and the automatic acquisition of a Kerberos TGT) based on group membership defined in /etc/sssd/sssd.conf. Running sssd is not necessary for mounting the Kerberized NFSv4 storage but without that you’ll need to manually acquire the TGT for accessing anything (use the kinit command).
# authconfig --enablesssd --enablesssdauth --update
[sssd]
debug_level = 0x0270
services = nss, pam
domains = KIEWIT.DARTMOUTH.EDU
[nss]
debug_level = 0x0270
# exclude root from the sss NSS database
filter_groups = root
filter_users = root
# loginShell not set in AD
override_shell = /bin/bash
# May want to override home directories too
# override_homedir = /path/%u
[domain/KIEWIT.DARTMOUTH.EDU]
debug_level = 0x0270
# type of provider
id_provider = ad
auth_provider = ad
access_provider = ad
# e.g. allows 'getent passwd user' without specifying domain
use_fully_qualified_names = False
# same as false, which is required for AD, but preserves case in NSS ops
case_sensitive = Preserving
# Explicitly disable sudo from AD
sudo_provider = none
# UID/GID lower limit - sss ignores if lower
min_id = 10000
# Default domain
ldap_idmap_default_domain = KIEWIT.DARTMOUTH.EDU
# Don't map to objectSID, use uidNumber/gidNumber
ldap_id_mapping = False
# Allow members of "rc-login" group to login
ad_access_filter = DOM:KIEWIT.DARTMOUTH.EDU:(memberOf=CN=rc-login,OU=Groups,OU=Research,DC=KIEWIT,DC=DARTMOUTH,DC=EDU)
# Don't try to update AD DNS server
dyndns_update = False
# Don't try to update machine password
ad_maximum_machine_account_password_age = 0
# systemctl enable sssd
# systemctl start sssd
$ getent passwd dz99918
dz99918:*:17020:10001:Research Computing:/home/Kiewit/dz99918:
Not required. Need to flesh this section out
$ isi nfs exports view ExportNum --zone ZoneName | grep Security
Security Type: krb5
# kinit -k -t /etc/krb5.keytab HOST$
# kvno HOST$
HOST$@KIEWIT.DARTMOUTH.EDU: kvno 2
# klist -k -t /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
2 12/15/2017 22:44:46 HOST$@KIEWIT.DARTMOUTH.EDU
[...]
adcli: joining domain kiewit.dartmouth.edu failed: Couldn’t create computer account: CN=SASSER1,OU=Servers,dc=Kiewit,dc=Dartmouth,dc=edu: 00002083: AtrErr: DSID-031519D9, #2:
0: 00002083: DSID-031519D9, problem 1006 (ATT_OR_VALUE_EXISTS), data 0, Att 90303 (servicePrincipalName):len 22
1: 00002083: DSID-031519D9, problem 1006 (ATT_OR_VALUE_EXISTS), data 0, Att 90303 (servicePrincipalName):len 24
sudo hostnamectl set-hostname servername.dartmouth.edu