Um die Benutzerfreigaben mounten zu können, muss der Linux Rechner Mitglied in der passenden Domäne sein. Für das Hinzufügen neuer Rechner in eine Domäne sind die IVVs https://www.uni-muenster.de/de/zentraledienstleister/ivven.html zuständig. Die beschriebenen Skripte sollen eine Hilfestellung bei dem Hinzufügen der Linux Rechner in die Domäne sein, aber die aufgeführten Variablen JOINUSER und OU müssen entsprechend angepasst werden. Bitte besprechen Sie die jeweiligen Details mit ihrer IVV!

Anmerkungen

  • Hostnamen dürfen für das Active Directory 15 maximal Zeichen lang sein
  • Distributionen mit älteren Kerneln können zu Problemen führen (z.B. Centos 7, Kommando git clone https://github.com/torvalds/linux.git bleibt hängen)


CentOS 8.2

# set variables
JOINUSER="joinuseraccount"
OU="OU=OpenStack,OU=ZIV,OU=IVV,DC=wwu,DC=de"

# install net tool, winbind and kerberos client tools
dnf install -y samba-common-tools samba-winbind krb5-workstation

# create samba conf
cat <<EOF > /etc/samba/smb.conf
[global]
netbios name = $(hostname)
security = ADS
realm = wwu.de
workgroup = WWU
kerberos method = system keytab

idmap config * : backend = tdb
idmap config * : range = 500000001-500000100
idmap config * : read only = yes

idmap config WWU : backend = ad
idmap config WWU : schema_mode = rfc2307
idmap config WWU : range = 1000-100000000
idmap config WWU : read only = yes
idmap config WWU : unix_nss_info = yes
idmap config WWU : unix_primary_group = yes

winbind refresh tickets = yes
winbind use default domain = yes
winbind expand groups = 4
EOF

# create kerberos conf
cat <<EOF > /etc/krb5.conf
[libdefaults]
default_realm = WWU.DE
dns_lookup_realm = false
dns_lookup_kdc = true
rdns = false

[domain_realm]
.wwu.de = WWU.DE
wwu.de = WWU.DE

[logging]
default = STDERR
EOF

# join computer
net ads join -U ${JOINUSER} createcomputer=${OU} --no-dns-updates

# create kerberos keytab
net -P ads keytab create

# enable and start winbind
systemctl enable winbind
systemctl start winbind

# add winbind to nsswitch.conf
sed -i -e 's/^passwd:.*/passwd: winbind sss files systemd/' /etc/nsswitch.conf
sed -i -e 's/^group:.*/group: winbind sss files systemd/' /etc/nsswitch.conf
 
# enable and start nfs-client services
systemctl enable nfs-client.target
systemctl start nfs-client.target

# mount usershares
mount -o vers=4.2,sec=krb5 usershare-nfs.os.wwu.de:/usershare /mnt


Ubuntu 20.04

# set variables
JOINUSER="joinuseraccount"
OU="OU=OpenStack,OU=ZIV,OU=IVV,DC=wwu,DC=de"

# install net tool, winbind, kerberos client tools and nfs client services
export DEBIAN_FRONTEND=noninteractive
apt-get install -y --no-install-recommends samba-common-bin winbind libnss-winbind krb5-user nfs-common

# create samba conf
cat <<EOF > /etc/samba/smb.conf
[global]
netbios name = $(hostname)
security = ADS
realm = wwu.de
workgroup = WWU
kerberos method = system keytab

idmap config * : backend = tdb
idmap config * : range = 500000001-500000100
idmap config * : read only = yes

idmap config WWU : backend = ad
idmap config WWU : schema_mode = rfc2307
idmap config WWU : range = 1000-100000000
idmap config WWU : read only = yes
idmap config WWU : unix_nss_info = yes
idmap config WWU : unix_primary_group = yes

winbind refresh tickets = yes
winbind use default domain = yes
winbind expand groups = 4
EOF

# create kerberos conf
cat <<EOF > /etc/krb5.conf
[libdefaults]
default_realm = WWU.DE
dns_lookup_realm = false
dns_lookup_kdc = true
rdns = false

[domain_realm]
.wwu.de = WWU.DE
wwu.de = WWU.DE

[logging]
default = STDERR
EOF

# join computer
net ads join -U ${JOINUSER} createcomputer=${OU} --no-dns-updates

# create kerberos keytab
net -P ads keytab create

# enable and start winbind
systemctl enable winbind
systemctl start winbind

# add winbind to nsswitch.conf
sed -i -e 's/^passwd:.*/passwd: winbind files systemd/' /etc/nsswitch.conf
sed -i -e 's/^group:.*/group: winbind files systemd/' /etc/nsswitch.conf
 
# enable and start nfs-client services
systemctl enable nfs-client.target
systemctl start nfs-client.target

# mount usershares
mount -o vers=4.2,sec=krb5 usershare-nfs.os.wwu.de:/usershare /mnt

Gemountetes NFS mit LDAP Nutzern benutzen

Die folgende Konfiguration zeit, wie man Linux konfigurieren kann, sodass man sich per LDAP authentifizieren und direkt die Benutzerfreigabe benutzen kann und schließt sich an die oben beschriebene Konfiguration an.

Wichtig hierbei ist, dass bereits beim Einloggen ein Kerberos Ticket erzeugt wird. Diese kann auch mit klist ausgelesen werden.

Centos 8

# Install sssd
dnf install -y sssd

# Minimal sssd configuration
cat > /etc/sssd/sssd.conf << EOF
[sssd]
config_file_version = 2
domains = wwu.de
services = nss,pam

[nss]
filter_groups = root
filter_users = root

[domain/wwu.de]
id_provider = ad
access_provider = ad
auth_provider = ad
chpass_provider = none
sudo_provider = none
ldap_id_mapping = False
EOF
chmod 600 /etc/sssd/sssd.conf
systemctl restart sssd

# Automatially mount usershare on boot
grep -q ^usershare-nfs.os.wwu.de:/usershare /etc/fstab || echo "usershare-nfs.os.wwu.de:/usershare /mnt nfs4 vers=4.2,sec=krb5,auto 0 0" >> /etc/fstab

# Optionall allow ChallengeResponseAuthentication in SSH
sed -i -e 's/^ChallengeResponseAuthentication.*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd

Ubuntu 20.04

# Install sssd and pam modules for sssd and kerberos
apt install -y --no-install-recommends sssd libpam-sss libpam-krb5

# Minimal sssd configuration
cat > /etc/sssd/sssd.conf << EOF
[sssd]
config_file_version = 2
domains = wwu.de
services = nss,pam

[nss]
filter_groups = root
filter_users = root

[domain/wwu.de]
id_provider = ad
access_provider = ad
auth_provider = ad
chpass_provider = none
sudo_provider = none
EOF
chmod 600 /etc/sssd/sssd.conf
systemctl restart sssd

# Add sss to nsswitch.conf
sed -i -e 's/^shadow:.*/shadow: files sss/' /etc/nsswitch.conf

# Automatially mount usershare on boot
grep -q ^usershare-nfs.os.wwu.de:/usershare /etc/fstab || echo "usershare-nfs.os.wwu.de:/usershare /mnt nfs4 vers=4.2,sec=krb5,auto 0 0" >> /etc/fstab

# Optionall allow ChallengeResponseAuthentication in SSH
sed -i -e 's/^ChallengeResponseAuthentication.*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
systemctl restart ssh
  • Keine Stichwörter