Ich hatte ein paar Sicherheitsprobleme mit einem Server von mir, ein paar SSH-Benutzer haben Feuer gelegt, auch bekannt als Probleme.
Ich würde gerne:
- Verfolgen Sie Benutzeranmeldungen und Abmeldungen
- Verfolgen Sie die Aktivitäten dieser SSH, um böswillige Aktivitäten zu entdecken
- Verhindern, dass Benutzer Protokolle löschen
Ich bin kein großer Systemadministrator und in dieser Angelegenheit ziemlich unerfahren. Daher wäre jeder Rat sehr willkommen und sehr hilfreich. :)
unset HISTFILE
innerhalb von Bash zu tippen. In diesem Fall wird der Bash-Verlauf nicht aufgezeichnet.~/.bash_history
oder~/.bashrc
) angezeigt wird$HISTFILE
. Dies kann jedoch durchaus legitim sein (z. B. wenn der Benutzer nur ausführenzsh
oder alternativ eine eigene Option festlegen möchtebashrc
).[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:
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:
und kommentieren Sie Port 22 aus und verwenden Sie jeden, den Sie mögen könnten. Beispiel:
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 .
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
!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 [email protected] -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 Siecat
alle in der bash-Shell eingegebenen Informationen anzeigen können .quelle
Ein bisschen übertrieben, aber mit dem "Process Event Connector" können Sie alles sehen, was auf Ihrem System läuft:
http://www.outflux.net/blog/archives/2010/07/01/reporting-all-execs/
quelle
quelle
Abgesehen von der Anmeldung selbst gibt es keine sichere Möglichkeit, Benutzeraktionen nach der Anmeldung zu verfolgen / zu protokollieren, vorausgesetzt, sie verfügen über grundlegende Linux-Kenntnisse und können die Shell-Protokollierung deaktivieren oder einfach Befehle von anderen Shells (z. B. Python) ausführen.
Stattdessen sollten Sie bei der Bereitstellung des SSH-Zugriffs konservativ vorgehen. Brauchen sie ihn wirklich? Es ist nicht üblich, SSH-Zugriff zu gewähren, es sei denn, Sie sind im Shell-Bereitstellungsgeschäft tätig.
quelle