Server-Dokumentation

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-20

Übersicht

Hostnamest
OSDebian GNU/Linux 13 (trixie)
Kernel6.12.41+deb13-amd64
ZeitzoneEurope/Berlin
IP88.198.50.199

Domains

Sicherheit

System

Verwandte Themen

SSH

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-20

Sicherer Remote-Zugang zum Server. Nur Key-Authentifizierung erlaubt, Passwort-Login ist deaktiviert. Port 2022 statt Standard-Port 22 für zusätzliche Sicherheit.

Port2022
AuthNur SSH-Keys
RootMit Key erlaubt

Konfiguration

Datei: /etc/ssh/sshd_config.d/99-custom.conf

Port 2022
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin prohibit-password
MaxAuthTries 3
MaxSessions 5
ClientAliveInterval 300
ClientAliveCountMax 2

Verbindung

ssh -p 2022 root@88.198.50.199

Hostname-Konfiguration

Erstellt: 2025-12-22 | Aktualisiert: 2025-12-27

Der Server-Hostname muss korrekt in /etc/hosts eingetragen sein, damit sudo und andere System-Tools funktionieren.

Aktueller Status

Hostnamest
Hostname-Datei/etc/hostname
Hosts-Datei/etc/hosts

Problem: "unable to resolve host"

Wenn der Hostname nicht in /etc/hosts eingetragen ist, erscheint bei sudo-Befehlen:

sudo: unable to resolve host st: No address associated with hostname

Losung

Hostname in /etc/hosts eintragen:

# Pruefen, ob Eintrag fehlt
cat /etc/hosts | grep $(hostname)

# Falls leer, Eintrag hinzufuegen
echo "127.0.0.1 $(hostname)" | sudo tee -a /etc/hosts

Korrekte /etc/hosts

### Hetzner Online GmbH installimage
127.0.0.1 localhost.localdomain localhost
127.0.0.1 st
88.198.50.199 Debian-trixie-latest-amd64-base
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
2a01:4f8:221:4268::2 Debian-trixie-latest-amd64-base

Hostname aendern

# Hostname anzeigen
hostname

# Hostname aendern (persistent)
sudo hostnamectl set-hostname neuer-hostname

# /etc/hosts anpassen
sudo nano /etc/hosts
# Alt: 127.0.0.1 st
# Neu: 127.0.0.1 neuer-hostname

Wichtig bei Hetzner

Bei Hetzner-Servern wird /etc/hosts beim Installimage initial erstellt. Der Hostname ist oft kurz (z.B. "st") und muss manuell in /etc/hosts ergaenzt werden.

Verwandte Themen

UFW Firewall

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-20

Einfache Firewall die nur benötigte Ports freigibt. Blockiert standardmäßig alle eingehenden Verbindungen außer SSH, HTTP und HTTPS.

Aktive Regeln

PortDienst
2022/tcpSSH
80/tcpHTTP
443/tcpHTTPS

Konfiguration

ufw default deny incoming
ufw default allow outgoing
ufw allow 2022/tcp comment 'SSH'
ufw allow 80/tcp comment 'HTTP'
ufw allow 443/tcp comment 'HTTPS'
ufw --force enable

Befehle

ufw status verbose
ufw allow PORT/tcp
ufw delete allow PORT/tcp

Fail2Ban

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-20

Schützt vor Brute-Force-Angriffen durch automatisches Sperren von IPs nach fehlgeschlagenen Login-Versuchen. Überwacht SSH-Logs und blockt Angreifer für eine Stunde.

Bantime1 Stunde
Findtime10 Minuten
Maxretry3

Konfiguration

Datei: /etc/fail2ban/jail.local

[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 3
ignoreip = 127.0.0.1/8

[sshd]
enabled = true
port = 2022
filter = sshd
logpath = /var/log/auth.log

Befehle

fail2ban-client status
fail2ban-client status sshd
fail2ban-client unban IP

SSL / Let's Encrypt

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-20

HTTPS-Verschlüsselung für alle Domains. Kostenlose Let's Encrypt Zertifikate erneuern sich automatisch alle 90 Tage via Certbot-Timer.

ToolCertbot 4.0.0
Gültig bis19.03.2026
Auto-RenewalJa (certbot timer)

Domains

Zertifikat erstellen

certbot --apache -d domain1.de -d domain2.de

Befehle

certbot certificates
certbot renew --dry-run

Permissions

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-31

Web-Dateien müssen dem Apache-User (www-data) gehören, damit PHP sie lesen kann. Dateien, die von Claude oder root erstellt werden, haben falsche Besitzer. Das Fix-Script korrigiert dies automatisch.

Fix-Script

Script/var/www/scripts/fix-permissions.sh
Ownerwww-data:www-data
Mode755

Betroffene Verzeichnisse

Claude Hook

Das Script wird automatisch nach Write/Edit-Operationen ausgeführt.

Konfiguration/root/.claude/settings.json
EventPostToolUse
MatcherWrite|Edit

Manuelle Verwendung

/var/www/scripts/fix-permissions.sh

Automatische Updates

Erstellt: 2025-12-20 | Aktualisiert: 2025-12-20

Sicherheitsupdates werden automatisch installiert und schützen vor bekannten Schwachstellen. Kein manuelles Eingreifen nötig, System bleibt aktuell.

Toolunattended-upgrades
Statusaktiv

Konfiguration

Datei: /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";

Manuelle Updates

apt-get update
apt-get upgrade -y