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

7 Schritte zur Sicherung Ihres Linux-Servers

Diese Einführung führt Sie in die grundlegende Sicherheit von Linux-Servern ein. Während es sich auf Debian/Ubuntu konzentriert, können Sie alles, was hier vorgestellt wird, auf andere Linux-Distributionen anwenden. Ich ermutige Sie auch, dieses Material zu recherchieren und gegebenenfalls zu erweitern.

1. Aktualisieren Sie Ihren Server

Das erste, was Sie tun sollten, um Ihren Server zu sichern, ist, die lokalen Repositorys zu aktualisieren und das Betriebssystem und die installierten Anwendungen zu aktualisieren, indem Sie die neuesten Patches anwenden.

Unter Ubuntu und Debian:

$ sudo apt update && sudo apt upgrade -y

Unter Fedora, CentOS oder RHEL:

$ sudo dnf upgrade

2. Erstellen Sie ein neues privilegiertes Benutzerkonto

Als nächstes erstellen Sie ein neues Benutzerkonto. Sie sollten sich niemals als root bei Ihrem Server anmelden . Erstellen Sie stattdessen Ihr eigenes Konto (" "), geben Sie sudo ein Rechte und verwenden Sie es, um sich bei Ihrem Server anzumelden.

Erstellen Sie zunächst einen neuen Benutzer:

$ adduser <username>

Geben Sie Ihrem neuen Benutzerkonto sudo Rechte durch Anhängen (-a ) das sudo Gruppe (-G ) zur Gruppenmitgliedschaft des Benutzers:

$ usermod -a -G sudo <username>

3. Laden Sie Ihren SSH-Schlüssel hoch

Sie sollten einen SSH-Schlüssel verwenden, um sich bei Ihrem neuen Server anzumelden. Sie können Ihren vorgenerierten SSH-Schlüssel mit der ssh-copy-id auf Ihren neuen Server hochladen Befehl:

$ ssh-copy-id <username>@ip_address

Jetzt können Sie sich bei Ihrem neuen Server anmelden, ohne ein Passwort eingeben zu müssen.

4. Sicheres SSH

Nehmen Sie als Nächstes diese drei Änderungen vor:

  • SSH-Passwortauthentifizierung deaktivieren
  • Beschränken Sie root daran hindern, sich aus der Ferne anzumelden
  • Beschränken Sie den Zugriff auf IPv4 oder IPv6

Öffnen Sie /etc/ssh/sshd_config Verwenden Sie den Texteditor Ihrer Wahl und stellen Sie sicher, dass diese Zeilen:

PasswordAuthentication yes
PermitRootLogin yes

so aussehen:

PasswordAuthentication no
PermitRootLogin no

Beschränken Sie als Nächstes den SSH-Dienst entweder auf IPv4 oder IPv6, indem Sie die AddressFamily ändern Möglichkeit. Um es so zu ändern, dass nur IPv4 verwendet wird (was für die meisten Leute in Ordnung sein sollte), nehmen Sie diese Änderung vor:

AddressFamily inet

Starten Sie den SSH-Dienst neu, um Ihre Änderungen zu aktivieren. Beachten Sie, dass es eine gute Idee ist, zwei aktive Verbindungen zu Ihrem Server zu haben, bevor Sie den SSH-Server neu starten. Mit dieser zusätzlichen Verbindung können Sie alles reparieren, falls der Neustart schief geht.

Unter Ubuntu:

$ sudo service sshd restart

Unter Fedora oder CentOS oder irgendetwas, das Systemd verwendet:

$ sudo systemctl restart sshd

5. Aktivieren Sie eine Firewall

Jetzt müssen Sie eine Firewall installieren, aktivieren und so konfigurieren, dass sie nur den von Ihnen festgelegten Netzwerkverkehr zulässt. Uncomplicated Firewall (UFW) ist eine benutzerfreundliche Schnittstelle zu iptables das vereinfacht die Konfiguration einer Firewall erheblich.

Sie können UFW installieren mit:

$ sudo apt install ufw

Standardmäßig verweigert UFW alle eingehenden Verbindungen und lässt alle ausgehenden Verbindungen zu. Das bedeutet, dass jede Anwendung auf Ihrem Server das Internet erreichen kann, aber alles, was versucht, Ihren Server zu erreichen, keine Verbindung herstellen kann.

