add docs
This commit is contained in:
779
docs/07-Basis-System.md
Normal file
779
docs/07-Basis-System.md
Normal file
@@ -0,0 +1,779 @@
|
||||
# Basis-System
|
||||
|
||||
## Übersicht
|
||||
|
||||
Diese Kategorie umfasst Playbooks und Rollen für grundlegende Systemkonfiguration und Infrastruktur-Services wie ClamAV-Antivirus, Zeitsynchronisation (Chrony) und allgemeine System-Setup-Aufgaben.
|
||||
|
||||
**Anwendungsfälle**:
|
||||
- Installation von ClamAV-Antivirus-Server
|
||||
- NTP-Zeitserver-Konfiguration (Chrony)
|
||||
- Docker-Installation und -Konfiguration
|
||||
- Basis-Tools-Installation
|
||||
- System-Härtung
|
||||
- MOTD-Konfiguration
|
||||
- Admin-Benutzer-Erstellung
|
||||
|
||||
---
|
||||
|
||||
## Playbooks
|
||||
|
||||
### deploy-clamav-server.yml
|
||||
|
||||
Bereitstellung eines dedizierten ClamAV-Antivirus-Servers.
|
||||
|
||||
**Datei**: `playbooks/deploy-clamav-server.yml`
|
||||
|
||||
**Zweck**: Installation und Konfiguration eines zentralen ClamAV-Servers für Antivirus-Scanning. Dieser Server wird von Mailcow-Instanzen für Malware-Scanning verwendet.
|
||||
|
||||
**Ziel-Hosts**: `clamav-servers` (Inventory-Gruppe)
|
||||
|
||||
**Benutzer**: `tincadmin` (mit sudo-Rechten)
|
||||
|
||||
**Verwendete Rollen**:
|
||||
- `deploy-clamd`
|
||||
|
||||
**Verwendungsbeispiel**:
|
||||
|
||||
```bash
|
||||
# ClamAV-Server bereitstellen
|
||||
ansible-playbook playbooks/deploy-clamav-server.yml \
|
||||
-i inventories/icp-fra-pve1.yml \
|
||||
-K
|
||||
|
||||
# Mit spezifischer ClamAV-Version
|
||||
ansible-playbook playbooks/deploy-clamav-server.yml \
|
||||
-i inventories/icp-fra-pve1.yml \
|
||||
-e "clamd_version=1.4.3" \
|
||||
-K
|
||||
```
|
||||
|
||||
**Abhängigkeiten**:
|
||||
- `deploy-clamd` Rolle
|
||||
- Build-Tools (gcc, cmake, Rust)
|
||||
- Internet-Zugriff für ClamAV-Source-Download
|
||||
|
||||
**Besonderheiten**:
|
||||
- **Kompiliert ClamAV von Source** (Version 1.4.2)
|
||||
- Installiert FreshClam für Signatur-Updates
|
||||
- Konfiguriert systemd-Services
|
||||
- Erstellt dedizierte clamav-User/Group
|
||||
|
||||
**Workflow**:
|
||||
1. Installiert Build-Dependencies
|
||||
2. Erstellt clamav-Benutzer und -Gruppe
|
||||
3. Lädt ClamAV-Source herunter
|
||||
4. Kompiliert mit CMake
|
||||
5. Installiert Binärdateien
|
||||
6. Konfiguriert ClamAV-Daemon
|
||||
7. Konfiguriert FreshClam (Signatur-Updates)
|
||||
8. Erstellt und startet systemd-Services
|
||||
|
||||
**Integration**: Siehe [Mail-Server → migrate-clamd.yaml](04-Mail-Server-Verwaltung.md#migrate-clamdyaml)
|
||||
|
||||
**⚠️ Hinweis**: Kompilation kann 10-20 Minuten dauern je nach System-Performance.
|
||||
|
||||
---
|
||||
|
||||
### setup-chronyd.yml
|
||||
|
||||
Setup des Chronyd-NTP-Zeitservers.
|
||||
|
||||
**Datei**: `playbooks/setup-chronyd.yml`
|
||||
|
||||
**Zweck**: Installation und Konfiguration von Chrony für präzise Zeitsynchronisation auf Debian/Ubuntu-Systemen.
|
||||
|
||||
**Ziel-Hosts**: `all` (gefiltert auf Debian/Ubuntu)
|
||||
|
||||
**Benutzer**: `tincadmin` (mit sudo-Rechten)
|
||||
|
||||
**Verwendete Rollen**:
|
||||
- `system` (Task: `setup-timeserver`)
|
||||
|
||||
**Verwendungsbeispiel**:
|
||||
|
||||
```bash
|
||||
# Chrony auf allen Hosts installieren
|
||||
ansible-playbook playbooks/setup-chronyd.yml \
|
||||
-i inventories/icp-fra-pve1.yml \
|
||||
-K
|
||||
|
||||
# Auf einzelnem Host
|
||||
ansible-playbook playbooks/setup-chronyd.yml \
|
||||
-i inventories/icp-fra-pve1.yml \
|
||||
--limit timeserver.example.com \
|
||||
-K
|
||||
```
|
||||
|
||||
**Abhängigkeiten**:
|
||||
- `system` Rolle
|
||||
- Debian/Ubuntu Betriebssystem
|
||||
|
||||
**Besonderheiten**:
|
||||
- **Einfaches Playbook** ohne komplexe Logik
|
||||
- **Deinstalliert NTPd** (falls vorhanden, Konflikt mit Chrony)
|
||||
- Installiert Chrony
|
||||
- Konfiguriert NTP-Pools
|
||||
- Startet und aktiviert chronyd-Service
|
||||
|
||||
**Workflow**:
|
||||
1. Entfernt ntpd (falls installiert)
|
||||
2. Installiert chrony-Paket
|
||||
3. Konfiguriert NTP-Server-Pools
|
||||
4. Startet chronyd-Service
|
||||
5. Aktiviert Service beim Boot
|
||||
|
||||
**Warum Chrony statt NTP**:
|
||||
- ✅ Bessere Performance bei instabilen Verbindungen
|
||||
- ✅ Schnellere Synchronisation nach Boot
|
||||
- ✅ Geringerer Ressourcenverbrauch
|
||||
- ✅ Moderne Alternative zu ntpd
|
||||
|
||||
---
|
||||
|
||||
## Rollen
|
||||
|
||||
### Rolle: deploy-clamd
|
||||
|
||||
**Zweck**: Kompiliert, konfiguriert und stellt ClamAV-Antivirensoftware bereit.
|
||||
|
||||
**Pfad**: `roles/deploy-clamd/`
|
||||
|
||||
**Hauptaufgaben**:
|
||||
|
||||
#### 1. install-dependencies.yml
|
||||
Installiert Build-Tools und Abhängigkeiten.
|
||||
|
||||
**Installierte Pakete**:
|
||||
- Build-Essentials: `gcc`, `g++`, `make`, `cmake`
|
||||
- Rust-Toolchain (für ClamAV 1.4.x)
|
||||
- Python3 und pip
|
||||
- Entwicklungsbibliotheken: `libssl-dev`, `libjson-c-dev`, `libpcre2-dev`
|
||||
- Zusatztools: `wget`, `curl`, `pkg-config`
|
||||
|
||||
**Besonderheit**: Installiert Rust über rustup (erforderlich ab ClamAV 1.4.x)
|
||||
|
||||
#### 2. setup-clamav-user-group.yml
|
||||
Erstellt System-Benutzer und -Gruppe für ClamAV.
|
||||
|
||||
**Funktionen**:
|
||||
- Erstellt Gruppe `clamav`
|
||||
- Erstellt System-User `clamav` (no-login)
|
||||
- Erstellt Verzeichnisse:
|
||||
- `/var/lib/clamav` (Datenbank)
|
||||
- `/var/log/clamav` (Logs)
|
||||
- `/var/run/clamav` (PID-Files)
|
||||
- Setzt korrekte Berechtigungen
|
||||
|
||||
#### 3. compile-clamav.yml
|
||||
Lädt ClamAV-Source herunter und kompiliert.
|
||||
|
||||
**Funktionen**:
|
||||
- Download von GitHub (Version 1.4.2)
|
||||
- Entpackt Source
|
||||
- Konfiguriert mit CMake:
|
||||
```bash
|
||||
cmake . \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||
-DENABLE_SYSTEMD=ON \
|
||||
-DENABLE_JSON_SHARED=ON
|
||||
```
|
||||
- Kompiliert mit `make -j$(nproc)`
|
||||
- Installiert mit `make install`
|
||||
|
||||
**Dauer**: 10-20 Minuten je nach CPU
|
||||
|
||||
#### 4. configure-clamav.yml
|
||||
Konfiguriert ClamAV-Daemon und FreshClam, erstellt systemd-Services.
|
||||
|
||||
**Funktionen**:
|
||||
- Generiert `clamd.conf` aus Template
|
||||
- Generiert `freshclam.conf` aus Template
|
||||
- Erstellt systemd-Service-Files:
|
||||
- `clamav-daemon.service`
|
||||
- `clamav-freshclam.service`
|
||||
- Reload systemd
|
||||
- Startet Services
|
||||
|
||||
**Standardvariablen** (`defaults/main.yml`):
|
||||
|
||||
| Variable | Default | Beschreibung |
|
||||
|----------|---------|-------------|
|
||||
| `clamd_version` | `1.4.2` | ClamAV-Version zum Kompilieren |
|
||||
|
||||
**Templates**:
|
||||
|
||||
#### clamav-config.j2
|
||||
ClamAV-Daemon-Konfiguration.
|
||||
|
||||
**Wichtige Einstellungen**:
|
||||
```ini
|
||||
LogFile /var/log/clamav/clamd.log
|
||||
LogFileMaxSize 10M
|
||||
LogTime yes
|
||||
LogSyslog yes
|
||||
|
||||
# Scanning-Parameter
|
||||
MaxThreads 4
|
||||
MaxDirectoryRecursion 15
|
||||
MaxFileSize 100M
|
||||
|
||||
# Network
|
||||
TCPSocket 3310
|
||||
TCPAddr 0.0.0.0 # Lauscht auf allen Interfaces
|
||||
```
|
||||
|
||||
#### freshclam-config.j2
|
||||
FreshClam-Konfiguration (Virus-Signatur-Updates).
|
||||
|
||||
**Wichtige Einstellungen**:
|
||||
```ini
|
||||
DatabaseDirectory /var/lib/clamav
|
||||
LogFile /var/log/clamav/freshclam.log
|
||||
|
||||
# Update-Häufigkeit
|
||||
Checks 24 # 24x pro Tag (jede Stunde)
|
||||
|
||||
# Update-Quellen
|
||||
DatabaseMirror database.clamav.net
|
||||
DatabaseMirror db.local.clamav.net
|
||||
|
||||
# SecureInfo URLs für Premium-Signaturen
|
||||
# (optional, falls lizenziert)
|
||||
```
|
||||
|
||||
#### systemd-clamav-service.j2
|
||||
Systemd-Service für ClamAV-Daemon.
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=ClamAV Antivirus Daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=/usr/local/sbin/clamd
|
||||
Restart=on-failure
|
||||
User=clamav
|
||||
Group=clamav
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
#### systemd-freshclam-service.j2
|
||||
Systemd-Service für FreshClam.
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=ClamAV Virus Database Updater
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/freshclam -d
|
||||
Restart=on-failure
|
||||
User=clamav
|
||||
Group=clamav
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
**Handler**:
|
||||
|
||||
| Handler | Funktion |
|
||||
|---------|----------|
|
||||
| `Reload Systemd Daemon` | Lädt systemd-Konfiguration neu |
|
||||
| `Start Clamd Service` | Startet ClamAV-Daemon |
|
||||
| `Start Freshclam Service` | Startet FreshClam-Service |
|
||||
|
||||
**Verwendung**:
|
||||
|
||||
```yaml
|
||||
- name: Deploy ClamAV Server
|
||||
hosts: clamav-servers
|
||||
become: true
|
||||
roles:
|
||||
- deploy-clamd
|
||||
```
|
||||
|
||||
**Weiterführende Informationen**:
|
||||
- Scanning-Performance: 50-200 MB/s je nach Hardware
|
||||
- RAM-Bedarf: ~1-2 GB (für Signatur-Datenbank)
|
||||
- Signatur-Updates: Automatisch jede Stunde
|
||||
- Network-Port: 3310 (TCP)
|
||||
|
||||
---
|
||||
|
||||
### Rolle: system
|
||||
|
||||
**Zweck**: Grundlegende Systemkonfiguration und Administration.
|
||||
|
||||
**Pfad**: `roles/system/`
|
||||
|
||||
**Hauptaufgaben**:
|
||||
|
||||
#### 1. install-basic-tools.yaml
|
||||
Installiert essenzielle System-Tools.
|
||||
|
||||
**Installierte Pakete**:
|
||||
- `git` - Versionskontrolle
|
||||
- `curl`, `wget` - Download-Tools
|
||||
- `vim` - Editor
|
||||
- `htop` - Prozess-Monitor
|
||||
- `net-tools` - Netzwerk-Tools (ifconfig, netstat)
|
||||
- `tcpdump` - Netzwerk-Paket-Analyse
|
||||
- `bind9-dnsutils` - DNS-Tools (dig, nslookup)
|
||||
- `gnupg` - GPG-Verschlüsselung
|
||||
- `sudo` - Privilege Escalation
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: install-basic-tools
|
||||
```
|
||||
|
||||
#### 2. install-docker.yaml
|
||||
Installiert Docker von offiziellem Repo oder tinc-Mirror.
|
||||
|
||||
**Funktionen**:
|
||||
- Fügt Docker GPG-Key hinzu
|
||||
- Konfiguriert Docker APT-Repository
|
||||
- Installiert Docker CE, CLI, containerd
|
||||
- Konfiguriert Docker-Daemon
|
||||
- Startet und aktiviert Service
|
||||
|
||||
**Variablen**:
|
||||
```yaml
|
||||
docker_install_source: "official" # oder "tinc"
|
||||
```
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: install-docker
|
||||
```
|
||||
|
||||
**Siehe auch**: [Container-Management → install-docker.yml](03-Container-Management.md#dockerinstall-dockeryml)
|
||||
|
||||
#### 3. install-docker-image-mirror.yaml
|
||||
Konfiguriert Docker HTTP-Proxy für Image-Mirror.
|
||||
|
||||
**Funktionen**:
|
||||
- Installiert CA-Zertifikat für Proxy
|
||||
- Konfiguriert systemd-Override für Docker
|
||||
- Setzt HTTP_PROXY, HTTPS_PROXY Environment-Variablen
|
||||
- Restart Docker-Daemon
|
||||
|
||||
**Variablen**:
|
||||
```yaml
|
||||
use_docker_image_mirror: true
|
||||
docker_mirror_location: "SC" # oder "tinc"
|
||||
```
|
||||
|
||||
**Proxy-Server**:
|
||||
- SC (ServerCow): `dim.servercow.com:3128`
|
||||
- tinc: `[2a07:6fc0:c:2809::20]:3128`
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: install-docker-image-mirror
|
||||
```
|
||||
|
||||
#### 4. setup-timeserver.yaml
|
||||
Installiert und konfiguriert Chrony für NTP.
|
||||
|
||||
**Funktionen**:
|
||||
- Deinstalliert ntpd (Konflikt-Vermeidung)
|
||||
- Installiert chrony
|
||||
- Konfiguriert NTP-Pools:
|
||||
- `0.debian.pool.ntp.org`
|
||||
- `1.debian.pool.ntp.org`
|
||||
- `2.debian.pool.ntp.org`
|
||||
- `3.debian.pool.ntp.org`
|
||||
- Startet und aktiviert chronyd
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: setup-timeserver
|
||||
```
|
||||
|
||||
#### 5. ssh-hardening.yaml
|
||||
Ruft SSH-Schlüssel von URL ab und härtet sshd_config.
|
||||
|
||||
**Funktionen**:
|
||||
- Download autorisierter SSH-Keys von URL
|
||||
- Konfiguriert sshd_config mit Härtung:
|
||||
- `PermitRootLogin without-password`
|
||||
- `PasswordAuthentication no`
|
||||
- `PubkeyAuthentication yes`
|
||||
- Moderne Krypto-Algorithmen
|
||||
- Restart SSH-Service
|
||||
|
||||
**Template**: `templates/sshd_config.j2`
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: ssh-hardening
|
||||
```
|
||||
|
||||
**⚠️ Vorsicht**: Testen Sie auf einem Host zuerst, um Aussperrung zu vermeiden!
|
||||
|
||||
#### 6. check-disk-utilization.yaml
|
||||
Prüft mindestens 4 GB verfügbaren Speicherplatz.
|
||||
|
||||
**Funktionen**:
|
||||
- Ermittelt verfügbaren Speicher auf `/`
|
||||
- Schlägt fehl wenn weniger als 4 GB frei
|
||||
- Nützlich vor großen Updates
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: check-disk-utilization
|
||||
```
|
||||
|
||||
**Verwendung in**: [Mail-Server → update-mailcow.yaml](04-Mail-Server-Verwaltung.md#update-mailcowyaml)
|
||||
|
||||
#### 7. special-admin-create.yaml
|
||||
Erstellt Admin-Benutzer mit Sudo ohne Passwort.
|
||||
|
||||
**Funktionen**:
|
||||
- Erstellt Benutzer `specialadmin` (konfigurierbarer Name)
|
||||
- Fügt zu `sudo`-Gruppe hinzu
|
||||
- Konfiguriert passwordless sudo
|
||||
- Kopiert SSH-Keys
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: special-admin-create
|
||||
vars:
|
||||
admin_username: myadmin
|
||||
```
|
||||
|
||||
#### 8. install-motd.yaml
|
||||
Installiert custom Message of the Day (MOTD).
|
||||
|
||||
**Funktionen**:
|
||||
- Kopiert MOTD-File von `files/motd`
|
||||
- Zeigt bei jedem SSH-Login
|
||||
- Kann Branding, Warnungen, Informationen enthalten
|
||||
|
||||
**File**: `roles/system/files/motd`
|
||||
|
||||
**Verwendung**:
|
||||
```yaml
|
||||
- include_role:
|
||||
name: system
|
||||
tasks_from: install-motd
|
||||
```
|
||||
|
||||
**Standardvariablen**:
|
||||
|
||||
```yaml
|
||||
# Docker-Konfiguration
|
||||
use_docker_image_mirror: true
|
||||
docker_mirror_location: "SC" # oder "tinc"
|
||||
docker_install_source: "official"
|
||||
|
||||
# NTP-Server
|
||||
ntp_servers:
|
||||
- 0.debian.pool.ntp.org
|
||||
- 1.debian.pool.ntp.org
|
||||
- 2.debian.pool.ntp.org
|
||||
- 3.debian.pool.ntp.org
|
||||
```
|
||||
|
||||
**Handler**:
|
||||
|
||||
| Handler | Funktion |
|
||||
|---------|----------|
|
||||
| `Reload systemd` | Lädt systemd-Konfiguration neu |
|
||||
| `Restart SSH` | Startet SSH-Daemon neu |
|
||||
| `Restart Docker` | Startet Docker-Service neu |
|
||||
| `Restart chronyd` | Startet Chrony-Service neu |
|
||||
| `Enable Docker` | Aktiviert Docker beim Boot |
|
||||
| `Start Docker` | Startet Docker-Service |
|
||||
|
||||
**Templates**:
|
||||
|
||||
#### sshd_config.j2
|
||||
SSH-Daemon-Konfiguration mit Härtung.
|
||||
|
||||
**Wichtige Einstellungen**:
|
||||
```ini
|
||||
# Authentifizierung
|
||||
PermitRootLogin without-password
|
||||
PasswordAuthentication no
|
||||
PubkeyAuthentication yes
|
||||
ChallengeResponseAuthentication no
|
||||
|
||||
# Krypto
|
||||
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
|
||||
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
|
||||
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
|
||||
|
||||
# Sicherheit
|
||||
PermitEmptyPasswords no
|
||||
X11Forwarding no
|
||||
MaxAuthTries 3
|
||||
LoginGraceTime 20
|
||||
```
|
||||
|
||||
**Files**:
|
||||
|
||||
#### files/motd
|
||||
Custom Message of the Day.
|
||||
|
||||
Kann enthalten:
|
||||
- Systemidentifikation
|
||||
- Sicherheitshinweise
|
||||
- Kontaktinformationen
|
||||
- Maintenance-Ankündigungen
|
||||
|
||||
**Verwendung der Rolle**:
|
||||
|
||||
```yaml
|
||||
# Vollständige System-Setup
|
||||
- name: System Base Configuration
|
||||
hosts: all
|
||||
become: true
|
||||
roles:
|
||||
- system
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Rolle: updates
|
||||
|
||||
**Zweck**: Verschiedene Update-Mechanismen für unterschiedliche Distributionen.
|
||||
|
||||
**Pfad**: `roles/updates/`
|
||||
|
||||
**Hauptaufgaben**:
|
||||
|
||||
#### 1. apk-based-update.yaml
|
||||
Für Alpine Linux Updates.
|
||||
|
||||
**Funktionen**:
|
||||
- `apk update`
|
||||
- `apk upgrade`
|
||||
|
||||
#### 2. apt-based-update.yaml
|
||||
Für Debian/Ubuntu Updates.
|
||||
|
||||
**Funktionen**:
|
||||
- `apt update`
|
||||
- `apt dist-upgrade`
|
||||
- Kernel-Update-Prüfung
|
||||
|
||||
#### 3. apt-cleaning.yaml
|
||||
APT-Cache-Bereinigung.
|
||||
|
||||
**Funktionen**:
|
||||
- `apt clean`
|
||||
- `apt autoclean`
|
||||
- `apt autoremove`
|
||||
|
||||
#### 4. debian-major-upgrade-apt.yaml
|
||||
Upgrade auf neue Debian-Hauptversion.
|
||||
|
||||
**Funktionen**:
|
||||
- Ändert Paketquellen
|
||||
- `apt update`
|
||||
- `apt dist-upgrade`
|
||||
|
||||
**Verwendung**:
|
||||
|
||||
Diese Rolle wird als **Fallback** verwendet, wenn spezifischere Rollen nicht passen.
|
||||
|
||||
**Siehe bevorzugt**: [`os-updates` Rolle](01-OS-Management.md#rolle-os-updates)
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
### 1. ClamAV-Server-Dimensionierung
|
||||
|
||||
**Empfohlene Hardware**:
|
||||
- CPU: 2+ Cores
|
||||
- RAM: 4 GB (2 GB für ClamAV, 2 GB für System)
|
||||
- Disk: 20 GB (10 GB für Signaturen und Logs)
|
||||
- Network: Gbit-Ethernet empfohlen
|
||||
|
||||
### 2. Chrony-Konfiguration
|
||||
|
||||
Verwenden Sie mehrere NTP-Server für Redundanz:
|
||||
```yaml
|
||||
ntp_servers:
|
||||
- 0.de.pool.ntp.org
|
||||
- 1.de.pool.ntp.org
|
||||
- ptbtime1.ptb.de # Deutsche Physikalisch-Technische Bundesanstalt
|
||||
- ptbtime2.ptb.de
|
||||
```
|
||||
|
||||
### 3. Docker-Mirror nutzen
|
||||
|
||||
Für schnellere Image-Downloads in internen Netzwerken:
|
||||
```yaml
|
||||
use_docker_image_mirror: true
|
||||
docker_mirror_location: "tinc"
|
||||
```
|
||||
|
||||
### 4. Basis-Tools konsistent installieren
|
||||
|
||||
Installieren Sie Basis-Tools auf allen Hosts:
|
||||
```bash
|
||||
ansible all -i inventories/icp-fra-pve1.yml \
|
||||
-m include_role \
|
||||
-a "name=system tasks_from=install-basic-tools" \
|
||||
-b
|
||||
```
|
||||
|
||||
### 5. Regelmäßige ClamAV-Signatur-Updates
|
||||
|
||||
FreshClam aktualisiert automatisch. Überprüfen Sie regelmäßig:
|
||||
```bash
|
||||
# Auf ClamAV-Server
|
||||
freshclam --version
|
||||
journalctl -u clamav-freshclam -n 50
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
### Problem: ClamAV-Kompilation schlägt fehl
|
||||
|
||||
**Symptome**: Build-Fehler während `compile-clamav.yml`
|
||||
|
||||
**Lösung**:
|
||||
1. Überprüfen Sie Rust-Installation:
|
||||
```bash
|
||||
rustc --version
|
||||
cargo --version
|
||||
```
|
||||
2. Installieren Sie fehlende Dependencies manuell
|
||||
3. Überprüfen Sie Internet-Verbindung für Source-Download
|
||||
4. Erhöhen Sie RAM (ClamAV-Build benötigt ~2 GB)
|
||||
|
||||
### Problem: Chrony synchronisiert nicht
|
||||
|
||||
**Symptome**: Uhrzeit ist falsch oder driftet
|
||||
|
||||
**Lösung**:
|
||||
1. Überprüfen Sie Chrony-Status:
|
||||
```bash
|
||||
chronyc tracking
|
||||
chronyc sources -v
|
||||
```
|
||||
2. Testen Sie NTP-Server-Erreichbarkeit:
|
||||
```bash
|
||||
chronyc -n sources
|
||||
ping 0.debian.pool.ntp.org
|
||||
```
|
||||
3. Restart Chrony:
|
||||
```bash
|
||||
systemctl restart chronyd
|
||||
```
|
||||
|
||||
### Problem: Docker-Mirror funktioniert nicht
|
||||
|
||||
**Symptome**: Image-Pulls schlagen fehl oder sind langsam
|
||||
|
||||
**Lösung**:
|
||||
1. Testen Sie Proxy-Erreichbarkeit:
|
||||
```bash
|
||||
curl -I http://dim.servercow.com:3128
|
||||
```
|
||||
2. Überprüfen Sie Docker-Daemon-Config:
|
||||
```bash
|
||||
cat /etc/systemd/system/docker.service.d/http-proxy.conf
|
||||
```
|
||||
3. Restart Docker:
|
||||
```bash
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
### Problem: SSH-Härtung sperrt aus
|
||||
|
||||
**Symptome**: Kein SSH-Zugriff nach Härtung
|
||||
|
||||
**Prävention**:
|
||||
- Testen Sie zuerst auf einem Non-Production-Host
|
||||
- Halten Sie Console-Zugriff bereit (Proxmox, IPMI)
|
||||
- Behalten Sie eine offene SSH-Session während Änderungen
|
||||
|
||||
**Lösung**:
|
||||
1. Zugriff über Console
|
||||
2. Revert sshd_config:
|
||||
```bash
|
||||
cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
|
||||
systemctl restart sshd
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Nützliche Kommandos
|
||||
|
||||
### ClamAV-Operationen
|
||||
|
||||
```bash
|
||||
# Signatur-Version prüfen
|
||||
clamdscan --version
|
||||
|
||||
# Manueller Scan
|
||||
clamdscan /path/to/directory
|
||||
|
||||
# Signatur-Update manuell
|
||||
freshclam
|
||||
|
||||
# ClamAV-Status
|
||||
systemctl status clamav-daemon
|
||||
journalctl -u clamav-daemon -f
|
||||
```
|
||||
|
||||
### Chrony-Operationen
|
||||
|
||||
```bash
|
||||
# Zeitquellen anzeigen
|
||||
chronyc sources -v
|
||||
|
||||
# Synchronisations-Status
|
||||
chronyc tracking
|
||||
|
||||
# Force-Sync (bei großer Drift)
|
||||
chronyc makestep
|
||||
|
||||
# Statistiken
|
||||
chronyc sourcestats -v
|
||||
```
|
||||
|
||||
### System-Tools
|
||||
|
||||
```bash
|
||||
# Installierte Basis-Tools prüfen
|
||||
dpkg -l | grep -E 'git|curl|wget|vim|htop'
|
||||
|
||||
# Docker-Version
|
||||
docker --version
|
||||
docker compose version
|
||||
|
||||
# Verfügbarer Speicher
|
||||
df -h
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Navigation**: [← Zurück: Virtualisierung](06-Virtualisierung.md) | [Nächstes: Cleanup-Aufgaben →](08-Cleanup-Aufgaben.md)
|
||||
Reference in New Issue
Block a user