Aggiornamento di un Domain Controller Samba: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
| (4 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
samba-tool dbcheck --cross-ncs | samba-tool dbcheck --cross-ncs | ||
samba-tool dbcheck --cross-ncs --fix --yes | samba-tool dbcheck --cross-ncs --fix --yes | ||
* Verificare lo stato delle repliche: | * Verificare lo stato delle repliche: | ||
| Line 28: | Line 27: | ||
::L'elenco dei NC si ottiene con | ::L'elenco dei NC si ottiene con | ||
::<pre> samba-tool drs showrepl grep '^DC\|^CN'| sort | uniq</pre> | ::<pre> samba-tool drs showrepl grep '^DC\|^CN'| sort | uniq</pre> | ||
for NC in $(samba-tool drs showrepl 2>&1 |grep '^DC\|^CN'| sort | uniq); do samba-tool drs replicate crodc01.croalliance.priv crodc02.croalliance.priv $NC -U MYDOMAIN\\Administrator%mypassword; done | |||
=Upgrade dei DC non FMSO= | =Upgrade dei DC non FMSO= | ||
* Sui vari DC procedere all'upgrade, lasciando per ultimo quello che possiede i FSMO Roles | * Sui vari DC procedere all'upgrade, lasciando per ultimo quello che possiede i FSMO Roles | ||
* Fare un backup | |||
<pre> | |||
mkdir /root/samba-backup | |||
sudo samba-tool domain backup online --targetdir=/root/samba-backup --server=metdc01 -U METRICA\\Administrator | |||
</pre> | |||
* Fare il demote del DC: | * Fare il demote del DC: | ||
samba-tool domain demote -U METRICA\\Administrator | samba-tool domain demote -U METRICA\\Administrator | ||
| Line 89: | Line 96: | ||
* Eliminare i vecchi DB: | * Eliminare i vecchi DB: | ||
for DIR in $(smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR" | tr -s ' '| cut -f 3 --delimiter=' '); do echo CLEANING $DIR; cd $DIR; find . -name \*.tdb -exec /bin/rm -f '{}' \;; find . -name \*.ldb -exec /bin/rm -f '{}' \;; done | for DIR in $(smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR" | tr -s ' '| cut -f 3 --delimiter=' '); do echo CLEANING $DIR; cd $DIR; find . -name \*.tdb -exec /bin/rm -f '{}' \;; find . -name \*.ldb -exec /bin/rm -f '{}' \;; done | ||
* Testare facendo un backup online del dominio dal DC che ha gli FSMO Roles: | * Testare facendo un backup online del dominio dal DC che ha gli FSMO Roles: | ||
mkdir /tmp/testbackup | mkdir /tmp/testbackup | ||
| Line 103: | Line 108: | ||
* OPZIONALE: Se va a buon fine, fare il demote del DC temporaneo FORZATO dal DC che i ruoli FMS: | * OPZIONALE: Se va a buon fine, fare il demote del DC temporaneo FORZATO dal DC che i ruoli FMS: | ||
samba-tool domain demote -U METRICA\\Administrator --remove-other-dead-server=tmpdc | samba-tool domain demote -U METRICA\\Administrator --remove-other-dead-server=tmpdc | ||
* Di nuovo: | * Di nuovo: | ||
* Fermare tutti i servizi samba: | * Fermare tutti i servizi samba: | ||
| Line 131: | Line 134: | ||
cp /etc/samba/smb.conf.old /etc/samba/smb.conf | cp /etc/samba/smb.conf.old /etc/samba/smb.conf | ||
systemctl enable samba-ad-dc | systemctl enable samba-ad-dc | ||
systemctl unmask samba-ad-dc | systemctl unmask samba-ad-dc | ||
systemctl enable samba-ad-dc | systemctl enable samba-ad-dc | ||
systemctl start samba-ad-dc | systemctl start samba-ad-dc | ||
* Verificare sul Dc locale e quello fmso: | * Verificare sul Dc locale e quello fmso: | ||
samba-tool drs showrepl | samba-tool drs showrepl | ||
| Line 148: | Line 150: | ||
nameserver 192.168.1.120 | nameserver 192.168.1.120 | ||
=Upgrade del DC FMSO | * Forzare il sync del sysvol dal DC FMSO | ||
=Upgrade del DC FMSO= | |||
* Per l'ultimo DC, trasferire i ruoli FMS su un altro Dc già aggiornato. | * Per l'ultimo DC, trasferire i ruoli FMS su un altro Dc già aggiornato. | ||
| Line 176: | Line 180: | ||
</pre> | </pre> | ||
* '''FARE LA COPIA DEL FILE idmap.tdb altrimenti se lo si cancella e lo ricrea, i diritti saranno tutti sballati, e poi forzare alla fine il sync sugli altri DC''' | |||
<pre> | |||
mkdir /root/samba-backup | |||
tdbbackup -s .bak /var/lib/samba/private/idmap.ldb | |||
cp /var/lib/samba/private/idmap.ldb.bak /root/samba-backup | |||
</pre> | |||
* Ora è possibile fare l'upgrade anche dell'ultimo DC come al punto precedente. | * Ora è possibile fare l'upgrade anche dell'ultimo DC come al punto precedente. | ||
* Al termine ripristinare il file idmap.ldb e forzare il sync sugli altri dc<pre> | |||
cp /root/samba-backup/idmap.ldb.bak /var/lib/samba/private/idmap.ldb | |||
ls /var/lib/samba/private/idmap.ldb | |||
diff /root/samba-backup/idmap.ldb.bak /var/lib/samba/private/idmap.ldb | |||
net cache flush | |||
/usr/local/sbin/samba-sysvol-sync | |||
</pre> | |||
=Riferimenti= | =Riferimenti= | ||
*[https://wiki.samba.org/index.php/Upgrading_a_Samba_AD_DC Upgrading a Samba AD DC - SambaWiki] | *[https://wiki.samba.org/index.php/Upgrading_a_Samba_AD_DC Upgrading a Samba AD DC - SambaWiki] | ||
Latest revision as of 14:46, 11 April 2024
Preparazione
- Verificare il database su *tutti* i DC, ed eventualmente fare fix degli errori
samba-tool dbcheck --cross-ncs samba-tool dbcheck --cross-ncs --fix --yes
- Verificare lo stato delle repliche:
samba-tool drs showrepl
- Deve dare per tutti i NC
Last attempt @ Mon Nov 7 17:45:37 2022 CET was successful
- Se non va, forzare la replica usando
samba-tool drs replicate DC1 DC2 NC
- Dove:
- DC1=domain controller DESTINAZIONE
- DC2=domain controller SORGENTE
- NC=Naming Context, cioè le 5 stringhe che appaiono nelle prime righe di ogni NEGHBOURS del comando samba-tool drs showrepl', ed esempio:
CN=Configuration,DC=ad,DC=metrica,DC=it CN=Schema,CN=Configuration,DC=ad,DC=metrica,DC=it DC=ad,DC=metrica,DC=it DC=DomainDnsZones,DC=ad,DC=metrica,DC=it DC=ForestDnsZones,DC=ad,DC=metrica,DC=it
- L'elenco dei NC si ottiene con
samba-tool drs showrepl grep '^DC\|^CN'| sort | uniq
for NC in $(samba-tool drs showrepl 2>&1 |grep '^DC\|^CN'| sort | uniq); do samba-tool drs replicate crodc01.croalliance.priv crodc02.croalliance.priv $NC -U MYDOMAIN\\Administrator%mypassword; done
Upgrade dei DC non FMSO
- Sui vari DC procedere all'upgrade, lasciando per ultimo quello che possiede i FSMO Roles
- Fare un backup
mkdir /root/samba-backup sudo samba-tool domain backup online --targetdir=/root/samba-backup --server=metdc01 -U METRICA\\Administrator
- Fare il demote del DC:
samba-tool domain demote -U METRICA\\Administrator
- Fermare tutti i servizi samba:
systemctl stop smbd.service systemctl stop nmbd.service systemctl stop winbind.service systemctl stop samba-ad-dc.service
- Verificare:
ps ax | egrep "samba|smbd|nmbd|winbindd"
- Rinominare il file di configurazione:
mv $(smbd -b | grep "CONFIGFILE" | tr -s ' '| cut -f 3 --delimiter=' ') $(smbd -b | grep "CONFIGFILE" | tr -s ' '| cut -f 3 --delimiter=' ').old
- Verificare
ls /etc/samba
- Eliminare i vecchi DB:
for DIR in $(smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR" | tr -s ' '| cut -f 3 --delimiter=' '); do echo CLEANING $DIR; cd $DIR; find . -name \*.tdb -exec /bin/rm -f '{}' \;; find . -name \*.ldb -exec /bin/rm -f '{}' \;; done
- Impostare un DNS di un altro DC:
vi /etc/resolv.conf
nameserver 192.168.1.111
- Aggiornare i pacchetti
- In caso di upgrade
apt update && apt-dist-upgrade
- In caso di installazione da backports, accettare di metter eil nuovo smb.conf:
apt install -t bullseye-backports samba krb5-user krb5-config winbind libpam-winbind libnss-winbind
- se fallisce, fare come dice:
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf apt install -t bullseye-backports samba krb5-user krb5-config winbind libpam-winbind libnss-winbind
- Di nuovo:
- Fermare tutti i servizi samba:
systemctl stop smbd.service systemctl stop nmbd.service systemctl stop winbind.service systemctl stop samba-ad-dc.service
- Verificare:
ps ax | egrep "samba|smbd|nmbd|winbindd"
- Rimuovere il file di configurazione:
rm $(smbd -b | grep "CONFIGFILE" | tr -s ' '| cut -f 3 --delimiter=' ')
- Verificare
ls /etc/samba
- Eliminare i vecchi DB:
for DIR in $(smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR" | tr -s ' '| cut -f 3 --delimiter=' '); do echo CLEANING $DIR; cd $DIR; find . -name \*.tdb -exec /bin/rm -f '{}' \;; find . -name \*.ldb -exec /bin/rm -f '{}' \;; done
- Testare facendo un backup online del dominio dal DC che ha gli FSMO Roles:
mkdir /tmp/testbackup sudo samba-tool domain backup online --targetdir=/tmp/testbackup --server=metdc01 -U METRICA\\Administrator
- SE FALLISCE, NON andare avanti. Vedi Riferimenti per fare in place upgrade.
- OPZIONALE: Testare un domain Join temporaneo
mkdir /tmp/testjoin samba-tool domain join METRICA DC -U METRICA\\Administrator --option="netbios name = tmpdc" --targetdir=/tmp/testjoin/
- OPZIONALE: Se va a buon fine, fare il demote del DC temporaneo FORZATO dal DC che i ruoli FMS:
samba-tool domain demote -U METRICA\\Administrator --remove-other-dead-server=tmpdc
- Di nuovo:
- Fermare tutti i servizi samba:
systemctl stop smbd.service systemctl stop nmbd.service systemctl stop winbind.service systemctl stop samba-ad-dc.service
- Verificare:
ps ax | egrep "samba|smbd|nmbd|winbindd"
- Rimuovere il file di configurazione:
rm $(smbd -b | grep "CONFIGFILE" | tr -s ' '| cut -f 3 --delimiter=' ')
- Verificare
ls /etc/samba
- Eliminare i vecchi DB:
for DIR in $(smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR" | tr -s ' '| cut -f 3 --delimiter=' '); do echo CLEANING $DIR; cd $DIR; find . -name \*.tdb -exec /bin/rm -f '{}' \;; find . -name \*.ldb -exec /bin/rm -f '{}' \;; done
- Fare il join vero:
samba-tool domain join METRICA DC -U METRICA\\Administrator
- Copiare il file di config originale:
cp /etc/samba/smb.conf.old /etc/samba/smb.conf
systemctl enable samba-ad-dc systemctl unmask samba-ad-dc systemctl enable samba-ad-dc systemctl start samba-ad-dc
- Verificare sul Dc locale e quello fmso:
samba-tool drs showrepl
- Verificare il database su *tutti* i DC, ed eventualmente fare fix degli errori
samba-tool dbcheck --cross-ncs samba-tool dbcheck --cross-ncs --fix --yes
- Impostare se stessi come DNS
vi /etc/resolv.conf
nameserver 192.168.1.120
- Forzare il sync del sysvol dal DC FMSO
Upgrade del DC FMSO
- Per l'ultimo DC, trasferire i ruoli FMS su un altro Dc già aggiornato.
- Da un DC aggiornato, verificare che tutti i 7 ruoli siano elencati:
samba-tool fsmo show | cut -f 1 --delimiter=' ' | wc -l 7
- Verificare che siano assegnati al DC che si pensa:
samba-tool fsmo show | grep -i --color metdc01
Dal DC a cui si vogliono trasferire i ruoli:
samba-tool fsmo transfer --role=all -U METRICA\\Administrator
- Verificare:
samba-tool fsmo show
- Oppure:
samba-tool fsmo transfer --role=all -U METRICA\\Administrator
This DC already has the 'rid' FSMO role This DC already has the 'pdc' FSMO role This DC already has the 'naming' FSMO role This DC already has the 'infrastructure' FSMO role This DC already has the 'schema' FSMO role This DC already has the 'domaindns' FSMO role This DC already has the 'forestdns' FSMO role
- FARE LA COPIA DEL FILE idmap.tdb altrimenti se lo si cancella e lo ricrea, i diritti saranno tutti sballati, e poi forzare alla fine il sync sugli altri DC
mkdir /root/samba-backup tdbbackup -s .bak /var/lib/samba/private/idmap.ldb cp /var/lib/samba/private/idmap.ldb.bak /root/samba-backup
- Ora è possibile fare l'upgrade anche dell'ultimo DC come al punto precedente.
- Al termine ripristinare il file idmap.ldb e forzare il sync sugli altri dc
cp /root/samba-backup/idmap.ldb.bak /var/lib/samba/private/idmap.ldb ls /var/lib/samba/private/idmap.ldb diff /root/samba-backup/idmap.ldb.bak /var/lib/samba/private/idmap.ldb net cache flush /usr/local/sbin/samba-sysvol-sync