---
title: dc02
url: 'https://tucek.me/sv/tech/servers/dc02'
markdown: 'https://tucek.me/sv/tech/servers/dc02.md'
lang: sv
date: '2026-08-30'
description: 'Sekundär DC (PDC)-server DC01 På fabric-servern: sudo virt-install --virt-type kvm --name dc02 \ --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 \ --…'
---

# dc02

## Sekundär DC (PDC)-server DC01

På fabric-servern:

```command
sudo virt-install --virt-type kvm --name dc02 \
  --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.5/24
  gateway 10.115.100.1
```

```
# /etc/resolv.conf
search yourdomain.com
nameserver 10.115.100.4
```

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 ~/.vimrc`och 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:

```settings
deb http://deb.debian.org/debian bullseye-backports main
```

#### Installera paketen

```
export DEBIAN_FRONTEND=noninteractive
apt update
apt -t bullseye-backports install samba winbind libnss-winbind krb5-user smbclient ldb-tools python3-cryptography
unset DEBIAN_FRONTEND
```

#### Konfigurera Kerberos

Öppna /etc/krb5.conf, ta bort innehållet och lägg till följande:

```
[libdefaults]
  default_realm = YOURDOMAIN.COM
  dns_lookup_kdc = false
  dns_lookup_realm=false
[realms]
  YOURDOMAIN.COM = {
  kdc = 127.0.0.1
  kdc = 10.115.100.4
  }
```

#### Starta om värddatorn

Efter omstarten ska du kontrollera att Kerberos är korrekt konfigurerat och att du får ett TGT:

```
kinit administrator
klist
```

#### Konfigurera Samba som en sekundär domänkontrollant

Ta bort konfigurationsfilen /etc/samba/smb.conf som skapades automatiskt vid paketinstallationen:

```
sudo su
rm -f /etc/samba/smb.conf
```

Lägg till domänkontrollanten som medlem i domänen.

```
samba-tool domain join yourdomain.com DC -U administrator --realm=YOURDOMAIN.COM -W YOURDOMAIN.COM
```

Ändra DNS-inställningarna så att de pekar på sig själva i /etc/resolv.conf:

```
search yourdomain.com
nameserver 127.0.0.1
nameserver 10.115.100.4
```

Lägg till DNS-vidarebefordraren i /etc/samba/smb.conf:

```
[global]
   ...
   dns forwarder = 8.8.8.8
   ...
```

Aktivera automatisk start av AD-tjänsten:

```
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl disable winbind nmbd smbd
systemctl mask winbind nmbd smbd
```

Som standard skapar Samba-AD-konfigurationen en exempelfil med namnet krb5.conf i katalogen /var/lib/samba/private.

Den här filen används som standard av vissa Samba-anrop.

Det är bäst att ersätta den med en symbolisk länk till /etc/kbr5.conf för att undvika vissa biverkningar.

```
rm /var/lib/samba/private/krb5.conf
ln -s /etc/krb5.conf /var/lib/samba/private/krb5.conf
```

#### Starta om Samba:

```
pkill -9 smbd
pkill -9 nmbd
pkill -9 winbindd
systemctl restart samba-ad-dc
```

Kontrollera att DNS-posterna har skapats:

```
samba_dnsupdate --verbose --use-samba-tool
```

### 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 `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]
  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.COM

