PostgreSQL Datenbank absichern

Hallo, ich habe mir die letzten Tage ein paar Gedanken um die Sicherheit meiner “neuen” PostgreSQL 11.8 Datenbank gemacht. In erster Linie um Benutzer/Gruppen und Passwortsicherheit.

Ich habe vor, bestimmte Gruppen mit Leserecht zu erstellen und dann Benutzter in diese Gruppe zuzuordnen. Oder sollte man jeden Benutzer so justieren, dass es genau passt. Viele Benutzer werden es nicht. 10-20 evtl. Aktuell sind sind es postgres und ein weiterer mit Leserecht auf eine Datenbank.

md5 oder scram-sha-256
Ich habe gelesen, dass Postgres die Passwörter mit md5 abspeichert. Macht es Sinn, hier auf scram-sha-256 zu wechseln. Die Datenbank läuft nur im internen Netzwerk. Die pg_hba.conf steht aktuell noch auf trust, so wie es nach der Installation war.

Was ist also sinnvoll. Wo sollte man nachjustieren? Der Zugriff über Verwaltungstools(pgAdmin usw.), ODBC, PHP sollte weiterhin möglich sein oder hat das nichts damit zutun?

Diesen Artikel hatte ich unter anderem gelesen. Gibt aber wenig auf deutsch was auch gut erklärt wird.

https://www.dbconcepts.at/postgresql-aendern-des-passwort-hash-algorithmus/

Mich würde aber interessieren, was ihr aus der Praxis empfehlen könnt.

Danke

Das ist falsch, per Default nach der Installation gilt kein trust.

:thinking:Da müsste ich morgen kurz in die Doku schauen. Dann habe ich es wohl schon geändert.
Es ist warm und spät. Entschuldigung :innocent:

kein Poblem, Prost!

argh, Antwort ist zu kurz. Also: 1234567890…

Guten Morgen.
So, habe jetzt mal nachgesehen. Hatte wohl aus der vorherigen PostgreSQL 12 Installation etwas durcheinander, oder so. Zur Sicherheit hier gleich der Auszug aus der aktuellen Datei:

TYPE DATABASE USER ADDRESS METHOD

IPv4 local connections:

host all all 127.0.0.1/32 password
host all all 0.0.0.0/0 password

IPv6 local connections:

host all all ::1/128 password

Allow replication connections from localhost, by a user with the

replication privilege.

host replication all 127.0.0.1/32 password
host replication all ::1/128 password

Gruß

Ich fummel hier gleich noch die popstgresql.conf hinterher. Ich habe die mal auf das gekürzt, was aktiv ist. Hoffe ich habe alles erwischt:

- Connection Settings -

listen_addresses = ‘*’ # what IP address(es) to listen on;
max_connections = 100 # (change requires restart)

- Memory -

shared_buffers = 128MB # min 128kB
dynamic_shared_memory_type = windows # the default is the first option

- Checkpoints -

max_wal_size = 1GB
min_wal_size = 80MB

- Where to Log -

log_file_mode = 0640 # creation mode for log files,
log_timezone = ‘CET’

- Locale and Formatting -

datestyle = ‘iso, dmy’

#intervalstyle = ‘postgres’
timezone = ‘CET’

lc_messages = ‘German_Germany.1252’ # locale for system error message
# strings
lc_monetary = ‘German_Germany.1252’ # locale for monetary formatting
lc_numeric = ‘German_Germany.1252’ # locale for number formatting
lc_time = ‘German_Germany.1252’ # locale for time formatting

default configuration for text search

default_text_search_config = ‘pg_catalog.german’

Hallo Steve6,

Um die Sicherheit zu erhöhen, würde ich listen_addresses einschränken.
Zum Beispiel: llisten_addresses = ‘localhost,192.168.1.202’
Damit “lauscht” PostgreSQL nur auf den Adressen 127.0.0.1 und 192.168.1.202

Würde ich einschränken auf Dein Heimnetzwerk. Zum Beispiel:
host all all 192.168.1.0/24 password
Damit dürfen sich alle User aus dem Netzwerkbereich 192.168.1.0 … 192.168.1.255 anmelden.

Grüßle
Jürgen

Hallo Jürgen,

Danke für deine Vorschläge. Ich werde mal schauen ob ich die Bereiche einschränken kann. :+1:
Werden die Passwörter denn nun im Standard verschlüsselt oder muss man hier noch auf md5 oder besser umstellen?