[HAFTUNGSAUSSCHLUSS] Mir ist klar, dass ich zu spät zur Party , aber ich möchte eine Antwort einfügen, die ich auf eine andere Frage gegeben habe , da ich der Meinung bin, dass sie den Lesern einen guten Einblick bieten kann, und diese Frage scheint der Ansprechpartner zu sein platz für grundlegende ssh info.
Es gab ein ähnliches Problem, das mir auffiel , nachdem ich diese Frage hier auf AskUbuntu gelesen und meinen VPS überprüft hatte, nur um eine Unmenge von Brute-Force-Versuchen zu sehen. Dann habe ich beschlossen, etwas zu unternehmen.
Wenn Sie nun gemäß der Frage, auf die ich verlinkt habe, fehlgeschlagene Anmeldeversuche auf Ihrem Computer über ssh sehen möchten (möglicherweise Brute-Force-Versuche oder ähnliches), geben Sie Folgendes ein:
grep sshd.\*Failed /var/log/auth.log | less
Wenn die Ausgabe aus mehreren Zeilen besteht, d. H. Aus vielen Brute-Force-Versuchen, insbesondere, wenn sie zwischen kurzen Intervallen stattgefunden haben, möchten Sie möglicherweise die folgenden Aktionen ausführen:
Ändern Sie die SSH-Konfigurationsdatei
Öffnen Sie dazu die Datei unter / etc / ssh / sshd_config mit Ihrem bevorzugten Editor vim /etc/ssh/sshd_config
.
1. Versuchen Sie, ssh von Port 22 zu verschieben : Suchen Sie nun die folgende Zeile:
# What ports, IPs and protocols we listen for
Port 22
und kommentieren Sie Port 22 aus und verwenden Sie jeden, den Sie mögen könnten. Beispiel:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Bitte beachten Sie, dass Ports unter 1024 eine spezielle (Root-) Berechtigung benötigen. Ich weiß nicht, wie das stören könnte, aber ich sage nur.
2. Deaktivieren Sie Root-Anmeldungen über ssh : Da der Root-Benutzername vorhersehbar ist und vollständigen Zugriff auf Ihr System bietet, ist es unklug, uneingeschränkt über SSH auf dieses Konto zuzugreifen. Suchen Sie die Zeile PermitRootLogin und setzen Sie sie auf no .
PermitRootLogin no
3. Deaktivieren Sie die Kennwortauthentifizierung : Generieren Sie SSH-Schlüssel und verwenden Sie sie, um sich bei Ihrem System anzumelden. Ohne aktivierte Passwörter müssen Angreifer Ihren privaten SSH-Schlüssel erraten (oder stehlen), um Zugriff auf Ihren Server zu erhalten. Etwas, das sehr, sehr schwierig ist. Suchen Sie die Zeile mit der Aufschrift PasswordAuthentication und setzen Sie sie auf no
PasswordAuthentication no
!WARNUNG! Bevor Sie dies tun, wenden Sie sich bitte diese Anleitung hier , wie die Zertifikatsauthentifizierung einzurichten.
HINWEIS: Nachdem Sie die Änderungen vorgenommen haben, verwenden Sie sudo /etc/init.d/ssh restart
. So stellen Sie über ssh eine Verbindung zu einem anderen Port her:ssh username@hostname.com -p <port_number>
.
Richten Sie eine Firewall ein
In diesem Handbuch erfahren Sie, wie Sie die äußerst leistungsfähige und effektive Firewall einrichten, die in Linux, IPTables , integriert ist .
Richten Sie Skripte ein, um Sie bei der Sicherheit zu unterstützen
Eine, die ich persönlich benutze und die mir schnell einfällt, ist Fail2Ban . Fail2ban überwacht Ihre Protokolldateien auf fehlgeschlagene Anmeldeversuche. Nachdem eine IP-Adresse die maximale Anzahl von Authentifizierungsversuchen überschritten hat, wird sie auf Netzwerkebene blockiert und das Ereignis wird angemeldet /var/log/fail2ban.log
. So installieren Sie es:sudo apt-get install fail2ban
Befehlshistorie über ssh prüfen
Es gibt einen Linux-Befehl mit dem Namen history
, mit dem Sie sehen können, welche Befehle bis zu diesem Zeitpunkt eingegeben wurden. Versuchen Sie, history
ein Terminal einzugeben, um alle Befehle bis zu diesem Zeitpunkt anzuzeigen. Es könnte helfen, wenn Sie root wären .
Um nach einem bestimmten Befehl zu suchen, versuchen Sie:history | grep command-name
So listen Sie alle Befehle nach ssh auf :fc -l ssh
Sie können Befehle auch mit vi bearbeiten (habe es noch nicht mit vim ausprobiert, obwohl ich davon ausgehe, dass es auch funktioniert):fc -e vi
Sie können den Verlauf auch löschen :history -c
HINWEIS: Wenn Sie kein Fan des Befehls sind, history
befindet sich in Ihrem Ausgangsverzeichnis ( cd ~
) auch eine Datei mit dem Namen .bash_history (wenn Sie bash verwenden), mit der Sie cat
alle in der bash-Shell eingegebenen Informationen anzeigen können .
unset HISTFILE
innerhalb von Bash zu tippen. In diesem Fall wird der Bash-Verlauf nicht aufgezeichnet.