10 Schritte, um Linux Server für Produktionsumgebungen zu sichern

Nov 28, 2021
admin
Megha Pandey
Megha Pandey

Follow

Oct 5, 2017 – 6 min read

Die Absicherung von Linux-Servern ist unerlässlich, um unsere Daten vor den Hackern zu schützen. Wir sollten eine Methode anwenden, die unseren Server vor den häufigsten Angriffen schützt und gleichzeitig effizient verwaltet werden kann.

Allerdings sollten Sie die Dinge nicht als selbstverständlich betrachten. Selbst die härtesten Server können durch Ausnutzung einer verwundbaren Komponente, die auf dem Server läuft, gekapert werden.

Installieren Sie nur das, was Sie brauchen

Die erste Regel ist, Ihren Server schlank und einfach zu halten. Installieren Sie nur die Pakete, die Sie wirklich brauchen. Wenn es unerwünschte Pakete gibt, entfernen Sie sie. Je weniger Pakete, desto geringer die Chance auf ungepatchten Code.

Schalten Sie SELinux ein

Security-Enhanced Linux (SELinux) ist ein Sicherheitsmechanismus zur Zugriffskontrolle im Kernel.

SELinux bietet 3 grundlegende Betriebsmodi:

  • Erzwingen: Dies ist der Standardmodus, der die SELinux-Sicherheitsrichtlinien auf dem Rechner aktiviert und durchsetzt.
  • Permissive: In diesem Modus setzt SELinux die Sicherheitsrichtlinien auf dem System nicht durch, sondern warnt nur und protokolliert Aktionen.
  • Disabled: SELinux ist ausgeschaltet.

Es kann über die Datei ‚/etc/selinux/config‘ verwaltet werden, wo Sie es aktivieren oder deaktivieren können.

Sicherer Konsolenzugriff

Sie müssen den Konsolenzugriff von Linux-Servern schützen, indem Sie das Booten von externen Geräten wie DVDs / CDs / USB-Stiften nach der BIOS-Einrichtung deaktivieren. Legen Sie außerdem ein BIOS- und Grub-Bootloader-Passwort fest, um diese Einstellungen zu schützen.

Beschränken Sie die Verwendung alter Passwörter

Wir können die Verwendung alter Passwörter einschränken. Die alte Passwortdatei befindet sich unter /etc/security/opasswd. Dies kann mithilfe des PAM-Moduls erfolgen.

Öffnen Sie die Datei „/etc/pam.d/system-auth“ unter RHEL/CentOS/Fedora.

# vi /etc/pam.d/system-auth

Öffnen Sie die Datei „/etc/pam.d/common-password“ unter Ubuntu/Debian/Linux.

# vi /etc/pam.d/common-password

Fügen Sie die folgende Zeile in den Abschnitt „auth“ ein.

auth sufficient pam_unix.so likeauth nullok

Fügen Sie die folgende Zeile in den Abschnitt „password“ ein, um zu verhindern, dass ein Benutzer die letzten 3 Passwörter erneut verwenden kann.

password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3

Die letzten 3 Passwörter werden vom Server gespeichert. Wenn Sie versuchen, eines der letzten 3 alten Passwörter zu verwenden, erhalten Sie eine Fehlermeldung wie.

Check Listening Ports

Verwenden Sie den Befehl ’netstat‘, um offene Ports und die entsprechenden Dienste anzuzeigen.

netstat -tunlp 

Deaktivieren Sie unerwünschte Dienste im System mit dem Befehl „chkconfig“ und schließen Sie nicht benötigte Ports.

chkconfig serviceName off

Deaktivieren Sie den Root-Login

Es ist nicht ratsam, sich als Superuser (Root) in den Server einzuwählen. Wir sollten ssh als Root-Benutzer auf dem Server deaktivieren, aber bevor wir das tun, sollten wir einen Benutzer mit sudo-Befugnissen erstellen, damit Sie sich per ssh in den Server einloggen und administrative Aufgaben durchführen können. Sobald Sie auf dem Server angemeldet sind, können Sie bei Bedarf jederzeit zum Benutzer root wechseln.

Erstellen Sie einen neuen Benutzer :

useradd user1

Erstellen Sie ein Passwort für den hinzugefügten Benutzer :

passwd user1

Erteilen Sie dem neu hinzugefügten Benutzer sudo-Berechtigungen :

echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers

