NB: Istruzioni e configurazioni valide per il dominio UNITN configurazione LDSS e fino a debian 9
Attori:
Macchina da mettere in dominio: sci-ldtest.unitn.it 192.168.121.30
Server di Dominio e DNS: dcunitn01.unitn.it 192.168.206.99 , dcunitn02.unitn.it 192.168.119.99
Server delle home: sci-aresw.unitn.it 192.168.131.2
Pacchetti
Installa i pacchetti:
# apt-get install krb5-user samba ntp sssd adcli
Metti UNITN.IT nel Default Kerberos realname:
Configurazioni
Nome macchina:
NOTA: il nome meglio tutto minuscolo
Diamo un nome appropriato alla nostra macchina editando il file /etc/hostname
sci-ldtest
sistemiamo anche il file /etc/hosts che dovrebbe essere circa:
127.0.0.1 localhost 127.0.1.1 sci-ldtest.unitn.it sci-ldtest # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters # Aggiungi questa riga se la machina non è nel DNS #192.168.121.30 sci-ldDTest.unitn.it sci-ldDTest
Time:
Sincroniziamo l’ora con i server di dominio (altrimanti kerberos non funziona). Editiamo il file /etc/ntp.conf commentiamo i server di debian e aggiungiamo quello di UNITN
#server 0.debian.pool.ntp.org iburst #server 1.debian.pool.ntp.org iburst #server 2.debian.pool.ntp.org iburst #server 3.debian.pool.ntp.org iburst server unitn.it #server di unitn
Kerberos:
Modifichiamo il il file /etc/krb5.conf lasciando solo le seguenti informazioni:
[libdefaults] default_realm = UNITN.IT rdns = false [domain_realm] .unitn.it = UNITN.IT unitn.it = UNITN.IT [realms] UNITN.IT = { kdc = 192.168.206.99 kdc = 192.168.119.99 }
DNS:
modifichiamo il file /etc/resolv.conf come segue:
# Generated by NetworkManager search unitn.it nameserver 192.168.206.99 nameserver 192.168.119.99
Samba:
Modifichiamo il file /etc/samba/smb.conf nel seguente modo:
[global] workgroup = UNITN realm = UNITN.IT security = ADS kerberos method = secrets only syslog = 0 machine password timeout = 0 template homedir = /home/%u template shell = /bin/bash winbind use default domain = Yes winbind expand groups = 0 winbind refresh tickets = Yes idmap config * : range = 10000 - 1000000 idmap config UNITN:range = 10000 - 1000000 idmap config UNITN:backend = rid idmap config * : backend = tdb password server = dcunitn01, dcunitn02
NOTA: la versione di samba di Debian 8 ha un bacco che richiede un comando in più durante il join al dominio per sistemare il keytab.
dalle versioni successive di samba ( es Ubuntu 16.04) basta modificare la riga del kerberos method come segue e tutto funziona:
kerberos method = secrets and keytab
sssd:
Crea il file /etc/sssd/sssd.conf contenente:
[sssd] services = nss, pam config_file_version = 2 domains = unitn.it #debug_level = 8 [domain/unitn.it] ad_domain = unitn.it krb5_realm = UNITN.IT id_provider = ad ldap_id_mapping = True ldap_idmap_default_domain_sid = S-1-5-21-343818398-764733703-1708537768 ldap_idmap_range_min = 10000 ldap_idmap_range_size = 1000000 use_fully_qualified_names = False cache_credentials = True krb5_store_password_if_offline = True default_shell = /bin/bash fallback_homedir = /home/%u ldap_group_nesting_level = 0 ignore_group_members = True access_provider = simple ad_server = dcunitn01,dcunitn02
NOTA: Cambia i permessi del file in 600
Setup Authentication:
Il file /etc/nsswitch.conf deve contenere:
passwd: compat sss group: compat sss shadow: compat sss hosts: files dns networks: files protocols: db files services: db files sss ethers: db files rpc: db files netgroup: nis sss sudoers: files ss
Il file /etc/idmapd.conf deve contenere:
[General] Verbosity = 0 Pipefs-Directory = /run/rpc_pipefs # set your own domain here, if id differs from FQDN minus hostname Domain = unitn.it [Mapping] Nobody-User = nobody Nobody-Group = nogroup
PAM
Il file /etc/pam.d/common-auth deve contenere:
# /etc/pam.d/common-auth - authentication settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authentication modules that define # the central authentication scheme for use on the system # (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the # traditional Unix authentication mechanisms. # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_sss.so use_first_pass # here's the fallback if no module succeeds auth requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around auth required pam_permit.so # and here are more per-package modules (the "Additional" block) auth optional pam_cap.so # end of pam-auth-update config
NFS:
Modifica le opzioni nel file /etc/default/nfs-common come segue:
# Do you want to start the statd daemon? It is not needed for NFSv4. NEED_STATD=yes # Options for rpc.statd. # Should rpc.statd listen on a specific port? This is especially useful # when you have a port-based firewall. To use a fixed port, set this # this variable to a statd argument like: "--port 4000 --outgoing-port 4001". # For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS STATDOPTS= # Do you want to start the idmapd daemon? It is only needed for NFSv4. NEED_IDMAPD=yes # Do you want to start the gssd daemon? It is required for Kerberos mounts. NEED_GSSD= yes
A questo punto è più veloce fare un riavvio della macchina che riavvirare i singoli servizi!!!!!
Join
Per testare l’autenticazione kerberos (facoltativo):
kinit [domai_user]@UNITN.IT
Mettere la password e se non ci sono errori procedere con il join:
adcli join -D unitn.it -U [Domain_Administrator] -S dcunitn01 -H $(hostname --fqdn) -O "OU=Linux,OU=LD,OU=Computers,OU=Scienze,OU=Unitn,dc=unitn,dc=it" --user-principal
Le parti in neretto vanno sostituite con i giusti valori a seconda dei casi…
Visto il bacco nella versione di samba di Debian 8 eseguire anche il comando:
net ads keytab create -P
Si ottiene in risposta un Warning ma tutto funziona a dovere.
Prova ad eseguire il comando klist -k per vedere cosa contiene il keytab
Esegui il comando:
timedatectl set-local-rtc 1
Per fare un test fare un ssh con un utente di dominio alla macchina e vedere se logga:
ssh [Domain_user]@localhost
Home e software remoto
A questo punto se tutto è andato bene possiamo montare le home e le cartelle di rete modificando il file /etc/fstab:
sci-ares.unitn.it:/local/local-ubuntu /usr/local nfs sec=sys 0 0 192.168.121.3:/mnt/Linux /usr/LDSS nfs sec=sys 0 0 sci-ares.unitn.it:/home /home nfs sec=krb5 0 0
e se tutto funziona con un mount -a si montano le home e il lavoro è finito….
aaa
Last updated: 14 Gennaio 2020 by Pierluigi Minati