Installazione Pacchetti e Join al dominio del DC da aggiungere
apt install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind
vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_kdc = true
dns_lookup_realm=false
- Impostare un DNS di un altro DC:
sudoedit /etc/resolv.conf
nameserver 192.168.1.111
sudoedit /etc/hosts
192.168.1.112 mydc02.example.com mydc02
- Verificare hostname locale:
hostname -f
mydc02.example.com
sudo reboot
kinit administrator@example.com
klist
- Fermare tutti i servizi samba:
systemctl stop smbd.service
systemctl stop nmbd.service
systemctl stop winbind.service
systemctl stop samba-ad-dc.service
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
ls /etc/samba
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
sudo systemctl unmask samba-ad-dc
sudo systemctl enable samba-ad-dc
samba-tool domain join example.com DC -k yes
- Impostare come DNS se stessi:
sudoedit /etc/resolv.conf
nameserver 192.168.1.112
vi /etc/samba/smb.conf
[global]
dns forwarder = 8.8.8.8
idmap_ldb:use rfc2307 = yes
template shell = /bin/bash
winbind use default domain = true
winbind offline logon = false
winbind nss info = rfc2307
winbind enum users = yes
winbind enum groups = yes
- Impostare configurazione kerberos:
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
cat /etc/krb5.conf
- Restart and enable daemons:
systemctl disable smbd nmbd winbind
systemctl enable samba-ad-dc
systemctl restart samba-ad-dc
samba_dnsupdate --use-samba-tool --verbose
- Verificare che il DC sia presente in
host example.com
Configurazione Time Sync
apt install chrony ntpdate -y
ntpdate -bu pool.ntp.org
- Configurare chrony aggiungendo le righe:
vi /etc/chrony/chrony.conf
allow 192.168.0.0/24
ntpsigndsocket /var/lib/samba/ntp_signd
chown root:_chrony /var/lib/samba/ntp_signd/
chmod 750 /var/lib/samba/ntp_signd/
systemctl enable chrony
systemctl restart chrony
journalctl -u chrony.service -f
Verifiche
samba-tool drs showrepl
Warning: No NC replicated for Connection!
- Verify Kerberos authentication
kinit administrator
klist
host example.com
ad.metrica.it has address 192.168.1.111
ad.metrica.it has address 192.168.1.120
host -t SRV _kerberos._udp.ad.metrica.it # UDP Kerberos SRV record
_kerberos._udp.ad.metrica.it has SRV record 0 100 88 metdc01.ad.metrica.it.
_kerberos._udp.ad.metrica.it has SRV record 0 100 88 metdc02.ad.metrica.it.
host -t SRV _ldap._tcp.ad.metrica.it # TCP LDAP SRV record
_ldap._tcp.ad.metrica.it has SRV record 0 100 389 metdc01.ad.metrica.it.
_ldap._tcp.ad.metrica.it has SRV record 0 100 389 metdc02.ad.metrica.it.
samba_dnsupdate --use-samba-tool --verbose
# metdc02
samba-tool user create test_user
# metdc01
samba-tool user list | grep test_user
samba-tool user delete test_user
# metdc02
samba-tool user list | grep test_user
DNS Config
- Add mydc02 as secondary Nameserver in DHCP config
Setup SYSVOL Sync
- This method ensures GPO objects consistency across domain controllers, but has one huge drawback. It works only in one direction because rsync will transfer all changes from the source DC to the destination DC when synchronizing GPO directories.
- Objects which no longer exist on the source will be deleted from the destination as well. In order to limit and avoid any conflicts, all GPO edits should be made only on the first DC.
- To start the process of SysVol replication, first generate a SSH key on the first Samba AD DC and transfer the key to the second DC by issuing the below commands.
ssh-keygen -t RSA
ssh-copy-id root@metdc02.ad.metrica.it
ssh root@metdc02.ad.metrica.it cat .ssh/authorized_keys
rsync -XAavz --chmod=775 --delete-after --progress --stats \
/var/lib/samba/sysvol/ \
root@metdc02.ad.metrica.it:/var/lib/samba/sysvol/ \
--dry-run
- If the simulation process works as expected, run the rsync command again without the --dry-run option in order to actually replicate GPO objects across your domain controllers.
rsync -XAavz --chmod=775 --delete-after --progress --stats \
/var/lib/samba/sysvol/ \
root@metdc02.ad.metrica.it:/var/lib/samba/sysvol/
- On second DC, verofy that GP policies are present:
ls /var/lib/samba/sysvol/ad.metrica.it/Policies/
cat > /etc/cron.d/samba-sysvol-replication <<EOFile
*/5 * * * * root rsync -XAavz --chmod=775 --delete-after --progress --stats /var/lib/samba/sysvol/ root@gapsrv03.ad.gapartners.eu:/var/lib/samba/sysvol/ > /var/log/samba/samba-sysvol-replication.log 2>&1
EOFile
samba-tool ntacl sysvolcheck
- Fix the DB ACL on GPO and VFS ACL errors
samba-tool ntacl sysvolreset
Riferimenti