Site icon bintorosoft.com

Datenbank-Server Setup: PostgreSQL sicher installieren

Python Logo: Digital Art on a Code Background

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:

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:

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:

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:

Monitoring einrichten

SELECT pid, usename, state, query FROM pg_stat_activity;
  • Logs regelmäßig analysieren
  • Optional Tools wie pgAdmin oder Prometheus mit PostgreSQL-Exporter einsetzen
  • Updates und Sicherheit

    sudo apt update && sudo apt upgrade postgresql*
  • Starke Passwörter für alle Rollen
  • Keine unnötigen Superuser-Rollen
  • Netzwerkzugriff nur auf benötigte Hosts beschränken
  • 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