dns-int01/README.md

289 lines
No EOL
6.8 KiB
Markdown

Wir die neue DNS-VM fuer **Technitium DNS** mit diesen Werten:
- **VM-ID:** `111`
- **IP:** `10.100.20.55`
- **VLAN:** `20`
- **RAM:** `2 GB`
- **vCPU:** `2`
- **Disk:** `16 GB`
- **Dienst:** Technitium DNS
- **Host-/Netzmodell:** interne Dienst-VM in VLAN20, passend zu deiner Architektur [1]
Ich wuerde Technitium auf einer **Debian-VM** installieren.
## Proxmox: VM anlegen
Wenn deine Debian-ISO z. B. `debian-13.6.0-amd64-netinst.iso` heisst:
```bash
sudo qm create 111 \
--name dns-int01 \
--memory 2048 \
--cores 2 \
--cpu x86-64-v2-AES \
--machine q35 \
--bios ovmf \
--scsihw virtio-scsi-single \
--net0 virtio,bridge=vmbr0,tag=20
sudo qm set 111 --scsi0 local-lvm:16
sudo qm set 111 --efidisk0 local-lvm:1,pre-enrolled-keys=1
sudo qm set 111 --ide2 local:iso/debian-13.6.0-amd64-netinst.iso,media=cdrom
sudo qm set 111 --boot order=ide2\;scsi0
sudo qm set 111 --vga std
sudo qm start 111
sudo qm status 111
sudo qm config 111
```
## Debian-Installation
Im Installer wuerde ich setzen:
- Hostname: `dns-int01`
- statische IP: `10.100.20.55/24`
- Gateway: `10.100.20.1`
- DNS vorerst: `10.100.20.1`
Nur diese Pakete:
- SSH server
- standard system utilities
## Nach der Installation ISO auswerfen
```bash
sudo qm stop 111
sudo qm set 111 --delete ide2
sudo qm set 111 --boot order=scsi0
sudo qm start 111
```
## Basis-Setup in Debian
Ich gehe von `ens18` aus. Falls dein Interface anders heisst, bitte anpassen.
```bash
sudo hostnamectl set-hostname dns-int01
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
cat <<'EOF' | sudo tee /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens18
iface ens18 inet static
address 10.100.20.55/24
gateway 10.100.20.1
dns-nameservers 10.100.20.1
EOF
sudo systemctl restart networking
ip -4 a
ip route
cat /etc/resolv.conf
sudo apt update
sudo apt full-upgrade -y
sudo apt install -y curl wget vim sudo qemu-guest-agent ca-certificates
sudo systemctl start qemu-guest-agent
timedatectl
```
## Technitium DNS installieren
Die genaue Installationsmethode steht nicht im Kontext; das hier ist mein normales Wissen. Auf Debian ist der uebliche Weg per Script:
```bash
curl -sSL https://download.technitium.com/dns/install.sh | sudo bash
```
Danach pruefen:
```bash
sudo systemctl status dns --no-pager
ss -tulpn | grep -E ':53|:5380'
```
Typisch:
- DNS auf Port `53`
- Webinterface auf Port `5380`
## Webinterface
Dann im Browser:
```text
http://10.100.20.55:5380
```
## Im MikroTik vorerst noch nichts umstellen
Da ihr ja zuerst sauber parallel aufbauen wollt, wuerde ich jetzt nur:
1. VM bauen
2. Technitium installieren
3. Zonen/Eintraege dort erfassen
4. gegen `10.100.20.55` testen
5. spaeter DHCP oder Router-Forwarding umstellen
## Optional: DHCP-Lease im MikroTik reservieren
Wenn du dokumentarisch eine statische Reservation willst, mit der MAC der VM:
```rsc
/ip dhcp-server lease add address=10.100.20.55 mac-address=AA:BB:CC:DD:EE:FF server=dhcp20 comment="dns-int01"
```
Technisch noetig ist das bei statischer IP in Debian nicht zwingend.
Wenn du willst, gebe ich dir als naechstes direkt noch:
- die **ersten Technitium-Schritte** fuer Zonen und Forwarder
oder
- die **MikroTik-Umstellung**, sobald die DNS-VM bereit ist.
Klar - hier ist eine saubere Zusammenfassung fuer die Doku.
# DNS-VM `dns-int01` - SSH- und sudo-Basissetup
## System
- Hostname: `dns-int01`
- IP: `10.100.20.49`
- OS: Debian 13
- Rolle: interne DNS-VM
- Zugriff vom Admin-Client aus `10.100.50.50`
---
## Ausgangslage
Beim ersten Test war der Benutzer `dns-int01` noch **nicht korrekt fuer sudo berechtigt**.
### Beobachtung
```bash
sudo -i
[sudo] Passwort für dns-int01:
'dns-int01' ist nicht in der sudoers-Datei.
```
Zusätzlich war ein direkter SSH-Login als `root` nicht möglich:
```bash
ssh root@10.100.20.49
Permission denied
```
Das ist grundsätzlich positiv zu bewerten, da Root-Login per SSH damit bereits nicht offen war.
---
## Korrektur sudo
Danach wurde der Benutzer `dns-int01` erfolgreich fuer `sudo` nutzbar gemacht.
### Verifikation
Login als Benutzer:
```bash
ssh dns-int01@10.100.20.49
```
Anschliessend:
```bash
sudo -i
```
Ergebnis:
- Wechsel auf Root-Shell erfolgreich
- `sudo` funktioniert nun fuer `dns-int01`
---
## SSH-Key-Login eingerichtet
Fuer den Benutzer `dns-int01` wurde der SSH-Key-Zugang vorbereitet.
### Durchgefuehrte Schritte
```bash
mkdir -p /home/dns-int01/.ssh
chmod 700 /home/dns-int01/.ssh
nano /home/dns-int01/.ssh/authorized_keys
chmod 600 /home/dns-int01/.ssh/authorized_keys
```
### Bedeutung
- Verzeichnis `.ssh` erstellt
- Berechtigungen korrekt gesetzt
- Public Key in `authorized_keys` hinterlegt
- Dateirechte fuer OpenSSH passend gesetzt
---
## SSH-Server-Konfiguration angepasst
Die SSH-Server-Konfiguration wurde bearbeitet:
```bash
sudo nano /etc/ssh/sshd_config
```
Danach wurde die Konfiguration validiert und neu geladen:
```bash
sudo sshd -t
sudo systemctl reload ssh
```
### Ergebnis
- `sshd_config` syntaktisch gueltig
- SSH-Dienst erfolgreich neu geladen
- neue SSH-Einstellungen aktiv
---
## Funktionstest SSH-Key-Login
Nach der Anpassung wurde die Verbindung erneut getestet:
```bash
ssh dns-int01@10.100.20.49
```
### Ergebnis
- Login funktionierte **ohne Passwortabfrage**
- damit ist der SSH-Key-Login erfolgreich eingerichtet
Das sieht man daran, dass beim letzten Verbindungsaufbau keine Passwortabfrage mehr erschien und die Sitzung direkt geöffnet wurde.
---
# Aktueller Stand
## Erfolgreich umgesetzt
- Benutzer `dns-int01` kann `sudo` verwenden
- SSH-Zugriff auf `dns-int01` funktioniert
- Root-Login per SSH ist nicht erfolgreich
- SSH-Key-Authentifizierung fuer `dns-int01` funktioniert
- SSH-Konfiguration wurde geprüft und neu geladen
## Aktueller Betriebszustand
- administrativer Zugriff erfolgt ueber Benutzer `dns-int01`
- Privilegienerweiterung erfolgt mit `sudo`
- SSH-Zugriff per Key ist aktiv
- Passwortbasierter Login fuer den normalen Benutzer war zuvor noch moeglich, danach wurde Key-Login erfolgreich getestet
---
# Empfohlene Doku-Notiz
## Admin-Zugriff auf `dns-int01`
- SSH nur ueber Benutzer `dns-int01`
- kein direkter Root-Login per SSH
- administrative Rechte ueber `sudo`
- SSH-Key fuer Admin-Zugriff eingerichtet
- SSH-Konfiguration nach Anpassung mit `sshd -t` validiert und per `systemctl reload ssh` aktiviert
---
# Sinnvolle naechste Schritte
Falls noch nicht erfolgt, fuer die Doku bzw. Umsetzung als naechstes festhalten:
1. `PasswordAuthentication no` in `sshd_config` final setzen, falls noch nicht bereits so konfiguriert
2. optional `PermitRootLogin no` explizit dokumentieren
3. Technitium DNS installieren
4. feste Netzkonfiguration und DNS-Rolle der VM dokumentieren
5. Backup- und Restore-Konzept fuer DNS-Konfiguration festlegen
Wenn du willst, formatiere ich dir das im naechsten Schritt noch direkt als:
- XWiki-Format
- Markdown
- oder als knappe Betriebsdokumentation mit "Ziel / Umsetzung / Verifikation / Offene Punkte".