Sicherheit

Einleitung

Sobald du einen neuen Server installiert hast und dieser im Internet öffentlich ist, wirst du nach einigen tagen feststellen, das sich einige versuchen darauf zu verbinden. Hier einer meiner Server, wie das aussehen kann:

cd /var/log

Dort schaust du einfach in das Logfile auth.log und kannst solche Einträge finden:

Oct 16 00:06:24 linux-test sshd[31407]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=92.255.85.69  user=root
Oct 16 00:06:26 linux-test sshd[31407]: Failed password for root from 92.255.85.69 port 29672 ssh2
Oct 16 00:06:26 linux-test sshd[31407]: Received disconnect from 92.255.85.69 port 29672:11: Bye Bye [preauth]
Oct 16 00:06:26 linux-test sshd[31407]: Disconnected from authenticating user root 92.255.85.69 port 29672 [preauth]
Oct 16 00:17:01 linux-test CRON[31412]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Oct 16 00:17:01 linux-test CRON[31412]: pam_unix(cron:session): session closed for user root
Oct 16 00:38:17 linux-test sshd[31424]: Invalid user nagios from 92.255.85.69 port 35922
Oct 16 00:38:17 linux-test sshd[31424]: pam_unix(sshd:auth): check pass; user unknown

Hier versucht jemand, das Passwort für den Root-Benutzer zu erzwingen.  (Es spielt keine Rolle, ob die Passwortanmeldung für diesen Benutzer verboten ist. Er kann es trotzdem versuchen, nur wird er jedes Mal scheitern).

Und darum dreht es sich hier in diesen Kapiteln. Der Server soll sicherer gemacht werden, damit den Angreifern keine Möglichkeit für einen Erfolg gegeben werden kann.

Die Kapitel hier bringen sicher nicht den 100 % Schutz. Du kannst mit diesen Methoden die Möglichkeiten der Angriffe minimieren.

ufw Firewall installieren

Du solltest immer eine  Firewall auf deinem Linux System installieren. Hier empfiehlt sich die Uncomplicated Firewall (ufw).

sudo apt install ufw

Du solltest die Firewall auf keinem Fall einschalten, bevor du deinen ssh Port nicht frei geschaltet hast.

Ich gehe in diesem Beispiel auf dem Standard Port für ssh aus. Solltest du schon einen anderen port vergeben hast, musst du diesen eintragen.

sudo ufw allow ssh

Als Bestätigung erhältst du hier

Rules updated
Rules updated (v6)

Wenn du einen Apache Server installiert hast, musst du auch diesen Port frei geben für http und/oder https.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow www

Damit die Einstellungen aktiv werden, machst du jetzt ein

sudo ufw enable

Jede Applikation die einen bestimmten Port braucht, musst du jetzt frei geben.

fail2ban installieren

Mit fail2ban kannst du sehr leicht und einfach Brute-Force-Angriffe auf deinem System abwehren.

sudo apt install fail2ban

jetzt wird die gezeigt, was alles mit dem Paket fail2ban installiert wird. Das bestätigst du mit J wenn du fail2ban installieren möchtest.

Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  python3-pyinotify whois
Vorgeschlagene Pakete:
  mailx monit sqlite3 python-pyinotify-doc
Die folgenden NEUEN Pakete werden installiert:
  fail2ban python3-pyinotify whois
0 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 473 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 2.486 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j

Wenn fail2ban installiert wurde, sieht das danach so aus.

Holen:1 http://de.archive.ubuntu.com/ubuntu jammy/universe amd64 fail2ban all 0.11.2-6 [394 kB]
Holen:2 http://de.archive.ubuntu.com/ubuntu jammy/main amd64 python3-pyinotify all 0.9.6-1.3 [24,8 kB]
Holen:3 http://de.archive.ubuntu.com/ubuntu jammy/main amd64 whois amd64 5.5.13 [53,4 kB]
Es wurden 473 kB in 0 s geholt (2.986 kB/s).
Vormals nicht ausgewähltes Paket fail2ban wird gewählt.
(Lese Datenbank ... 108933 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../fail2ban_0.11.2-6_all.deb ...
Entpacken von fail2ban (0.11.2-6) ...
Vormals nicht ausgewähltes Paket python3-pyinotify wird gewählt.
Vorbereitung zum Entpacken von .../python3-pyinotify_0.9.6-1.3_all.deb ...
Entpacken von python3-pyinotify (0.9.6-1.3) ...
Vormals nicht ausgewähltes Paket whois wird gewählt.
Vorbereitung zum Entpacken von .../whois_5.5.13_amd64.deb ...
Entpacken von whois (5.5.13) ...
whois (5.5.13) wird eingerichtet ...
fail2ban (0.11.2-6) wird eingerichtet ...
python3-pyinotify (0.9.6-1.3) wird eingerichtet ...
Trigger für man-db (2.10.2-1) werden verarbeitet ...
Scanning processes...
Scanning linux images...

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

Somit ist fail2ban auf deinem System installiert.