SSH zum Server mit dem neuen Benutzer und stellen Sie sicher, dass die Anmeldung funktioniert.

Wir werden jetzt den Root-Login deaktivieren, was bedeutet, dass sich niemand als Root-Benutzer per ssh auf dem Server anmelden kann. Dazu öffnen Sie die sshd-Konfigurationsdatei:

nano /etc/ssh/sshd_conf

Nächste Zeile:

PermitRootLogin no

Dann speichern und schließen Sie diese Datei und starten den Dienst neu

service sshd restart

Wichtig: Loggen Sie sich noch nicht vom Server aus. Testen Sie zunächst, ob Sie sich mit dem zuvor angelegten Benutzer erfolgreich per ssh auf dem Server anmelden können. Öffnen Sie eine weitere Instanz des Terminals und verbinden Sie sich mit dem zuvor angelegten Benutzer mit dem Server. Wenn alles gut funktioniert, können Sie sich sicher als root vom Server abmelden.

Ändern Sie den Port

Wir können den Standard-SSH-Port ändern, um eine Schicht der Undurchsichtigkeit hinzuzufügen, um Ihren Server sicher zu halten.

Öffnen Sie die Datei /etc/ssh/sshd_config

Ersetzen Sie den Standardport 22 durch eine andere Portnummer, z.B. 1110

Speichern Sie &Beenden Sie die Datei

service sshd restart

Nun definieren Sie die Portnummer für die Anmeldung.

ssh username@IP -p 1110

Strg+Alt+Entf in Inittab deaktivieren

Das Drücken von Strg+Alt+Entf führt zu einem Neustart des Servers. Daher ist es immer ratsam, dies zu deaktivieren, da jemand das System versehentlich neu starten kann.

Die Aktion Strg+Alt+Entf ist in /etc/init/control-alt-delete.conf definiert.Kommentieren Sie die folgende Zeile

Passwortlose Anmeldung

Wir können uns ganz einfach über SSH ohne Passwort an unserem Server anmelden, indem wir die ssh-Schlüssel erzeugen. Achten Sie nur darauf, dass Sie sich nur von dem Rechner aus einloggen können, auf dem Sie die ssh-Schlüssel generiert haben

Generierung von SSH-Schlüsseln :

ssh-keygen - t rsa

Kopieren Sie Ihren öffentlichen SSH Schlüssel , und fügen Sie ihn dann auf dem Server hinzu

cat ~/.ssh/id_rsa.pub

Um ssh-Schlüssel auf dem Server hinzuzufügen

Angenommen, wir haben user-user1, um ssh-Schlüssel für den Server bereitzustellen

cd /home/user1
ls -ll

Erstellen Sie ein .ssh-Verzeichnis und erstellen Sie darin eine Datei namens authorized_keys und fügen Sie den öffentlichen SSH-Schlüssel des Benutzers in dieselbe Datei ein

mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys

Fügen Sie den öffentlichen SSH-Schlüssel hinzu und ändern Sie dann den Besitzer der Datei

chown user1 authorized_keys

Ssh-Login deaktivieren

Editieren Sie /etc/ssh/sshd_config

Passwordauthentication no
PermitRootLogin no

Nun, kann sich nur der autorisierte Benutzer mit dem Befehl

ssh user-name@serverIP -p(port Number)

Fail2Ban für SSH-Login

Fail2ban funktioniert, indem die Firewall-Regeln dynamisch geändert werden, um Adressen zu sperren, die eine bestimmte Anzahl von erfolglosen Anmeldeversuchen unternommen haben.

Installieren Sie Fail2ban:

sudo apt-get update
apt-get install fail2ban

Erstellen Sie eine neue Datei jail.local und kopieren Sie den Inhalt von jail.config dorthin und nehmen Sie die Änderungen nur in der Datei jail.local vor

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

Bearbeiten Sie /etc/fail2ban/jail.local

Die gewünschten Änderungen vornehmen:


enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)

Dann die fail2ban-Dienste neu starten

service fail2ban restart

IP kann durch Setzen von bantime = -1 dauerhaft blockiert werden.

Hinweis: FAIL2BAN wird die globale IP blockieren.

Sicherheit war früher manchmal eine Unannehmlichkeit, aber jetzt ist sie eine ständige Notwendigkeit – Martina Navratilova

Danke fürs Lesen . Wenn Sie diesen Artikel hilfreich fanden, würden ein paar Klatschen viel bedeuten!

Bleiben Sie dran 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.