samba4:configad
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
samba4:configad [2025/09/20 12:51] – created - external edit 127.0.0.1 | samba4:configad [2025/09/21 16:58] (current) – kurgan | ||
---|---|---|---|
Line 3: | Line 3: | ||
Configurazione di Samba 4 su Debian 13 | Configurazione di Samba 4 su Debian 13 | ||
- | Il punto di partenza e` l' | + | Il punto di partenza e` l' |
**Attenzione: | **Attenzione: | ||
- | |||
===== Prerequisiti ===== | ===== Prerequisiti ===== | ||
* Samba richiede l'uso delle ACL Posix e degli attributi estesi sul file system. Occorre quindi usare ext4 (che li supporta di default) oppure abilitarli sul file system che volete usare. | * Samba richiede l'uso delle ACL Posix e degli attributi estesi sul file system. Occorre quindi usare ext4 (che li supporta di default) oppure abilitarli sul file system che volete usare. | ||
- | * Non ci deve essere un DNS server sulla macchina che fa da AD, perche` lo fa Samba e non si puo` fare diversamente. (Tecnicamente potremmo usare BIND assieme a Samba ma trovo assai più comodo usare il DNS interno di Samba) Per impostare correttamente il DNS in modo da non avere problemi, se necessario, verificare prima come gestire dnsmasq con samba per non farli cozzare. E` importante avere il DNS di Samba funzionante senza che cozzi con altri programmi per l'uso della porta 53 perche` altrimenti poi anche il provisioning sembra funzionare ma fallisce, e i test non passeranno, a partire dal primo. Fare riferimento anche a: [[..[[/IntegrazioneSambaDnsmasq]]]] | + | * Non ci deve essere un DNS server sulla macchina che fa da AD, perche` lo fa Samba e non si puo` fare diversamente. (Tecnicamente potremmo usare BIND assieme a Samba ma trovo assai più comodo usare il DNS interno di Samba) Per impostare correttamente il DNS in modo da non avere problemi, se necessario, verificare prima come gestire dnsmasq con samba per non farli cozzare. E` importante avere il DNS di Samba funzionante senza che cozzi con altri programmi per l'uso della porta 53 perche` altrimenti poi anche il provisioning sembra funzionare ma fallisce, e i test non passeranno, a partire dal primo. Fare riferimento anche a: [[IntegrazioneSambaDnsmasq]] |
- | * I client che saranno joinati al dominio dovranno usare come DNS server quello contenuto in Samba (oppure un DNS che sappia appoggiarsi a quello contenuto in Samba). Fare riferimento anche a: [[..[[/IntegrazioneSambaDnsmasq]]]] | + | * I client che saranno joinati al dominio dovranno usare come DNS server quello contenuto in Samba (oppure un DNS che sappia appoggiarsi a quello contenuto in Samba). Fare riferimento anche a: [[IntegrazioneSambaDnsmasq]] |
* Usare NTP (o Chrony in particolare in Debian 12) perche` la sincronizzazione dell' | * Usare NTP (o Chrony in particolare in Debian 12) perche` la sincronizzazione dell' | ||
- | |||
- | |||
===== Installazione di Samba ===== | ===== Installazione di Samba ===== | ||
- | * Installare normalmente i pacchetti di Samba " | + | * Installare normalmente i pacchetti di Samba " |
- | < | + | |
apt install | apt install | ||
</ | </ | ||
* ignorare le domande relative alla config di Kerberos, che tanto dovremo rifarla dopo. | * ignorare le domande relative alla config di Kerberos, che tanto dovremo rifarla dopo. | ||
* **ATTENZIONE: | * **ATTENZIONE: | ||
- | |||
- | |||
===== Scegliere un nome DNS per il dominio Samba ===== | ===== Scegliere un nome DNS per il dominio Samba ===== | ||
Line 32: | Line 26: | ||
Prima di partire, occorre ricordare che il dominio AD funziona con il DNS, ergo e` esigente e invadente al riguardo. Occorre controllare che l' | Prima di partire, occorre ricordare che il dominio AD funziona con il DNS, ergo e` esigente e invadente al riguardo. Occorre controllare che l' | ||
- | Qui le best practice sono tante e non tutte concordano, ma la cosa importante e` che il nome del dominio AD **NON SI CAMBIA MAI PIU`** dopo averlo impostato. La best practice al 2025 (vedi https:// | + | Qui le best practice sono tante e non tutte concordano, ma la cosa importante e` che il nome del dominio AD **NON SI CAMBIA MAI PIU`** dopo averlo impostato. La best practice al 2025 (vedi [[https:// |
- | Se usiamo un dominio " | + | Se usiamo un dominio " |
In questo esempio useremo **ad.sambalab.internal** come dominio AD | In questo esempio useremo **ad.sambalab.internal** come dominio AD | ||
Line 42: | Line 36: | ||
Essendo una nuova installazione, | Essendo una nuova installazione, | ||
- | * Fermare samba e winbind (notare che samba-ad-dc non è avviato in quanto non è configurato ancora) | + | * Fermare samba e winbind (notare che samba-ad-dc non è avviato in quanto non è configurato ancora)< |
- | < | + | |
systemctl stop smbd nmbd winbind | systemctl stop smbd nmbd winbind | ||
</ | </ | ||
* Assicurarsi che sia fermo. Se ci sono processi smbd, nmbd, o winbindd, killarli senza pietà. | * Assicurarsi che sia fermo. Se ci sono processi smbd, nmbd, o winbindd, killarli senza pietà. | ||
* Cancellare o rinominare il file ''/ | * Cancellare o rinominare il file ''/ | ||
- | * Se ci sono, cancellare tutti i files tdb e ldb. Un metodo per sapere dove cercarli è questo:'' | + | * Se ci sono, cancellare tutti i files tdb e ldb. Un metodo per sapere dove cercarli è questo:'' |
- | < | + | |
smbd -b | egrep " | smbd -b | egrep " | ||
</ | </ | ||
* Cancellare o rinominare, se c'è, il file ''/ | * Cancellare o rinominare, se c'è, il file ''/ | ||
- | * Verificare in ''/ | + | * Verificare in ''/ |
- | < | + | |
192.168.1.100 dc1.ad.sambalab.internal dc1 | 192.168.1.100 dc1.ad.sambalab.internal dc1 | ||
</ | </ | ||
* Verificare che il comando '' | * Verificare che il comando '' | ||
- | * Effettuare il provisioning del dominio con il comando samba-tool (Se il server ha piu` di una NIC, scegliere quella giusta per Samba a mezzo delle due option relative alle interfacce. Se ne ha una sola non e` necessario) | + | * Effettuare il provisioning del dominio con il comando samba-tool (Se il server ha piu` di una NIC, scegliere quella giusta per Samba a mezzo delle due option relative alle interfacce. Se ne ha una sola non e` necessario)< |
- | < | + | |
samba-tool domain provision --use-rfc2307 --interactive | samba-tool domain provision --use-rfc2307 --interactive | ||
</ | </ | ||
- | * Rispondere alle domande (e ricordarsi la password impostata per administrator). Attenzione alla policy di default per la password: almeno 8 caratteri con almeno un simbolo o un numero e una maiuscola e una minuscola se ricordo bene. Qui ho un esempio dove tutte le risposte sono default (vuote) tranne la password. | + | * Rispondere alle domande (e ricordarsi la password impostata per administrator). Attenzione alla policy di default per la password: almeno 8 caratteri con almeno un simbolo o un numero e una maiuscola e una minuscola se ricordo bene. Qui ho un esempio dove tutte le risposte sono default (vuote) tranne la password.< |
- | < | + | |
Realm [AD.SAMBALAB.INTERNAL]: | Realm [AD.SAMBALAB.INTERNAL]: | ||
Domain [AD]: | Domain [AD]: | ||
Line 74: | Line 63: | ||
Il tool di provisioning avra` creato una serie di cose: | Il tool di provisioning avra` creato una serie di cose: | ||
+ | |||
* un file / | * un file / | ||
* un file / | * un file / | ||
Line 80: | Line 70: | ||
* Tre utenti in Samba: administrator, | * Tre utenti in Samba: administrator, | ||
* Un servizio DNS locale (integrato in Samba) che risolve i nomi necessari per il funzionamento del dominio AD. Vedremo poi come usarlo. | * Un servizio DNS locale (integrato in Samba) che risolve i nomi necessari per il funzionamento del dominio AD. Vedremo poi come usarlo. | ||
- | |||
===== Configurazione di Kerberos ===== | ===== Configurazione di Kerberos ===== | ||
Line 86: | Line 75: | ||
Samba usa kerberos internamente per autenticare utenti, macchine, ecc. (Sono ignorante per cui non so esattamente come, quando, e perché. Tuttavia, è opportuno che kerberos funzioni localmente, quindi provvediamo a copiare (non symlinkare, ma copiare!) la configurazione autogenerata da Samba durante il provisioning dentro a /etc, come segue) | Samba usa kerberos internamente per autenticare utenti, macchine, ecc. (Sono ignorante per cui non so esattamente come, quando, e perché. Tuttavia, è opportuno che kerberos funzioni localmente, quindi provvediamo a copiare (non symlinkare, ma copiare!) la configurazione autogenerata da Samba durante il provisioning dentro a /etc, come segue) | ||
- | < | + | < |
cp / | cp / | ||
</ | </ | ||
Line 96: | Line 85: | ||
* Installare il pacchetto " | * Installare il pacchetto " | ||
* Creare la directory ''/ | * Creare la directory ''/ | ||
- | * Se questa directory esiste già, vuole dire che abbiamo già lanciato Samba almeno una volta. Non è un problema, basta mettere a posto i permessi. | + | * Se questa directory esiste già, vuole dire che abbiamo già lanciato Samba almeno una volta. Non è un problema, basta mettere a posto i permessi.< |
- | < | + | |
mkdir / | mkdir / | ||
chgrp _chrony / | chgrp _chrony / | ||
chmod 750 / | chmod 750 / | ||
</ | </ | ||
- | * Modificarela | + | * Modificare la config di chrony per leggere questo socket. Per farlo possiamo creare un nostro file di conf dentro |
- | < | + | |
ntpsigndsocket | ntpsigndsocket | ||
allow all | allow all | ||
Line 110: | Line 97: | ||
* Verificare nel syslog che Chrony riporti questo messaggio: '' | * Verificare nel syslog che Chrony riporti questo messaggio: '' | ||
- | * Per verificare se un client joinato al dominio legge correttamente NTP, eseguire un CMD come amministratore e usare il comando | + | * Per verificare se un client joinato al dominio legge correttamente NTP, eseguire un CMD come amministratore e usare il comando< |
- | < | + | |
w32tm /resync | w32tm /resync | ||
</ | </ | ||
- | |||
===== Reimpostare il resolver DNS ===== | ===== Reimpostare il resolver DNS ===== | ||
Line 123: | Line 108: | ||
Quindi, la cosa piu` facile da fare e` impostare sul nostro domain controller in ''/ | Quindi, la cosa piu` facile da fare e` impostare sul nostro domain controller in ''/ | ||
- | < | + | < |
search ad.sambalab.internal | search ad.sambalab.internal | ||
nameserver 127.0.0.1 | nameserver 127.0.0.1 | ||
</ | </ | ||
- | Di default il DNS interno di Samba è autoritativo per il nostro dominio AD (in questo esempio **ad.sambalab.internal**) e passa ad un altro DNS, configurato in smb.conf, tutte le altre richieste. | + | Di default il DNS interno di Samba è autoritativo per il nostro dominio AD (in questo esempio **ad.sambalab.internal**) e passa ad un altro DNS, configurato in smb.conf, tutte le altre richieste. |
Quando configureremo i client potremo farli puntare al nostro DC Samba oppure farli puntare ad un altro DNS purché questo altro DNS inoltri le richieste per il nostro dominio AD (**ad.sambalab.internal**) al dns che gira su Samba sul DC. | Quando configureremo i client potremo farli puntare al nostro DC Samba oppure farli puntare ad un altro DNS purché questo altro DNS inoltri le richieste per il nostro dominio AD (**ad.sambalab.internal**) al dns che gira su Samba sul DC. | ||
Notare che di default il DNS in Samba non contiene una zona " | Notare che di default il DNS in Samba non contiene una zona " | ||
- | |||
===== Avviare Samba ===== | ===== Avviare Samba ===== | ||
- | Dal momento che abbiamo modificato la config in resolv.conf, | + | Dal momento che abbiamo modificato la config in resolv.conf, |
- | Notare che vengono avviati automaticamente anche smbd e winbindd in questa configurazione. | + | < |
- | < | + | |
systemctl start samba-ad-dc | systemctl start samba-ad-dc | ||
host google.it | host google.it | ||
</ | </ | ||
- | |||
===== Configurare nsswitch | ===== Configurare nsswitch | ||
Per poter vedere correttamente gli utenti di Samba dal sistema (sulla macchina stessa del DC AD),e` sufficiente verificare che winbindd stia girando (ps ax) e poi modificare il file ''/ | Per poter vedere correttamente gli utenti di Samba dal sistema (sulla macchina stessa del DC AD),e` sufficiente verificare che winbindd stia girando (ps ax) e poi modificare il file ''/ | ||
- | < | + | |
+ | < | ||
passwd: | passwd: | ||
group: | group: | ||
</ | </ | ||
+ | |||
(occorre che le librerie libnss-winbind libpam-winbind siano installate) | (occorre che le librerie libnss-winbind libpam-winbind siano installate) | ||
** Questa impostazione non è più necessaria, è già configurato in modo corretto** | ** Questa impostazione non è più necessaria, è già configurato in modo corretto** | ||
- | |||
- | |||
===== Test ===== | ===== Test ===== | ||
Line 163: | Line 145: | ||
Prima di tutto il test con smbclient, che si fa cosi`: | Prima di tutto il test con smbclient, che si fa cosi`: | ||
- | < | + | |
+ | < | ||
smbclient -L localhost -N | smbclient -L localhost -N | ||
</ | </ | ||
Line 169: | Line 152: | ||
L' | L' | ||
- | < | + | < |
Anonymous login successful | Anonymous login successful | ||
Line 182: | Line 165: | ||
Poi l' | Poi l' | ||
- | < | + | < |
smbclient // | smbclient // | ||
</ | </ | ||
Line 188: | Line 171: | ||
L' | L' | ||
- | < | + | < |
Enter Administrator' | Enter Administrator' | ||
Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] | Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] | ||
Line 198: | Line 181: | ||
Passo successivo il test del DNS. Queste query devono dare tutte risposte sensate e mai un not found. | Passo successivo il test del DNS. Queste query devono dare tutte risposte sensate e mai un not found. | ||
- | < | + | |
+ | < | ||
host -t SRV _ldap._tcp.ad.sambalab.internal. | host -t SRV _ldap._tcp.ad.sambalab.internal. | ||
host -t SRV _kerberos._udp.ad.sambalab.internal. | host -t SRV _kerberos._udp.ad.sambalab.internal. | ||
Line 207: | Line 191: | ||
La procedura di test per Kerberos richiede due comandi, kinit e klist: | La procedura di test per Kerberos richiede due comandi, kinit e klist: | ||
- | < | + | |
+ | < | ||
kinit administrator@AD.SAMBALAB.INTERNAL | kinit administrator@AD.SAMBALAB.INTERNAL | ||
</ | </ | ||
+ | |||
Notare che il dominio deve essere in maiuscolo (e può essere omesso, dovrebbe risolverlo da solo) | Notare che il dominio deve essere in maiuscolo (e può essere omesso, dovrebbe risolverlo da solo) | ||
- | < | + | |
+ | < | ||
klist | klist | ||
</ | </ | ||
+ | |||
Viene mostrato un output tipo questo: | Viene mostrato un output tipo questo: | ||
- | < | + | |
+ | < | ||
Ticket cache: FILE:/ | Ticket cache: FILE:/ | ||
Default principal: administrator@AD.SAMBALAB.INTERNAL | Default principal: administrator@AD.SAMBALAB.INTERNAL | ||
Line 224: | Line 213: | ||
</ | </ | ||
+ | ===== Test dell' | ||
- | + | | |
- | ===== Test dell' | + | |
- | + | ||
- | | + | |
- | < | + | |
wbinfo --ping-dc | wbinfo --ping-dc | ||
</ | </ | ||
- | + | | |
- | | + | |
- | < | + | |
wbinfo -u | wbinfo -u | ||
Line 255: | Line 239: | ||
read-only domain controllers | read-only domain controllers | ||
dnsupdateproxy | dnsupdateproxy | ||
- | |||
</ | </ | ||
- | * Verificare se NSS vede utenti e gruppi di Samba | + | * Verificare se NSS vede utenti e gruppi di Samba< |
- | < | + | |
id administrator | id administrator | ||
| | ||
Line 294: | Line 276: | ||
default: | default: | ||
</ | </ | ||
+ | |||
samba4/configad.1758372660.txt.gz · Last modified: by 127.0.0.1