Hero Image

dc01

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

Du kan använda Markdown för att formatera din kommentar.
0 / 5000 tecken
Kommentarer modereras och kan ta lite tid innan de visas.
Loading comments...