Während eines Audits /var/log/auth.log
auf einem meiner öffentlichen Webserver fand ich Folgendes:
Jan 10 03:38:11 Bucksnort sshd[3571]: pam_unix(sshd:auth): authentication failure;
logname= uid=0 euid=0 tty=ssh ruser= rhost=61.19.255.53 user=bin
Jan 10 03:38:13 Bucksnort sshd[3571]: Failed password for bin from 61.19.255.53
port 50647 ssh2
Auf den ersten Blick sieht dies wie typischer ssh
Login-Spam von zufälligen Hackern aus. Als ich genauer hinsah, bemerkte ich jedoch etwas anderes. In den meisten fehlgeschlagenen /var/log/auth.log
Einträgen heißt invalid user
es wie folgt:
Jan 9 10:45:23 Bucksnort sshd[3006]: Failed password for invalid user sales
from 123.212.43.5 port 10552 ssh2
Die beunruhigende Sache über diese Login - Nachricht fehlgeschlagen für bin
ist , dass es sich um eine gültige Benutzer in /etc/passwd
diesem selbst hat eine Login - Shell:
[mpenning@Bucksnort ~]$ grep ^bin /etc/passwd
bin:x:2:2:bin:/bin:/bin/sh
Ich dachte , ich bedeckt hatte , die alle Standardbenutzernamen , die remote könnte anmelden , wenn ich deaktiviert PermitRootLogin
in /etc/ssh/sshd_config
; das entdecken dieses eintrags eröffnete neue möglichkeiten in meinem paranoiden verstand. Wenn irgendwie Dienste bin
unterliefen, ist es aus der Ferne möglich, dass jemand einen SSH-Schlüssel bin
aus einem auf der Box ausgeführten Dienst in das Benutzerverzeichnis einfügt, sodass ich die Anmeldung für den bin
Benutzer nach Möglichkeit vollständig deaktivieren möchte .
Fragen
Dieser Server ist remote und teuer zu reparieren (dh ich bezahle für Remote-Hände, um eine KVM plus KVM-Miete anzuschließen). Ich versuche herauszufinden, was ich brechen könnte, wenn ich den
/etc/passwd
Eintrag so änderebin
:bin:x:2:2:bin:/bin:/bin/false
Ich habe die folgenden Befehle ausgeführt, um herauszufinden, wofür sie
bin
benötigt werden ... Diese Befehle enthielten jedoch keine Dateien und ich konnte keine Prozesse finden, deren Eigentümer ich warbin
. Was macht derbin
Benutzer überhaupt?$ sudo find / -group bin
$ sudo find / -user bin
Gibt es andere Benutzer, deren Login-Shells auf festgelegt werden sollen
/bin/false
? Zu Ihrer Information, ich habe bereits/bin/false
aufwww-data
.Bin ich zu paranoid?
Ich verwende Debian, wenn es darauf ankommt.
Antworten:
Ein Benutzer, der über eine gültige Shell und kein Kennwort verfügt, kann sich weiterhin mit nicht kennwortbasierten Methoden anmelden, wobei der häufigste ein SSH-Schlüssel ist. Eine gültige Shell ist erforderlich, um Cron-Jobs auszuführen. Eine gültige Shell ist auch erforderlich, um
su bin -c 'wibble'
zu arbeiten (zumindest unter Linuxsu bin -s /bin/sh -c 'wibble'
wird es auch funktionieren).Im Fall von führen die
bin
meisten Systeme niemals einen Befehl wiebin
im normalen Betrieb aus, daher/bin/false
wäre es in Ordnung , die Shell auf "OK" zu setzen.Es besteht kein Risiko, dass ein direkter Angriff das
bin
Anmelden über SSH ermöglicht, da dies das Erstellen/bin/.ssh/authorized_keys
als Benutzerbin
oder als Root erforderlich macht . Mit anderen Worten, der einzige Weg, um einzusteigen, besteht darin, einzusteigen. Eine gültige Shell erhöht jedoch das Risiko einer Fehlkonfiguration. Es kann auch einige Remote-Angriffe mit anderen Diensten als SSH zulassen. Ein Benutzer meldet beispielsweise , dass ein Angreifer ein Kennwort für diedaemon
Remote-Anmeldung über Samba festlegen und dieses Kennwort dann für die Anmeldung über SSH verwenden könnte.Sie können die SSH-Lücke schließen, indem Sie die Namen der Systembenutzer in einer
DenyUsers
Direktive/etc/ssh/sshd_config
angeben (Sie können leider keinen numerischen Bereich verwenden). Umgekehrt können Sie eineAllowGroups
Direktive setzen und nur die Gruppen zulassen, die physische Benutzer enthalten (z. B.users
wenn Sie all Ihren physischen Benutzern diese Gruppenmitgliedschaft gewähren).In Debian ( Nr. 274229 , Nr. 330882 , Nr. 581899 ) sind Fehler bezüglich dieses Problems aufgetreten , die derzeit offen sind und als "Wunschliste" klassifiziert sind. Ich stimme eher zu, dass dies Fehler sind, die Systembenutzer
/bin/false
als Shell haben sollten, es sei denn, es erscheint notwendig, etwas anderes zu tun.quelle
Sie müssen sich nicht um diese als Benutzer kümmern. Sie sind "Benutzer" im Sinne von Sicherheitsgruppen, keine Benutzer im Sinne von "Anmelden und Verwenden". Wenn Sie in "/ etc / shadow" nachsehen, werden Sie feststellen, dass all diese "Benutzer" keine Passwörter haben (entweder "x" oder "!" Anstelle eines langen gesalzenen Hashes). Dies bedeutet, dass sich diese Benutzer nicht anmelden können, egal was passiert.
Trotzdem weiß ich nicht, ob es eine gute Idee ist, "/ bin / sh" für alle diese Benutzer in "/ bin / false" zu ändern. Da Programme unter diesen Gruppen ausgeführt werden, können sie möglicherweise nicht die erforderlichen Befehle ausführen. Ich würde sie als "/ bin / sh" belassen.
Sie müssen sich keine Sorgen um diese Benutzer machen. Sorgen Sie sich nur um die Benutzer, die Sie erstellen (und diejenigen mit Hashes in "/ etc / shadow")
quelle
/etc/shadow
, wenn kein Hash-In vorliegt , aber wenn ein Dienst als Benutzer ausgeführt wird, kann theoretisch jemand einenssh
Anmeldeschlüssel eingeben, nicht wahr?rpcd
wären offene Ports kein Problem. Ich persönlich habe jedoch die Ergebnisse eines Remote-Exploits auf einem alten Solaris-Computer miterlebt, auf den der Angreifer über einenrpc
Exploit auf der Box zugreifen konnte .rhosts
war von diesemrpc
Benutzer aktiviert und beschreibbar (kann mich an keine weiteren Details erinnern ... es war vor Jahren) ... Ebenso~/.ssh/authorized_keys
scheint dies ein Risiko zu sein (auch ohne ein Passwort in/etc/shadow
)Ich glaube, dies ist kein Problem, da der Angreifer zum Einrichten eines öffentlichen SSH-Schlüssels im
bin
Home-Verzeichnis/bin
des Benutzers ( ) root-Zugriff auf das Dateisystem haben muss, was bedeutet, dass Sie sowieso geschraubt sind.Wenn Sie
bin
möchten , können Sie alle Authentifizierungsmethoden für den Benutzer in der Konfiguration von sshd mithilfe desMatchUser
Blocks deaktivieren .Das heißt, es sieht so aus, als ob der bin-Benutzer auf modernen, von Debian abgeleiteten Systemen nicht verwendet wird und lediglich eine Anspielung auf die Tradition ist oder zur Einhaltung einiger Standards da ist.
quelle