bintorosoft.com

PostgreSQL Hardening: Rollen, pg_hba.conf und TLS

Turtle with glasses and a surprised look on her face is looking at a laptop on white background.

PostgreSQL ist eine leistungsstarke relationale Datenbank, die sich durch Stabilität und umfangreiche Sicherheitsfeatures auszeichnet. Ein korrekt gehärtetes PostgreSQL-System reduziert das Risiko von unbefugtem Zugriff, Datenverlust oder Manipulation. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie Rollen, pg_hba.conf und TLS-Konfiguration genutzt werden, um PostgreSQL sicher zu betreiben.

PostgreSQL Installation und erster Zugriff

PostgreSQL lässt sich über die Paketmanager der gängigen Linux-Distributionen installieren. Nach der Installation sollte der Zugriff abgesichert werden.

# Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib

# CentOS/RHEL
sudo yum install postgresql-server postgresql-contrib

# Dienst starten und aktivieren
sudo systemctl start postgresql
sudo systemctl enable postgresql

# PostgreSQL-CLI als Benutzer postgres
sudo -i -u postgres
psql

Rollen und Benutzerverwaltung

PostgreSQL nutzt Rollen, die sowohl Benutzer als auch Gruppen darstellen. Jede Anwendung sollte einen eigenen, minimal privilegierten Benutzer erhalten.

Rollen anlegen

-- Rolle für Webanwendung
CREATE ROLE webapp LOGIN PASSWORD 'SicheresPasswort!';
GRANT CONNECT ON DATABASE webapp_db TO webapp;
GRANT USAGE ON SCHEMA public TO webapp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO webapp;

Admin-Rollen und Superuser

Superuser-Rechte nur für administrative Aufgaben nutzen und nicht für Anwendungen.

CREATE ROLE admin LOGIN PASSWORD 'AdminPasswort!' SUPERUSER;

pg_hba.conf konfigurieren

Die Datei pg_hba.conf steuert den Zugriff auf die Datenbank und sollte restriktiv konfiguriert werden.

sudo nano /etc/postgresql/13/main/pg_hba.conf

Beispiele für sichere Einträge

Nach Änderungen PostgreSQL neu laden:

sudo systemctl reload postgresql

TLS/SSL für verschlüsselte Verbindungen

TLS schützt die Datenübertragung zwischen Client und Server. PostgreSQL kann Zertifikate für verschlüsselte Verbindungen nutzen.

# Beispiel: Zertifikate in /etc/ssl/postgresql/
ssl = on
ssl_cert_file = '/etc/ssl/postgresql/server.crt'
ssl_key_file = '/etc/ssl/postgresql/server.key'
ssl_ca_file = '/etc/ssl/postgresql/ca.crt'

Verbindung erzwingen

Nur verschlüsselte Verbindungen zulassen:

hostssl   webapp_db   webapp   192.168.250.0/24   scram-sha-256

Logging und Monitoring

Fehler und Zugriffe sollten protokolliert werden, um Probleme frühzeitig zu erkennen.

# PostgreSQL Logging aktivieren
sudo nano /etc/postgresql/13/main/postgresql.conf

logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_statement = 'ddl'
log_connections = on
log_disconnections = on

Netzwerk- und Subnetzplanung

Für Multi-Server Setups ist eine saubere Subnetzplanung wichtig, insbesondere bei Replikation oder Remote-Zugriff.

IPv4 Subnetz

<math>
Server-IP = 192.168.250.10/24
Subnetzadresse = 192.168.250.10 & 255.255.255.0 = 192.168.250.0
Broadcastadresse = 192.168.250.0 | ~255.255.255.0 = 192.168.250.255
</math>

IPv6 Subnetz

<math>
Server-IP = 2001:db8:abcd:250::10/64
Subnetzadresse = 2001:db8:abcd:250:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:250::0
Broadcastadresse = 2001:db8:abcd:250:ffff:ffff:ffff:ffff
</math>

Best Practices

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:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version