Första DC-servern (PDC) DC01
På fabric-servern:
sudo virt-install --virt-type kvm --name dc01 \
--location \
https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/ \
--memory 1024 \
--vcpus 1 \
--disk pool=vmdisks,size=25,format=qcow2 \
--network bridge=br0 \
--hvm \
--graphics none \
--console pty,target_type=serial \
--extra-args "console=ttyS0"
Konfigurera Debian
Redigera nano /etc/network/interfaces och ställa in en statisk IP-adress:
# /etc/network/interfaces
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug ens2
iface ens2 inet static
address 10.115.100.4/24
gateway 10.115.100.1
# /etc/resolv.conf
search yourdomain.com
nameserver 1.1.1.1
Ställ in systemspråket på engelska för att göra det lättare att upptäcka problem i loggfilerna:
apt install locales-all
localectl set-locale LANG=en_US.utf8
localectl status
Uppdatera Debian och installera de nödvändiga administrationsverktygen:
apt update
apt install wget sudo screen nmap telnet tcpdump rsync net-tools dnsutils htop \
apt-transport-https vim gnupg lsb-release
Skapa nano /etc/sudoers.d/10-nopasswd och lägg till:
%emir ALL=(ALL) NOPASSWD: ALL
Konfigurera VIM
Öppna nano /etc/vim/vimrc och ersätt hela innehållet med:
runtime! debian.vim
syntax on
set background=dark
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
filetype plugin indent on
set encoding=utf-8
set nobackup
set nowritebackup
set showcmd
set updatetime=300
set showmatch
set ignorecase
set smartcase
set incsearch
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
Skapa en konfigurationsfil för Vim för användare nano ~/.vimrcoch lägg till:
set mouse=
set nocompatible
set cursorline
set nocursorcolumn
set nowrap
set showmode
set hlsearch
set wildmenu
set wildmode=list:longest
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
Starta om systemet och logga in som vanlig användare
I mitt fall emir.
Ställ in samma Vim-användarinställningar som ovan för den aktuella användaren.
Samba AD
För att underlätta installationen och konfigurationen bör du byta till root-användaren sudo su
Om du har klienter med Windows 11 22H2 eller senare måste du uppgradera Samba till den senaste versionen. Redigera vim /etc/apt/sources.list och lägg till följande längst ner i filen:
deb http://deb.debian.org/debian bullseye-backports main
sudo su
export DEBIAN_FRONTEND=noninteractive
apt update
apt -t bullseye-backports install acl attr samba winbind libnss-winbind krb5-user smbclient \
ldb-tools python3-cryptography ldap-utils samba-dsdb-modules samba-vfs-modules \
libpam-krb5 krb5-config
unset DEBIAN_FRONTEND
Ändra filen vim /etc/krb5.conf och ersätt hela innehållet med följande fyra rader genom att ange din organisations Active Directory-domän. default_realm måste absolut skrivas med STORA BOKSTÄVER!!
[libdefaults]
default_realm = YOURDOMAIN.COM
dns_lookup_kdc = true
dns_lookup_realm = false
Ta bort filen rm -f /etc/samba/smb.conf om den redan har genererats (den kommer att genereras på nytt av instansieringskommandot)
samba-tool domain provision --realm=YOURDOMAIN.COM --domain YOURDOMAIN --server-role=dc
Återställ administratörslösenordet:
samba-tool user setpassword administrator
Kontrollera raden dns forwarder = xxx.xxx.xxx i filen /etc/samba/smb.conf. Den måste peka på en giltig DNS-server, t.ex.:
dns forwarder = 1.1.1.1
Konfigurera om DNS-upplösningen för den lokala datorn. I nätverksgränssnittsfilen /etc/resolv.conf ersätter du följande rad med följande rad:
# /etc/resolv.conf
search yourdomain.com
nameserver 127.0.0.1
Skriptet för att skapa Samba-domäner skapar en onödig fil med namnet /var/lib/samba/private/krb5.conf. Den måste tas bort och ersättas med en symbolisk länk till filen /etc/krb5.conf:
rm -f /var/lib/samba/private/krb5.conf
ln -s /etc/krb5.conf /var/lib/samba/private/krb5.conf
Aktivera Samba så att det startar automatiskt vid nästa omstart:
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl disable samba winbind nmbd smbd
systemctl mask samba winbind nmbd smbd
Starta om datorn
Efter omstarten ska du kontrollera att Kerberos är korrekt konfigurerat och att du får ett TGT:
kinit administrator
klist
Testa DNS
dig @localhost google.fr
dig @localhost dc01.yourdomain.com
dig -t SRV @localhost _ldap._tcp.yourdomain.com
Installera och konfigurera NTP för Samba-AD
Installera NTP-paketen och välj en tidsserver på Internet:
apt install chrony
echo 'server 0.pool.ntp.org iburst' > /etc/chrony/sources.d/org-ntp-server.sources
echo 'server 1.pool.ntp.org iburst' >> /etc/chrony/sources.d/org-ntp-server.sources
echo 'server 2.pool.ntp.org iburst' >> /etc/chrony/sources.d/org-ntp-server.sources
echo 'allow 10.115.100.0/24' > /etc/chrony/conf.d/ad-dc.conf
echo 'ntpsigndsocket /var/lib/samba/ntp_signd' >> /etc/chrony/conf.d/ad-dc.conf
echo 'hwclockfile /etc/adjtime' >> /etc/chrony/conf.d/ad-dc.conf
chronyc reload sources
Ändra ägaren till den katalog som innehåller Samba-socketen som används för att autentisera NTP-tjänsten och starta om NTP:
chgrp -R _chrony /var/lib/samba/ntp_signd
systemctl restart chrony
Bind-DLZ
Även om Samba-AD som standard har en egen inbyggd DNS-server rekommenderas det att använda Bind-DLZ.
Installera bind
För enkelhetens skull gör så här: sudo su
sudo apt install bind9 bind9utils
Redigera sudo vim /etc/bind/named.conf och lägg till include "/var/lib/samba/bind-dns/named.conf";
Ändra avsnittet med inställningar i filen vim /etc/bind/named.conf.options (kom ihåg att ändra vidarebefordraren):
options {
directory "/var/cache/bind";
forwarders {
172.31.1.13;
172.31.1.15;
172.31.1.44;
};
allow-transfer {
172.31.1.13;
172.31.1.15;
172.31.1.44;
};
also-notify {
172.31.1.13;
172.31.1.15;
172.31.1.44;
};
allow-query { any; };
dnssec-validation no;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
minimal-responses yes;
};
Inaktivera IPv6-bindning i det lokala nätverket i vim /etc/default/named:
# run resolvconf?
RESOLVCONF=no
# startup options for the server
OPTIONS="-4 -u bind"
Och vim /etc/samba/smb.conf, lägg till följande rad och kommentera ut raden med DNS-vidarebefordrare:
# Global parameters
[global]
# dns forwarder = 172.31.1.13
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
idmap_ldb:use rfc2307 = yes
dns zone transfer clients allow = 172.31.1.13, 172.31.1.15, 172.31.1.44
netbios name = DC01
realm = YOURDOMAIN.COM
server role = active directory domain controller
workgroup = YOURDOMAIN
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/yourdomain.com/scripts
read only = No
Skapa två kataloger i /var/lib/samba:
sudo mkdir -p /var/lib/samba/bind-dns/dns
sudo chmod 770 /var/lib/samba/bind-dns
sudo chown -R root:bind /var/lib/samba/bind-dns
sudo chmod -R g+w /var/lib/samba/bind-dns
Konfigurera dynamiska uppdateringar av DNS-poster och starta om tjänsterna samba och bind:
samba_upgradedns --dns-backend=BIND9_DLZ
Kontrollera den angivna versionen named -v
BIND 9.16.37-Debian (version med utökat stöd)
Redigera sudo vim /var/lib/samba/bind-dns/named.conf Öppna filen och ta bort kommentartecknen framför modulen för din version av BIND. I mitt fall är det:
database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_16.so";
systemctl restart samba-ad-dc
systemctl restart bind9
Se till att det är Bind-servern som lyssnar på port 53:
netstat -tapn | grep 53
tcp 0 0 10.115.100.4:53 0.0.0.0:* LISTEN 5291/named
Testa lokala och rekursiva sökningar:
dig @localhost microsoft.com
dig @localhost srvads.mydomain.lan
dig -t SRV @localhost _ldap._tcp.mydomain.lan
Transport Layer Security
Flytta de certifikat som vi tidigare har genererat och kopierat från CA-servern:
sudo mv ca.crt dc01.* /etc/samba/tls/
sudo chown root:root /etc/samba/tls/*
sudo cp /etc/samba/tls/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Redigera vim /etc/samba/smb.conf och lägg till:
[global]
...
tls enabled = yes
tls keyfile = /etc/samba/tls/dc01.key
tls certfile = /etc/samba/tls/dc01.crt
tls cafile = /etc/samba/tls/ca.crt
...
Starta om Samba och kontrollera TLS:
sudo systemctl restart samba-ad-dc.service
sudo openssl s_client -showcerts -connect dc01.yourdomain.com:636 -CAfile /etc/samba/tls/ca.crt
Skapa din AD-struktur (LDAP)
Skapa nytt ldif fil vim ous.ldif
dn: OU=System Accounts,DC=yourdomain,DC=com
changetype: add
objectClass: top
objectClass: OrganizationalUnit
dn: OU=Corporate,DC=yourdomain,DC=com
changetype: add
objectClass: top
objectClass: OrganizationalUnit
dn: OU=External Users,DC=yourdomain,DC=com
changetype: add
objectClass: top
objectClass: OrganizationalUnit
dn: OU=Users,OU=Corporate,DC=yourdomain,DC=com
changetype: add
objectClass: top
objectClass: OrganizationalUnit
dn: OU=Groups,OU=Corporate,DC=yourdomain,DC=com
changetype: add
objectClass: top
objectClass: OrganizationalUnit
dn: OU=Computers,OU=Corporate,DC=yourdomain,DC=com
changetype: add
objectClass: top
objectClass: OrganizationalUnit
Importera LDIF till LDAP:
sudo ldbadd -H /var/lib/samba/private/sam.ldb ous.ldif
Administration
Användare och grupper
sudo samba-tool user create --userou='OU=Users,OU=Corporate' \
--mail-address=emir@yourdomain.com --given-name=Emir --surname=Tucek \
--initials=ET --nis-domain=yourdomain.com --uid-number=10000 \
--login-shell=/bin/bash --unix-home=/home/emir --gid-number=10000 emir
sudo samba-tool group add --groupou='OU=Groups,OU=Corporate' \
--description="Employees" --mail-address=employees@yourdomain.com employees
sudo samba-tool group addmembers employees emir
sudo samba-tool group addmembers "Domain Admins" emir
samba-tool user setpassword emir
sudo samba-tool user setexpiry emir --noexpir
samba-tool group listmembers "Domain Admins"
sudo samba-tool user create vmail --userou='OU=System Accounts' \
--description="Unprivileged user for mail server"
sudo samba-tool user setexpiry vmail --noexpir
Testa vmail-användaren
ldapsearch -H ldaps://dc01.yourdomain.com:636 -x -D "cn=vmail,ou=System Accounts,dc=yourdomain,dc=com" -W -s base -b "" supportedSASLMechanisms
ldapsearch -H ldaps://dc01.yourdomain.com:636 -x -D 'vmail@yourdomain.com' -W -b 'ou=Corporate,dc=yourdomain,dc=com'
DNS
Vi rekommenderar att du, i den mån det är möjligt, använder någon av zonerna enligt RFC 1918. Dessa är:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
PTR-zoner
samba-tool dns zonecreate dc01.yourdomain.com 168.192.in-addr.arpa
samba-tool dns zonecreate dc01.yourdomain.com 16.172.in-addr.arpa
samba-tool dns zonecreate dc01.yourdomain.com 10.in-addr.arpa
Skapa poster
samba-tool dns add dc01.yourdomain.com yourdomain.com mail A 10.115.100.6
samba-tool dns add dc01.yourdomain.com 10.in-addr.arpa 5.100.115 PTR dc01.yourdomain.com
samba-tool dns delete dc01.yourdomain.com 10.in-addr.arpa 5.100.115 PTR dc01.yourdomain.com
samba-tool dns add dc01.yourdomain.com 10.in-addr.arpa 4.100.115 PTR dc01.yourdomain.com
samba-tool dns add dc01.yourdomain.com 10.in-addr.arpa 5.100.115 PTR dc02.yourdomain.com
Listningszon
samba-tool dns query dc01.yourdomain.com yourdomain.com @ ALL
Samba AD DC försöker starta men misslyckas vid omstart
Skapa katalog sudo mkdir /etc/systemd/system/samba-ad-dc.service.d
Kör sudo systemctl edit samba-ad-dc och lägg till:
# /etc/systemd/system/samba-ad-dc.service.d/override.conf
[Unit]
After=network.target network-online.target bind9.service
Kommentarer