Site icon bintorosoft.com

PostgreSQL für Web-Apps: Installation, Rollen und Security

Surreal 3D of a Fox Character Software Developer Standing Next to a Giant Computer Monitor Filled with Lines of Code Holding a Coffee Cup and a Tablet in a Colored Minimalist Background

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
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

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

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