PostgreSQL ist eine leistungsfähige, objektrelationale Datenbank, die auf Linux-Servern weit verbreitet ist. Für ein sicheres Setup sollten sowohl die Installation als auch die Konfiguration auf Best Practices für Authentifizierung, Zugriffskontrolle und Netzwerkabsicherung ausgelegt sein. In diesem Tutorial erfahren Sie Schritt für Schritt, wie Sie PostgreSQL sauber und sicher einrichten.
PostgreSQL installieren
Auf Debian/Ubuntu-Systemen können Sie PostgreSQL direkt über das Paketmanagement installieren:
sudo apt update
sudo apt install postgresql postgresql-contrib
Auf RHEL/CentOS/Fedora-Systemen nutzen Sie DNF oder YUM:
sudo dnf install postgresql-server postgresql-contrib
sudo postgresql-setup --initdb
Dienst starten und aktivieren
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
Basis-Konfiguration
Die zentrale Konfigurationsdatei befindet sich unter /etc/postgresql//main/postgresql.conf (Debian/Ubuntu) oder /var/lib/pgsql/data/postgresql.conf (RHEL/CentOS). Wichtige Einstellungen:
- listen_addresses: IPs, auf denen PostgreSQL Verbindungen akzeptiert. Standardmäßig
localhost. - port: Standard-Port ist 5432.
- max_connections: Maximale Anzahl gleichzeitiger Verbindungen.
- logging_collector: Aktivieren Sie das Logging für Auditing und Fehleranalyse.
Benutzer und Rollen anlegen
PostgreSQL nutzt Rollen für Zugriffskontrolle. Den Standard-Admin-Account postgres sollten Sie absichern und für Applikationen separate Rollen anlegen:
sudo -u postgres psql
CREATE ROLE webapp LOGIN PASSWORD 'SicheresPasswort';
ALTER ROLE webapp CREATEDB;
q
Datenbanken erstellen
sudo -u postgres createdb webapp_db -O webapp
Hier wird eine Datenbank webapp_db für den Benutzer webapp erstellt.
pg_hba.conf absichern
Die Datei pg_hba.conf regelt die Authentifizierung. Best Practices:
- Nur notwendige Hosts zulassen
- Verbindung per
md5oderscram-sha-256verschlüsseln - Lokale Verbindungen strikt kontrollieren
Beispiel:
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
host webapp_db webapp 192.168.1.0/24 scram-sha-256
SSL für verschlüsselte Verbindungen
Um Daten während der Übertragung zu schützen, aktivieren Sie SSL:
ssl = on
ssl_cert_file = '/etc/ssl/certs/pgsql-server.crt'
ssl_key_file = '/etc/ssl/private/pgsql-server.key'
Erstellen Sie ggf. eigene Zertifikate mit OpenSSL und setzen Sie die richtigen Berechtigungen:
sudo chown postgres:postgres /etc/ssl/private/pgsql-server.key
sudo chmod 600 /etc/ssl/private/pgsql-server.key
Firewall-Regeln
Erlauben Sie nur Verbindungen von vertrauenswürdigen IPs:
sudo ufw allow from 192.168.1.0/24 to any port 5432
sudo ufw enable
Backups einrichten
Für regelmäßige Sicherungen eignen sich:
- pg_dump für einzelne Datenbanken
- pg_dumpall für alle Datenbanken
- Automatisierung per Cronjob:
0 2 * * * /usr/bin/pg_dump -U webapp webapp_db | gzip > /backup/webapp_db_$(date +%F).sql.gz
Performance-Tuning
Wichtige Parameter in postgresql.conf:
- shared_buffers: Speicher für Caching von Datenbankseiten
- work_mem: Speicher pro Sortier- oder Hash-Operation
- maintenance_work_mem: Speicher für VACUUM, CREATE INDEX
- effective_cache_size: Erwartete Cache-Größe im Betriebssystem
Monitoring einrichten
- Verwenden Sie
pg_stat_activityzur Überwachung laufender Verbindungen:
SELECT pid, usename, state, query FROM pg_stat_activity;
Updates und Sicherheit
- Regelmäßig Sicherheitsupdates installieren
sudo apt update && sudo apt upgrade postgresql*
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

