Wenn Ihr Server von einem Angreifer gehackt wurde, kann dieser mit ihm praktisch alles machen. Er kann (Schad)Programme installieren, Spam-Attacken starten, Daten ausspähen oder löschen, Programme deinstallieren, Hintertüren für spätere Zugriffe einrichten und vieles mehr. In diesem Fall bleibt Ihnen in der Regel nichts anderes übrig, als das System komplett neu einzurichten. Wenn Sie ein aktuelles Backup zur Verfügung haben, hält sich der Aufwand vielleicht noch einigermaßen Grenzen. Ansonsten stehen Ihnen eine Menge Arbeit und Ärger bevor. Lassen Sie es nicht soweit kommen! Mit diesen vier Tipps können Sie die klassischen Angriffsflächen Ihres (Virtual) Servers wirkungsvoll gegen Hacking-Attacken schützen.
Tipp 1: Ändern Sie den Standard-SSH-Port Ihres Servers
Für die Client-Server-Verbindung wird standardmäßig der Port 22 genutzt. Hacker machen sich das zu Nutze und zielen mit ihrer automatisierten Passwort-Suche vorzugsweise auf diesen Port. Doch durch eine Änderung des SSH-Ports können Sie Brute-Force-Attacken einfach ins Leere laufen lassen.
Zunächst müssen Sie sich jedoch per SSH-Zugang auf Ihrem Server anmelden. Von einem Windows-Rechner können Sie dafür zum Beispiel die freie Software PuTTY nutzen. Eine Anleitung zum Aufbau einer Client-Server-Verbindung mit PuTTY finden Sie in unserem FAQ-Artikel.
Loggen Sie sich nun mit Ihrem Benutzernamen und Passwort ein. Rufen Sie dazu mit einem Editor die sshd_config Datei Ihres Servers auf. Zum Beispiel mit vi, dem Standard-Texteditor von Linux-Systemen.
Geben Sie zum Öffnen der SSH-Konfigurations-Datei über die Kommandozeile folgenden Befehl ein:
vi /etc/ssh/sshd_conf
(Achten Sie auf das Leerzeichen zwischen dem Programm „vi“ und dem „Dateipfad“)
Ändern Sie nun den Port von 22 auf einen Wert zwischen 49152 und 65535.
Speichern Sie diese Änderung mit dem Befehl:
:wq
(wenn Sie den Texteditor vi nutzen.)
Damit die Änderung aktiv wird, starten Sie bitte den SSH-Dienst neu. Geben Sie dazu bitte folgenden Befehl ein:
/etc/init.d/ssh restart
Aktualisieren Sie nun entsprechend auch den Port Ihrer Client-Server-Verbindung.
Tipp 2: Verhindern Sie den Root-Login
Standardmäßig ist auf jedem (Linux) Server der Benutzer „Root“ angelegt. Auch das kann zu einem Einstiegstor für Hacker werden. Daher empfiehlt es sich, aus Sicherheitsgründen den Root-Login zu verhindern.
Legen Sie zunächst einen neuen Benutzer an, mit dem Befehl:
useradd "NAME"
Fügen Sie einen neuen Benutzernamen hinzu und vergeben Sie mit dem Befehl:
passwd „NAME“
ein Passwort.
Nun müssen Sie dem neuen Benutzer Administrations-/Root-Rechte zuweisen.
Öffnen Sie dazu bitte wieder die SSH-Konfigurations-Datei über die Kommandozeile:
vi /etc/ssh/sshd_config
Ergänzen Sie den neuen Benutzernamen mit der folgenden neuen Befehlszeile am Ende des Dokuments:
AllowUsers "NAME"
Speichern Sie diese Änderung.
Testen Sie nun den Login mit dem neuen Benutzernamen, bevor Sie den Root-Login sperren.
Funktioniert der Login, können Sie den Root-Login sperren. Öffnen Sie dazu bitte wieder die sshd_config-Datei und ändern Sie die Zeile:
PermitRootLogin yes
in:
PermitRootLogin no
Alle Anmeldungen unter dem Benutzernamen „root“ werden damit automatisch verhindert.
Tipp 3: Erstellen Sie einen RSA-Schlüssel für die Anmeldung an Ihrem Server
Zusätzliche Sicherheit gegenüber einer einfachen Passwortabfrage bietet Ihnen ein asymmetrisch kryptografisches Verschlüsselungsverfahren mittels RSA-Schlüssel. Für den Aufbau der gesicherten Client-Server-Verbindung müssen Sie zunächst die Schlüssel erzeugen. Geben Sie über die Kommandozeile folgenden Befehl ein:
ssh-keygen -b 4096 -t rsa
Die Keys werden dann in folgendem Verzeichnis abgelegt.
/root/.ssh/id_rsa
Laden Sie die Schlüssel zum Beispiel mit einem FTP-Programm auf Ihren Client herunter.
Starten Sie den SSH-Dienst nun neu, mit dem Befehl:
/etc/init.d/ssh restart
Wenn Sie für die Client-Server-Verbindung eine Software nutzen, müssen Sie den Schlüssel dort natürlich auch einbinden. Zum Beispiel bei Putty unter SSH/Key mit dem Befehl Add Key.
Tipp 4: Blockieren Sie verdächtige IP-Adressen
Mit einem Intrusion-Detection-System (IDS) wie z.B. dem kostenlosen Fail2ban lassen sich Dienste auf Ihrem Server noch besser gegen unbefugte Zugriffe absichern, indem verdächtige IP-Adressen möglicher Angreifer ganz einfach blockiert werden.
Dabei können Sie individuell definieren, ab wie vielen falschen Login-Versuchen eine Adresse gesperrt wird und wie lange diese gesperrt bleiben soll (Minuten, Stunden, Tage …)
Installieren Sie zunächst das Intrusion-Detection-System (in unserem Beispiel fail2ban) mit dem Befehl:
apt-get install fail2ban
(bei Ubuntu / Debian)
oder
yum install fail2ban
(bei CentOS)
Um individuelle Sicherheitseinstellungen vornehmen zu können, müssen Sie Fail2Ban konfigurieren. Erstellen Sie dazu zunächst eine lokale Variante mit dem Befehl:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Öffnen Sie die neue jail.local-Datei in einem Texteditor, zum Beispiel vi.
vi /etc/fail2ban/jail.local
Definieren Sie unter bantime, wie lange eine verdächtige IP-Adresse geblockt werden soll. Der Wert wird in der Einheit Sekunden angegeben.
bantime = 600 (1o Minuten)
Unter maxretry können Sie festlegen, nach wie vielen falschen Login-Versuchen die entsprechende IP-Adresse gesperrt werden soll.
maxretry = 3
Zum Schluss müssen Sie Fail2ban lediglich noch einmal starten, damit die Änderungen in Kraft treten. Geben Sie dazu bitte folgenden Befehl ein:
Achtung:
Wenn Sie zuvor bereits den Standard SSH-Port verändert haben, müssen Sie diese Änderung auch im Programm Fail2ban vornehmen.
Öffenen Sie dazu die jail.conf bzw. jail.local Datei mit einem Texteditor und verändern Sie die Zeile:
Port = ssh
in
Port = (Neue Portnummer)
und speichern Sie diese Änderung. Ansonsten würde Fail2ban den falschen Port überwachen.
/etc/init.d/fail2ban restart
Fail2ban bietet Ihnen darüber hinaus die Möglichkeit, die Absicherung individuell an einzelne Dienste anzupassen.
Möchten Sie sehen, welche IP-Adressen von fail2ban geblockt wurde, können Sie diese mit dem Befehl:
iptables –L
aufrufen oder sich die entsprechende Log-Datei anzeigen lassen.
var/log/fail2ban
Die verdächtigen IP-Adressen lassen sich dann zum Beispiel mittels „blacklist“ komplett von Ihrem System ausschließen.
Schutz vor Hacking-Attacken – Fazit
Wie Sie sehen, können Sie Ihren (Virtual) Server mit wenigen Schritten wirkungsvoll gegen Hacking-Attacken absichern. Gehen Sie auf Nummer Sicher und schützen Sie Ihren Server am besten noch heute.
Informieren Sie sich auch über unsere SSL-Zertifikate, mit denen Sie virtuelle Server vor Hacking schützen können. Zwei vServer-Tarife von Host Europe bieten Ihnen bereits ein SSL inklusive.
Hier erfahren Sie mehr über die SSL-Zertifikate von Host Europe.
Sie suchen ein passendes Server-Produkt für Ihre Webprojekte?
Profitieren Sie von unseren leistungsstarken Server-Lösungen.
Sie kennen weitere Möglichkeiten zum Schutz gegen Hacking-Attacken? Dann schicken Sie uns einen Kommentar. Wir freuen uns auf Ihr Feedback.
Bildnachweis: Fotolia, Lizenz: Host Europe
- Installation von Software auf einem Virtual Server – Beispiel CMS - 8. Mai 2023
- WordPress-Kundenseiten verwalten - 17. April 2023
- Screenshot erstellen auf iPhone und Smartphone – so einfach geht’s - 11. April 2023
Vielen Dank für die Tipps. Viele unterschätzen die Risiken. Man haftet ja schließlich für die Folgen, sollte der Server unter Kontrolle der Hacker gelangen.
Natürlich gibt es noch mehr bzw. weitere Möglichkeiten seinen Server zu schützen. Die oben aufgeführten Schritte sind jedoch die ersten, die ein Server-Inhaber machen sollte.
Das Syntax-Highlighting in den Boxen verschluckt die Hälfte der Befehle / Optionen, Vorsicht !
Hallo Alex, guter Hinweis. Durch den gewählten Schriftstyle waren leider Teile von Befehlen sehr schwer lesbar. Ich habe den Style geändert. Vielen Dank.
Ihnen ist schon bewusst, dass alle Ports über 1024 in UNIX unpriviligiert nutzbar sind? Das heißt im Klartext, dass bspw. auf einem Shared System (z.B. Webhosting) jeder mit einem Zugang auf diesem Port lauschen könnte – um dort z.B. einen SSH-Server zwecks Passwort-Sniffing zu betreiben.
Bessere Variante ist SSH auf Port 22 mit vorherigem Port-Knocking (iptables-Flag), für das Knocking darf der Port dann auch beliebig sein, da hier kein sicherheitsrelevanter Service läuft.
Hallo,
theoretisch ja, allerdings bräuchte der Benutzer Rechte, um etwas auf dem Server zu installieren, sonst kann er nichts machen. Und selbst wenn es einem „eingeschränkten“ Benutzer gelingen sollte, seinen SSH-Spoofer zu starten, bevor der „richtige“ SSH-Server startet, bekommt man doch beim Versuch, sich zu verbinden (connect) eine Fehlermeldung, da der Fingerprint des Servers nicht stimmt. Spätestens da sollte man als Nutzer, der sich per SSH verbinden will, aufpassen und misstrauisch werden.
Ich gehe davon aus, dass diese Tipps nicht für den Virtual Server Managed gelten?
Hallo Michael,
ja, das ist richtig. Da sich die beiden Produktgruppen nicht nur in diesem Punkt technisch unterscheiden, haben wir Virtual Server Managed vor drei Jahren umbenannt in WebServer bzw. WebServer Dedicated (wenn es sich um ein dediziertes Server-Produkt handelt).
Mit besten Grüßen
Wolf-Dieter
Bei mir hieß die Datei sshd_config. Dort habe ich den Port geändert und SSH neugestartet mit service ssh restart auf dem vServer.
Nun wollte ich fail2ban über Plesk anpassen, da ich den Service auch über Plesk aktiviert hatte.
Reicht es aus dort unter Jails -> SSH -> Einstellungen ändern den folgenden Eintrag abzuspeichern?
iptables[name=SSH, port=Neuen Port eingetragen, protocol=tcp]
Oder muss auch noch zusätzlich unter Jails -> Filter bearbeiten -> sshd den Eintrag ssh/d ändern?
Screenshot: http://screenshot.reloado.com/show/CqGaB-2581.html
Kann man die Variable ssh nicht einfach systemweit umändern?
Vielen Dank für diesen gelungenen Artikel!
Hallo Nick,
es reicht, wenn Du über Plesk den Eintrag unter Jails änderst, dann wird die entsprechende IP automatisch geblockt.
Mit besten Grüßen
Wolf-Dieter
Ist es beabsicht, dass beim Bild „fail2ban-hinzufügen.png“ die VPS IP-Adresse verschleiert wurde, jedoch beim letzen Bild (Abbildung-Logfile-Fail2ban.png) diese sichtbar ist?
Hallo Thomas,
obwohl es nur die Adressen von Testgeräten sind, sollten die IP-Adressen natürlich auch verschleiert sein. Habe ich gerade gefixed.
Vielen Dank
Wolf-Dieter
Hallo,
der Befehl „Iptables –L“ gehört auf „iptables –L“. Linux die Welt der Kleinschreibung.
Man könnte den Artikel über fail2ban erweitern auf DDos Attacken.
Gruß
Erich
Hallo Erich,
das war mal wieder die Word-Autokorrektur 🙁 Ist mir durchgegangen.
Vielen Dank für den Hinweis
Wolf-Dieter
Da Sie schon die pubkey Authentifizierung erwähnen würde ich noch einen einfachen Schritt weitergehen und komplett das interaktive Login abschalten.
Diese Einträge wirken Wunder:
PasswordAuthentication no
PermitEmptyPasswords no <– paranoia settings
Vielen Dank für die Ergänzung. Diese Einstellung kann man natürlich zusätzlich vornehmen, allerdings lässt sich dann kein zweiter passwortgeschützter Zugang zu Ihrem Server einrichten.
PermitEmptyPasswords no sollte natürlich immer gewählt werden.
Nachtrag:
Ist ein ähnlicher Artikel auch für Windows-Server geplant?
Klar, steht schon auf meiner Liste.
Leider haben die beschriebenen Schritte zum Ändern des SSH-Ports bei meinem Virtual Server (Starter) keinen Erfolg. Ich kann mich trotzdem noch über Port 22 einloggen. Woran kann das liegen?
Hallo Stephan,
das lässt sich allgemein schwer beurteilen. Eventuell hat Du vergessen, den entsprechenden Port zu ändern. Wenn Du Kunde mit Deinem Server von Host Europe bist, kannst Du uns dazu aber gerne ein Support-Ticket einreichen. Meine Kollegen checken das dann.
Beste Grüße
Wolf-Dieter
Die Änderung bzgl. des zusätzlichen Users funktioniert soweit, allerdings ist noch nicht erklärt, wie ich denn dann an Root-Rechte komme, wenn sie doch mal benötigt werden („su -„).
Hallo Markus,
nach der Anmeldung erhältst Du die Root-Rechte durch su und die Eingabe des Passwortes.
Beste Grüße
Wolf-Dieter
Ich danke Ihnen für den informativen Artikel und die vielen nützlichen Tipps. Man kann in dieser Hinsicht nie vorsichtig genug sein. Hackerangriffe stehen an der Tagesordnung und man sollte sich gut dagegen absichern.
Aber woran merkt man eigentlich das der eigene Server gehackt wurde ???
Hallo,
Virtual Server und Root Server sind selbstadministrierte Systeme, daher müssen Sie als Administrator selbst überwachen, ob unbekannte Prozesse auf Ihrem Server laufen und was diese tun. Sollte uns auffallen , dass der Server eines Kunden gehackt wurde, wird dieser Kunde selbstverständlich von uns informiert. Mit besten Grüßen Wolf-Dieter Fiege
Suprt. Danke !
Könnte ein Zeichen, dass man gehackt wurde sein das beim Betreten des gehackten Benutzers die letzten Befehle nicht aufrufbar sind?
Hallo Gerolmed,
das kann ein Zeichen sein, muss es aber nicht.
Wenn Sie Kunde bei Host Europe sind, können Sie einen Auftrag für einen Check über Kunden-Informations-System einreichen. Die Analyse von illegalen Aktivitäten jeglicher Art ist allerdings ein kostenpflichtiger Auftrag, der mit 25 Euro pro 15 Minuten berechnet wird. Sie können z.B. eine günstige Einschätzung beauftragen, ob bei oberflächlicher Einsicht illegale Aktivitäten erkennbar sind.
Mit besten Grüßen
Wolf-Dieter Fiege
Hallo
habe fail2ban installiert (apt-get install fail2ban)
und dann das (cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local) eingeben und dann kam
root@vps:~# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
cp: cannot stat ‚/etc/fail2ban/jail.conf‘: No such file or directory
mfg Sebastian ma
Hallo Sebastian,
ohne das System zu können, ist das schwierig zu sagen. Wenn die Datei nicht vorhanden ist, dann ist ggf. die Installation nicht korrekt erfolgt.
Eventuell Installation wiederholen oder zum Check einen Supportauftrag über das Kunden-Informations-System (KIS) einreichen (das ist allerdings kostenpflichtig).
Mit besten Grüßen
Wolf-Dieter
Die ssh Portänderung schützt nur vor Scriptkiddis…
Ein einfacher Port Scan entlarft schon den neuen Port.
vielen Dank für die Tipps. Leider habe ich zu spät gelesen. Unser WP Projekt wurde irgendwann attaktiert. Um das System sauber zu halten , haben wir alles versucht. Eine Dienstleistung dafür kostet auch viel Geld. Nun habe ich neu WP angelegt und alle Tipps eingesetzt.
Hallo Herr Flack,
ja, die Reinigung von Hacking-Attacken kann schnell teuer werden. Ich freue mich, dass Sie Ihr System mit meinen Tipps sicherer machen konnten. Schauen Sie ruhig hin und wieder in unserem Blog vorbei. Wir veröffentlichen regelmäßig neue Artikel zum Thema Sicherheit. Es lohnt sich, auf diesem Gebiet immer up-to-date zu sein.
Mit besten Grüßen
Wolf-Dieter Fiege
Auch von mir vielen Dank für diesen Blog.
Nun habe ich mich auch einmal an die beschriebenen Änderungen gemacht (Portnummer, Benutzer, etc.). Allerdings habe ich folgende Fragen:
1. Wie berücksichtige ich die neue Portnummer in Bezug auf fail2ban beim vServer mit PLESK?
2. nach Änderung des Benutzers gem. vorstehender Beschreibung konnte ich keine Datei mehr editieren bzw. abspeichern.
Hallo Ulrich,
auch unter Plesk sind die Konfigurationsdateien an den üblichen Stellen vorhanden. Allerdings kannst Du das auch über Plesk selbst definieren. Wenn Du Kunde von Host Europe bist, solltest Du am besten über unser Kunden-Informations-System (KIS) einen Auftrag einreichen oder direkt unsere Hotline anrufen. In beiden Fällen können Dir meine Kollegen bei Fragen zu den Zugängen detailliert weiterhelfen.
Mit besten Grüßen
Wolf-Dieter
Hallo Herr Fiege,
lange hat es gebraucht, bis ich auf diesen Eintrag gestoßen bin.
Leider quitieren scheinbar alle Ports außer dem 22er mit einem:
„Connecting to lvps46-163-77-138.dedicated.hosteurope.de…
Unable to make a connection. Please try again.“
Exemplarisch am 50000er probiert schlägt das ebenso fehl
wie am 51515. Wo sähen Sie hier einen möglichen Fehler?
Viele Grüße
Hallo,
da es sich um ein Host Europe Produkt handelt, sollten Sie sich an unseren Support wenden. Meine Kollegen helfen Ihnen gerne weiter. Sie können die Einstellungen überprüfen und Ihnen am besten weiterhelfen. Hotline: 0800 404 5056.
Mit besten Grüßen
Wolf-Dieter Fiege
Hi,
zu Tipp 3:
SSH Keys sollten lokal, d.h. auf dem PC des Admins erzeugt werden.
Grund:
– Entropie des Servers ggf. gering
– möglicher Zugriff dritter (z.B. Sidechannel attacks)
– Hacker bekommt regulären SSH private key (verwendet auf mehreren Systemen?)
– Dauert auf dem Server ggf. ewig, je nach Leistung
Wenn wie in der Anleitung dann bitte
shred -u -n 1
NACH dem Download.