Questa è una vecchia versione del documento!
Samba come controller di dominio active directory
Questo progetto prevede l'installazione di Debian
l'avvio di samba come controller di dominio
bind come server dns del dominio
Scegliere la lingua
impostare hostname e dominio. possiamo già scegliere l'FQDN oppure lasciare debian come predefinito. Tanto verrà tutto modificato e controllato dopo.
configurare rete: se è attivo un dhcp si acquisirà automaticamente un indirizzo altrimenti si imposta un IP (nel mio caso di classe C). verrà comunque tutto controllato e corretto dopo.
proseguire con il resto dell'installazione. (non rivedo qui i passaggi fondamentali).
disattivazione ipv6 se non lo si vuole usare(aggiungere a /etc/sysctl.conf):
net.ipv6.conf.all.disable_ipv6 = 1
rendo immediatamente esecutiva la disattivazione del protocollo ipv6
sysctl -p
per comodità mia permetto a root di accedere in ssh (modifico /etc/ssh/sshd_config )
permitRootLogin yes
riavvio il servizio per attivare la modifica
systemctl restart sshd
aggiorno i repository
apt-get update
faccio l'upgrade del sistema
apt-get upgrade
imposto il nome host:
hostnamectl --static set-hostname adns1.dominio.mio
modifico /etc/hosts lasciando solo:
127.0.0.1 localhost
e commentando tutto il resto
.
assicurarsi che il servizio systemd-resolved sia disablilitato
systemctl status systemd-resolved.service
Il resolver DNS deve puntare al server DNS che verrà utilizzato in seguito come server d'inoltro quindi imposto nel /etc/resolv.conf :
nameserver 192.168.1.9
oppure anche altro dns pubblico. nel mio caso ho già un dns mio che risponde internamente al quell'indirizzo
assegnare ip statico si /etc/network/interface o su file specifico /etc/network/interface/nome
installo chrony come client e server NTP
apt-get install chrony
disabilito temporaneamente il servizio
systemctl disable --now chrony
installo il server DNS
apt-get install bind9
disabilito temporaneamente il servizio
systemctl disable --now named
installo samba che diventerà il mio server di dominio che implementa Active Directory e Kerberos che attiverà il servizio di tiket per la sicurezza di accesso alla directory
DEBIAN_FRONTEND=noninteractive apt-get install -y samba smbclient winbind krb5-user krb5-config
disabilito temporaneamente il servizio
systemctl disable --now samba-ad-dc.service smbd.service nmbd.service winbind.service
Connettersi da linux verso cartelle condivise. (non è banale) almeno per quello che ho capito io.
Perchè se fossimo semplici utenti Windows non ci sarebbero problemi a collegarsi con l'esplorazione risorse a cartelle condivise senza protezioni quindi libere
Ma per linux dobbiamo far installare all'amministratore i seguenti pacchetti:
S.O.: Debian 8
Desktop: Xfce
installare fusesmb e smbclient
apt-get install fusesmb smbclient
accertarsi che il modulo fusesmb sia attivo all'avvio
far creare all'amministratore un gruppo utente “fuse”
groupadd fuse
far aggiungere dall'amministratore l'utente linux al gruppo “fuse” appena creato
usermod -a -G fuse nomesempliceutente
da utente creare una directory nella quale montare le cartelle condivise
mkdir /home/utente/CONDIVISI
infine creare il file /home/nomeutente/.smb/fusesmb.conf come semplice utente linux
vi /home/nomeutente/.smb/fusesmb.conf
inserire
[/192.168.1.xxx/cartelladiretecondivisa]
eseguire da semplice utente
fusesmb /home/utente/CONDIVISI
Per rendere automatica la connessione al login dell'utente con xfce eseguire i seguenti passaggi:
menu
impostazioni
sessione e avvio
Avvio automatico
aggiungi
nome:quello che vuoi
descrizione:quello che vuoi
comando:/usr/bin/fusesmb /home/utente/CONDIVISI
Non so se è una mancanza di xfce però è veramente macchinoso…
Questa parte è sperimentale e molto ambiziosa. (su Centos 7)
yum install krb5-workstation
modificare il file /etc/krb5.conf
yum install samba samba-client samba-winbind
modificare il file /etc/samba/smb.conf
modificare il file /etc/nsswith.conf
montare la cartella da condividere con queste opzioni:
mount /dev/drbd1 /cartella/ -o rw,acl,user_xattr
impostare subito l'hostname, l'ip statico, e il resolv.conf e il file hosts
disabilitare selinux
controllare la data e l'orario: l'ora non deve essere oltre i 5 minuti di differenza dal dominio
sistemare i repository
preparare lo storage facendolo trovare montato nel modo giusto
mount /dev/xxx /directorydacondividere -o rw,acl,user_xattr
disabilitare NetworkManager
yum install krb5-workstation pam_krb5 samba samba-client samba-winbind samba-winbind-clients
modificare i file
vi /etc/krb5.conf vi /etc/samba/smb.conf vi /etc/nsswitch.conf
avviare saba e winbind
service smb start service winbind start
aggiungere al dominio
net ads join -U Administrator
per verificare
getent passwd getent group wbinfo -u wbinfo -r net ads testjoin kinit -V Administrator@DOMINIO
eseguire necessariamente
setfacl -m g:DOMINIOSENZAESTENSIONE^domain\ admins:rwx /directorydacondividere setfacl -d -m g:DOMINIOSENZAESTENSIONE^domain\ admins:rwx /directorydacondividere
inserire nella sezione global di smb.conf:
vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes
commento
quardare sopratutto qui:
https://www.lorenzomonti.it/sistemi-operativi/creare-un-file-server-integrato-con-active-directory-utilizzando-linux-e-samba/
https://www.linuxtrent.it/documentazione/gnulinux/samba-come-condividere-cartelle-e-gestire-le-acl-estese-di-m-sfruttando-gli
http://www.miamammausalinux.org/2009/05/samba-e-active-directory-3-di-3-configurare-pam-per-lautenticazione-locale/
https://www.ictpower.it/guide/autenticazione-di-sistemi-linux-verso-un-dominio-active-directory-con-winbind.htm
commento
authconfig-tui
[x] use winbind [x] Usa password MD5 [x] Usa password shadow [x] Usa l'autenticazione winbind
avanti
Modello di sicurezza (*) ads
Dominio: mettere il nome minuscolo del dominio senza .local Controllori di dominio: mettere il nome del server.dominio.local Reame ADS: mettere il nome MAIUSCOLO del dominio con anche .LOCAL (*) /bin/bash
unione al dominio
Si
mettere la password dell'Administrator
ok ok
verificare la riuscita della connessione al dominio windows
net ads testjoin
deve dire “Join is OK”
verificare anche la lettura dell'elenco gruppi e utenti con:
wbinfo -g wbinfo -u
installazione impostando l'hostname nodo.dominio.local
gateway ip 1
netmask ip 42
non modificare file hosts ne resolv.conf
installazione pacchetti
authconfig-tui
inserire associazione nome ip nel dns del server windows a manina
verificare net ads testjoin frequentemente e ping vari.
collegare seconda scheda di rete
fdisk
creare drbd con nomi host completi nodo.dominio.local
dare i diritti grant
net rpc rights grant "DOMINIO\Domain Admins" SeDiskOperatorPrivilege -U "DOMINIO\amministratore"
file smb.conf aggiungere:
vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes winbind separator = ^ winbind enum users = yes winbind enum groups = yes
verificare frequentemente ping e connessione a dominio
una volta montata la directory
setfacl -d -m g:DOMINIO^domain\ admins:rwx /directory
una volta partita la condivisione controllare i diritti di condivisione e farli come nel vecchio server
poi da windows cambiare il propietario e assegnare i vari diritti ai gruppi
crare il cluster e le risorse.
prima di eseguire il cluster auth attivare il servizio pcsd
systemctl enable pcsd.service systemctl start pcsd.service
verificare i nodi con i nomi senza estensione dominio
pcs cluster auth nomenodo1 nomenodo2
creare il cluster
pcs cluster setup --name nomecluster nomenodo1 nomenodo2
avviare anche pacemaker su entrambi i nodi
pcs cluster start --all
con centos 7 per dare i diritti sulla partella per gli utenti di dominio:
chown "root:NOMEDOMINIO\\Domain Admins" /PERCORSOdirectory
dopo aver installato:
krb5-user realmd sssd-tools adcli packagekit samba-common samba-common-bin samba-libs resolvconf krb5-config winbind smblient
ho eseguito
realm join --user=mionome nomedominio.local
il 26-02-20 ho risolto il problema del mancato allineamento con i diritti di accesso ai dati del server 1 e del server cen2.
il problema era data dalla mappa di accesso ai file condivisi di samba.
la mappa viene gestita da winbind nel file /var/lib/samba/winbindd_idmap.tdb
viene gestita in quel file di default. altrimenti dovrebbe collegarsi al dominio, ma bisogna impostare diversamente da come ho fatto io il file smb.conf o comunque non erano allineati i file dei due server, probabilmente perchè quando davo i diritti di accesso su uno, l'altro era spento o non so…
fatto sta che è stato necessario allineare i due file dei due server nel seguente modo
fermare il servizio winbind e samba
backup di un file attraverso il comando
net idmap dump > nomefilebackup.bk
copiare il file sul server da allineare con scp
poi importare il file
net idmap restore nomefilebackup.bk
applicare la modifica con
net cache flush
riavviare i servizi winbind e samba