GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So sichern Sie den PostgreSQL-Server

PostgreSQL, auch bekannt als Postgres, ist ein universelles objektrelationales Datenbankverwaltungssystem. Es ist eine der fortschrittlichsten verfügbaren Open-Source-Datenbanken. Es gibt jedoch viele Sicherheitsbedenken und potenzielle Schwachstellen, wenn die Anwendung nicht ordnungsgemäß gesichert ist.

Wenn Sie ein System- oder Datenbankadministrator sind, müssen Sie wissen, wie Sie Postgres schützen, bevor Sie in die Produktion gehen.

In diesem Tutorial zeigen wir Ihnen, wie Sie den PostgreSQL-Server unter Ubuntu18.04 sichern.

Voraussetzungen

  • Ein frisches Ubuntu 18.04 VPS auf der Atlantic.net Cloud Platform.
  • Ein auf Ihrem Server konfiguriertes Root-Passwort.

Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Schritt 2 – PostgreSQL installieren

apt-get install postgresql postgresql-contrib -y

Sobald die Installation abgeschlossen ist, starten Sie den PostgreSQL-Server und ermöglichen Sie ihm, beim Neustart zu starten:

systemctl start postgresql
systemctl enable postgresql

Schritt 3 – Datenbank und Benutzer erstellen

Als Nächstes müssen Sie zu Testzwecken eine Datenbank und einen Benutzer erstellen.

Melden Sie sich zunächst mit dem folgenden Befehl bei der PostgreSQL-Shell an:

sudo -i -u postgres psql

Sie sollten die folgende Ausgabe sehen:

psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.

postgres=#
ein

Erstellen Sie als Nächstes einen Benutzer namens testuser und legen Sie das Passwort fest.

postgres=# CREATE USER testuser WITH PASSWORD 'password';

Erstellen Sie als Nächstes eine Datenbank namens testdb und gewähren Sie dem neuen Benutzer vollen Zugriff:

postgres=# CREATE DATABASE testdb OWNER testuser;

Verlassen Sie als Nächstes die PostgreSQL-Shell mit dem folgenden Befehl:

postgres=# \q

Schritt 4 – Abhöradresse konfigurieren

Für die Produktionsumgebung müssen Sie PostgreSQL so konfigurieren, dass es auf einer öffentlichen Schnittstelle lauscht.

Sie können diese Einstellung ändern, indem Sie die Datei /postgresql.conf:

bearbeiten
nano /etc/postgresql/10/main/postgresql.conf

Suchen Sie die folgende Zeile:

#listen_addresses = 'localhost'

Ersetzen Sie es durch Folgendes:

listen_addresses = 'localhost,your-server-ip'

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den PostgreSQL-Dienst neu, um die Änderungen zu implementieren:

systemctl restart postgresql

Schritt 5 – Konfigurieren Sie die zulässigen Hosts

Für eine bessere Sicherheit wird empfohlen, nur bestimmten IPs den Zugriff auf und die Änderung der PostgreSQL-Datenbank zu erlauben. Sie können dies tun, indem Sie die Datei pg_hba.conf:

bearbeiten
nano /etc/postgresql/10/main/pg_hba.conf

Suchen Sie die folgende Zeile:

# local      DATABASE  USER  METHOD  [OPTIONS]

Fügen Sie die folgende Zeile unter der obigen Zeile hinzu:

host  testdb  testuser   client-ip-address/32   md5

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den PostgreSQL-Dienst neu, um die Änderungen zu implementieren:

systemctl restart postgresql

Wo:

Host :Host ist ein einfacher oder SSL-verschlüsselter TCP/IP-Socket.
Datenbank :testdb ist der Name der Datenbank, mit der sich der Host verbinden kann.
Benutzer :testuser ist der Name des Benutzers, der die Verbindung herstellen darf.
Adresse :client-ip-address/32 Geben Sie die IP-Adresse des Client-Computers an.
auth-method :md5 ist der Name der Authentifizierungsmethode.

Schritt 6 – UFW-Firewall konfigurieren

apt-get install ufw -y

Als Nächstes wird empfohlen, die UFW-Firewallregel so zu konfigurieren, dass nur der IP des Clients Zugriff auf den PostgreSQL-Standardport 5432 gewährt wird.

WICHTIG: Bevor Sie beginnen, müssen Sie eine eingehende SSH-Verbindung über UFW zulassen, da Sie dadurch den Shell-Zugriff verlieren. Sie werden gesperrt und können keine Verbindung zu Ihrer Instanz herstellen.

Sie können den SSH-Dienst mit dem folgenden Befehl zulassen:

ufw allow ssh

Aktivieren Sie als Nächstes die UFW-Firewall mit dem folgenden Befehl:

ufw enable

Lassen Sie als Nächstes PostgreSQL-Port 5432 mit dem folgenden Befehl nur für die IP-Adresse des Clients zu:

ufw allow from client-ip-address to any port 5432

Überprüfen Sie als Nächstes den Status der UFW-Regel mit dem folgenden Befehl:

ufw status

Sie sollten die folgende Ausgabe erhalten:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                 
5432                       ALLOW       client-ip-address
22/tcp (v6)                ALLOW       Anywhere (v6)
zulassen

Schritt 7 – Überprüfen Sie die Remote-Verbindung

Zu diesem Zeitpunkt ist der PostgreSQL-Server gesichert und nur über die IP des Clients zugänglich.

Um dies zu überprüfen, verbinden Sie Ihre PostgreSQL-Datenbank vom System des Kunden:

psql -U testuser -h postgres-server-ip -d testdb

Sie werden aufgefordert, das Passwort für den Testbenutzer einzugeben, wie unten gezeigt:

Password for user testuser:

Geben Sie Ihr Passwort ein und drücken Sie Enter . Sobald die Verbindung hergestellt wurde, sollten Sie die folgende Ausgabe erhalten:

psql (9.3.24, server 10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
WARNING: psql major version 9.3, server major version 10.
         Some psql features might not work.
SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256)
Type "help" for help.

testdb=>
ein

Das war es für jetzt.

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie PostgreSQL sichern, indem Sie PostgreSQL so konfigurieren, dass nur bestimmten Hosts Zugriff gewährt wird. Sie haben auch gelernt, wie Sie UFW konfigurieren, um nur Verbindungen von bestimmten Hosts zuzulassen. Sie sollten jetzt in der Lage sein, Ihren PostgreSQL-Server vor bestimmten Arten von Angriffen zu schützen. Beginnen Sie noch heute mit VPS-Hosting von Atlantic.Net!


Linux
  1. So installieren Sie Redis Server auf CentOS 8

  2. So installieren Sie DenyHost unter CentOS 6.7

  3. So installieren und sichern Sie Redis unter Ubuntu 18.04

  4. So installieren Sie PostgreSQL-Server auf CentOS 8

  5. So installieren und sichern Sie PostgreSQL Server auf RockyLinux 8

So installieren Sie den Hiawatha-Webserver auf CentOS 7

So installieren Sie den Consul-Server unter Ubuntu 20.04

So installieren Sie Monit Monitoring Server unter Ubuntu 20.04.

So installieren Sie den PandoraFMS-Server unter CentOS 8

So installieren Sie EteSync-Server auf Ubuntu 20.04

So sichern Sie SSH mit Fail2Ban