PostgreSQL ist ein leistungsstarkes, objektrelationales Datenbanksystem, das sich ideal für Webanwendungen eignet. Es bietet erweiterte Features wie ACID-Konformität, Transaktionen, Views und Stored Procedures. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie PostgreSQL installiert, Benutzer und Rollen verwaltet sowie Sicherheitsmaßnahmen umgesetzt werden, um eine stabile und sichere Datenbankumgebung für Web-Apps zu schaffen.
Systemvorbereitung
Bevor PostgreSQL installiert wird, sollte das Linux-System auf dem aktuellen Stand sein und notwendige Hilfspakete installiert werden.
System aktualisieren
sudo apt update
sudo apt upgrade -y
Für CentOS/RHEL:
sudo yum update -y
Basis-Pakete installieren
sudo apt install wget curl git unzip -y
PostgreSQL Installation
PostgreSQL kann über die Standard-Paketquellen installiert werden. Für aktuelle Versionen empfiehlt sich das offizielle PostgreSQL-Repository.
Installation unter Ubuntu/Debian
sudo apt install postgresql postgresql-contrib -y
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
Installation unter CentOS/RHEL
sudo yum install postgresql-server postgresql-contrib -y
sudo postgresql-setup initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
Grundlegende Konfiguration
Nach der Installation sollten grundlegende Konfigurationen vorgenommen werden, um den Zugriff und die Sicherheit zu gewährleisten.
PostgreSQL Benutzer und Rollen
PostgreSQL nutzt Rollen zur Verwaltung von Rechten. Standardmäßig gibt es den Systembenutzer postgres.
sudo -i -u postgres
psql
Neue Rolle anlegen
CREATE ROLE webuser WITH LOGIN PASSWORD 'starkesPasswort';
Datenbank anlegen
CREATE DATABASE webapp_db OWNER webuser;
Rollenrechte zuweisen
GRANT ALL PRIVILEGES ON DATABASE webapp_db TO webuser;
Sicherheitseinstellungen
Eine sichere PostgreSQL-Installation schützt vor unbefugtem Zugriff und Datenverlust.
Authentifizierung konfigurieren
Die Datei pg_hba.conf steuert die Authentifizierung:
sudo nano /etc/postgresql/15/main/pg_hba.conf
- Lokaler Zugriff:
local all all md5 - IPv4 Zugriff:
host all all 127.0.0.1/32 md5 - IPv6 Zugriff:
host all all ::1/128 md5
sudo systemctl restart postgresql
SSL für verschlüsselten Zugriff
sudo nano /etc/postgresql/15/main/postgresql.conf
ssl = on
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'
sudo systemctl restart postgresql
Performance-Optimierung
PostgreSQL bietet zahlreiche Parameter, um die Performance für Web-Apps zu steigern.
Wichtige Parameter in postgresql.conf
- shared_buffers: Speicher für Datenbankpuffer, ca. 25–40% des RAM
- work_mem: Speicher pro Sortieroperation
- maintenance_work_mem: Speicher für Wartungsoperationen
- max_connections: Maximale gleichzeitige Verbindungen
- effective_cache_size: Erwarteter OS-Cache für Abfragen
sudo nano /etc/postgresql/15/main/postgresql.conf
shared_buffers = 1GB
work_mem = 16MB
maintenance_work_mem = 128MB
max_connections = 200
effective_cache_size = 3GB
sudo systemctl restart postgresql
Backup und Wiederherstellung
Regelmäßige Backups sind entscheidend für Datenintegrität und Wiederherstellung im Notfall.
Backup erstellen
pg_dump -U webuser -h localhost webapp_db > webapp_db_backup.sql
Datenbank wiederherstellen
psql -U webuser -h localhost webapp_db < webapp_db_backup.sql
Monitoring und Logs
Überwachung der Datenbank ist wichtig, um Engpässe und Fehler frühzeitig zu erkennen.
Logs prüfen
tail -f /var/log/postgresql/postgresql-15-main.log
Status und Prozesse überwachen
sudo -i -u postgres
psql
SELECT * FROM pg_stat_activity;
Netzwerkgrundlagen
Die Datenbank benötigt ein korrekt konfiguriertes Netzwerk, insbesondere bei Remote-Zugriff.
Subnetzberechnung
Beispiel: IP 192.168.30.25/24
<math>
Subnetzadresse = 192.168.30.25 & 255.255.255.0 = 192.168.30.0
Broadcastadresse = 192.168.30.0 | ~255.255.255.0 = 192.168.30.255
</math>
Netzwerkinterface konfigurieren
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.30.25/24
gateway4: 192.168.30.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Zusätzliche Best Practices
- Regelmäßige Updates von PostgreSQL
- Backups automatisieren, z. B. mit cronjobs
- Minimalrechte für Rollen vergeben (Least Privilege Principle)
- Überwachung von Abfragen mit pg_stat_statements
- Firewall und Fail2ban zur Absicherung einsetzen
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.