Stellen Sie zunächst sicher, dass Sie sich anmelden können, indem Sie den Zugriff auf SSH, HTTP und HTTPS aktivieren:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

Aktivieren Sie dann UFW:

$ sudo ufw enable

Sie können sehen, welche Dienste zugelassen und verweigert werden mit:

$ sudo ufw status

Wenn Sie UFW jemals deaktivieren möchten, können Sie dies tun, indem Sie Folgendes eingeben:

$ sudo ufw disable

Sie können auch die Firewall-cmd verwenden, die bereits installiert und in einige Distributionen integriert ist.

6. Installieren Sie Fail2ban

Fail2ban ist eine Anwendung, die Serverprotokolle auf wiederholte oder automatisierte Angriffe untersucht. Wenn welche gefunden werden, wird die Firewall geändert, um die IP-Adresse des Angreifers entweder dauerhaft oder für einen bestimmten Zeitraum zu blockieren.

Sie können Fail2ban installieren, indem Sie Folgendes eingeben:

$ sudo apt install fail2ban -y

Kopieren Sie dann die enthaltene Konfigurationsdatei:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Und starten Sie Fail2ban neu:

$ sudo service fail2ban restart

Das ist alles dazu. Die Software untersucht die Protokolldateien kontinuierlich auf Angriffe. Nach einer Weile baut die App eine ganze Liste gesperrter IP-Adressen auf. Sie können diese Liste anzeigen, indem Sie den aktuellen Status des SSH-Dienstes abfragen mit:

$ sudo fail2ban-client status ssh

7. Entfernen Sie ungenutzte netzwerkseitige Dienste

Bei fast allen Linux-Serverbetriebssystemen sind einige netzwerkorientierte Dienste aktiviert. Sie werden die meisten von ihnen behalten wollen. Es gibt jedoch einige, die Sie möglicherweise entfernen möchten. Mit dem ss können Sie alle laufenden Netzwerkdienste sehen Befehl:

$ sudo ss -atpu

Die Ausgabe von ss unterscheidet sich je nach Betriebssystem. Dies ist ein Beispiel dafür, was Sie sehen könnten. Es zeigt, dass die Dienste SSH (sshd) und Ngnix (nginx) lauschen und für die Verbindung bereit sind:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

So entfernen Sie einen ungenutzten Dienst (" ") unterscheidet sich je nach Betriebssystem und verwendetem Paketmanager.

So entfernen Sie einen nicht verwendeten Dienst unter Debian/Ubuntu:

$ sudo apt purge <service_name>

So entfernen Sie einen ungenutzten Dienst unter Red Hat/CentOS:

$ sudo yum remove <service_name>

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Führen Sie ss -atup aus erneut, um zu überprüfen, ob die ungenutzten Dienste nicht mehr installiert sind und ausgeführt werden.

Abschließende Gedanken

Dieses Tutorial zeigt das absolute Minimum, das zum Härten eines Linux-Servers erforderlich ist. Je nachdem, wie ein Server verwendet wird, können und sollten zusätzliche Sicherheitsebenen aktiviert werden. Diese Ebenen können Dinge wie individuelle Anwendungskonfigurationen, Software zur Erkennung von Eindringlingen und die Aktivierung von Zugriffskontrollen, z. B. Zwei-Faktor-Authentifizierung, umfassen.


Linux
  1. Konfigurieren Sie Ihren OpenVPN-Server unter Linux

  2. Installieren Sie OpenVPN auf Ihrem Linux-PC

  3. 9 Dinge, die Sie in den ersten 10 Minuten auf einem Linux-Server tun sollten

  4. Wie überwacht man seinen Linux-Server?

  5. So installieren Sie den Nginx-Webserver unter Linux

So überprüfen Sie Ihre Serverlast unter Linux

So überprüfen Sie Ihre Serverlast im Linux-System

Anleitung zum Einrichten eines SFTP-Servers unter Linux

So überprüfen Sie die Betriebszeit Ihres Linux-Servers

So richten Sie einen Rsync-Daemon auf Ihrem Linux-Server ein

So richten Sie eine Firewall auf Ihrem Linux-Server ein