Home > Linux, Security > SSH absichern – Teil 1 – root darf mal etwas nicht…

SSH absichern – Teil 1 – root darf mal etwas nicht…

[aartikel]3897215233:left[/aartikel]
SSH absichern – dies ist etwas was jeder der Linux Server betreibt (egal ob in einem Firmennetzwerk, direkt über das Web erreichbar, oder beides) mit als erstes in den Angriff nehmen sollte. Linux hat einen Nachteil was Angriffe angeht: Der Benutzer auf den es alle zuerst abgesehen haben ist root und der heißt nunmal immer so.

Um root den direkten Login per SSH zu verbieten, muss nur eine Zeile in der /etc/ssh/sshd_config geändert werden:

PermitRootLogin yes
ändern zu
PermitRootLogin no

Diese Änderung in der SSH Konfiguration sorgt dafür das der direkte Login über SSH als Benutzer root untersagt wird, sprich unser SSH ist ein wenig mehr abgesichert.

Bevor diese Änderung live genommen wird, sollte jedoch überprüft werden, ob ein normaler Benutzer im System vorhanden ist, damit man sich anstelle von root mit diesem per SSH einloggen kann, sonst haut man sich die Tür zum Server selbst vor der Nase zu. Am besten zur Sicherheit einen Benutzer zusätzlich anlegen oder das Kennwort des vorhandenen Benutzers ändern, damit es mit dem SSH Login später auch garantiert klappt.

Der “Loginbenutzer” sollte, wie lalelu schrieb, natürlich in der sudoers stehen (sofern vorhanden), respektive, ganz sauber, über die Gruppe wheel das Recht bekommen root zu werden!

Zuerst also die Gruppe wheel anlegen:

addgroup wheel
Lege Gruppe »wheel« (GID 1031) an ...
Fertig.

Nun unseren Loginbenutzer für den SSH Login zu allen relevanten Gruppen hinzufügen:

usermod -G loginuser,adm,www-data,staff,wheel loginuser

Damit wirklich das System gesichert wird, sollte in der /etc/pam.d/su noch eine Zeile ausgetauscht werden, wie nachstehend beschrieben:

# auth       required   pam_wheel.so
ändern zu:
auth    required        pam_wheel.so    group=wheel

Nun dürfen alle Benutzer, welche Mitgleid der Gruppe wheel sind, mittels su zu root werden, alle anderen Benutzer dürfen es nicht. Wir haben also vollen Zugriff über SSH mit unserem Loginbenutzer, ganz ohne root direkten SSH Zugriff zu gewähren. Eventuelle andere Benutzer die SSH Zugriff haben, dürfen nicht zu root werden, was unsere Systemsicherheit wieder ein wenig verbessert.

Nachdem sichergestellt ist, dass wir auch ohne root ins System kommen:

/etc/init.d/ssh restart

Nun gleich mal mit dem SSH Clienten der Wahl einen SSH Login versuchen, einmal mit root, um zu schauen ob der nun auch wirklich nicht mehr darf, anschließend mit dem “Loginbenutzer”. Wenn es geklappt hat ist die Serverwelt wieder einen kleinen Schritt sicherer! Wenn nicht, ist etwas gehörig schief gelaufen… Dann hilft nur ein Login direkt an der Konsole und eine entsprechende Fehlersuche. Am besten testet man solch tiefgreifenden Änderungen, gerade am SSH, zuerst an einem Testsystem, an welches man auch herankommt, wenn man sich den SSH Daemon oder gar die Netzkonfig zerschossen hat. (mittels VMware kann man sich wunderbar “Testsysteme” auf den lokalen Client installieren ohne das Produktivsystem auf dem Server oder dem eigenem Client in Gefahr zu bringen…)

  1. 26. Oktober 2009, 09:55 | #1

    Man sollte sicherstellen, dass der Loginuser in den sudoers steht oder in der Gruppe wheels ist. Ansonsten kann dieser User keine Aufgaben als root audführen und man hat sich ebenso ausgesperrt.

  2. 26. Oktober 2009, 10:20 | #2

    Danke für den Hinweis lalelu – den Part hatte ich völlig übersehen, ist schon ne weile her das ich diese Absicherungen an meinen Systemen gemacht hab ;) Ich hoffe die nachgetragenen Änderungen passen auch zu 100%, werde das gleich mal an ner VM testen!

  3. 26. Oktober 2009, 11:48 | #3

    Nun aber… Alle Einstellungen und das Vorgehen im obigen Artikel sind getestet und alles funktioniert wie beschrieben!

  1. Bisher keine Trackbacks