[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 `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:

```settings
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.5:53    0.0.0.0:*    LISTEN      5291/named
```

Testa lokala och rekursiva sökningar:

```
dig @localhost microsoft.com
dig @localhost dc01.yourdomain.com
dig -t SRV @localhost _ldap._tcp.yourdomain.com
```

#### Konfigurera SYSVOL

Skapa ett nyckelpar för root på målservern och kopiera den offentliga nyckeln till källservern:

Tillåt inloggning som root via SSH `vim /etc/ssh/sshd_config` på båda servrarna och starta om sshd-tjänsten (detta är endast en tillfällig åtgärd):

```
# Add following line on the bottom. Will be removed leater.
PermitRootLogin yes
```

Det första steget är att skapa ett nyckelpar på klientdatorn (DC02):

```
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@dc01
```

Gör på samma sätt på dc01

```
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@dc02
```

Hämta innehållet i \\srvads\\sysvol och kopiera det till den nya AD-servern från den sekundära domänkontrollanten.

Kör kommandot:

```
sudo -i
rsync -aP root@dc01:/var/lib/samba/sysvol/ /var/lib/samba/sysvol/
```

Ta bort `PermitRootLogin yes` från `/etc/ssh/sshd_config` på båda servrarna och starta om sshd.

### Replikering

#### Konfiguration på domänkontrollanten med FSMO-rollen PDC-emulator

##### Konfigurera SSH-kontroll

Om det fjärranslutna systemet tillämpar hastighetsbegränsningar för inkommande SSH-anslutningar kommer Unison att misslyckas om du försöker köra det på detta sätt. Därför skapar vi den första SSH-anslutningen som en controlpath-fil på den angivna platsen, och alla efterföljande anslutningar kommer att återanvända den första anslutningen.

```
mkdir ~/.ssh/ctl
cat << EOF > ~/.ssh/ctl/config
Host *
ControlMaster auto
ControlPath ~/.ssh/ctl/%h_%p_%r
ControlPersist 1
EOF
```

##### Inställningar för Sysvolsync – loggfiler

Gör följande på DC1 så att du kan kontrollera vad som händer under synkroniseringen. Lägg gärna till den här filen i logrotate, eftersom loggfilens storlek inte begränsas.

```
touch /var/log/sysvol-sync.log
chmod 640 /var/log/sysvol-sync.log
```

##### Konfigurera standardvärden för Unisons körparametrar

Kör följande på DC1

```
install -o root -g root -m 0750 -d /root/.unison
cat << EOF > /root/.unison/default.prf
# Unison preferences file
# Roots of the synchronization
#
# copymax & maxthreads params were set to 1 for easier troubleshooting.
# Have to experiment to see if they can be increased again.
root = /var/lib/samba
# Note that 2 x / behind DC2, it is required
root = ssh://root@DC2//var/lib/samba 
# 
# Paths to synchronize
path = sysvol
#
#ignore = Path stats    ## ignores /var/www/stats
auto=true
batch=true
perms=0
rsync=true
maxthreads=1
retry=3
confirmbigdeletes=false
servercmd=/usr/bin/unison
copythreshold=0
copyprog = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --inplace --compress
copyprogrest = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --partial --inplace --compress
copyquoterem = true
copymax = 1
logfile = /var/log/sysvol-sync.log
EOF
```

#### Konfigurera SysVol på DC2

Installera Unison `apt install unison` och kör det första testet:

KÖR DETTA FRÅN DC01

```
/usr/bin/rsync -XAavz --log-file /var/log/sysvol-sync.log --delete-after -f"+ */" -f"- *" /var/lib/samba/sysvol root@DC02:/var/lib/samba  &&  /usr/bin/unison
```

#### Lägg till i Crontab på DC1

```
*/5 * * * * /usr/bin/unison -silent
```

#### När du försöker synkronisera mappen på nytt

Varning: Följ stegen nedan, annars kan det hända att mappen sysvol blir tom.

1. Inaktivera Cron på DC1, till exempel genom att lägga till ett ”#” på raden med crontab -e
2. Kontrollera med kommandot `ps -aux` om rsync eller unison för närvarande körs. Om så är fallet, vänta tills det är klart ELLER avsluta processen (om det är en zombieprocess).
3. Ta bort hash-filerna på både DC1 och DC2 i katalogen /root/.unison
4. Kontrollera nu din sysvol och synkronisera om
5. Kontrollera att allt fungerar som det ska igen
6. Aktivera cron på DC1 igen

### Transport Layer Security

Flytta de certifikat som vi tidigare har genererat och kopierat från CA-servern:

```command
sudo mv ca.crt dc02.* /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:

```settings
[global]
  ...
  tls enabled  = yes
  tls keyfile  = /etc/samba/tls/dc02.key
  tls certfile = /etc/samba/tls/dc02.crt
  tls cafile   = /etc/samba/tls/ca.crt
  ...
```

Starta om Samba och kontrollera TLS:

```command
sudo systemctl restart samba-ad-dc.service
sudo openssl s_client -showcerts -connect dc02.yourdomain.com:636 -CAfile /etc/samba/tls/ca.crt
```

---

## Navigation

- Parent: [Fabrik](https://tucek.me/sv/tech/servers.md)
- Previous: [dc01](https://tucek.me/sv/tech/servers/dc01.md)
