Linux: Befehlssatz nach SSH Anmeldung limitieren

1

Um Linux abzusichern, sollte man für den Remote-Zugriff immer die SSH-Authentifizierung mittels Public-Key wählen und anschließend nur einem nicht root-Benutzer die Anmeldung per SSH erlauben. Um das ganze noch etwas zu verfeinern, kann man auch noch die Befehle, die der Benutzer für den SSH-Zugriff verwenden darf, einschränken. Dazu wird dem entsprechenden Benutzer die rbash als Shell zugewiesen und anschließend die Path-Variable auf ein separates Verzeichnis umgebogen, in dem anschließend Links auf die zur Verfügung gestellten Befehle erstellt werden.

In der Praxis sieht das ganze so aus:

Um die Suche nach ausführbaren Dateien in der rbash auf ein einziges Verzeichnis zu beschränken, müssen folgende Zeilen am Ende der Datei /etc/profile hinzugefügt werden:

if [ "$SHELL" = /bin/rbash ]; then
   PATH=/usr/rbin
fi

Anschließend dem Benutzer, dem die Anmeldung per SSH erlaubt ist, die rbash als Shell  zuweisen

chsh testuser -s /bin/rbash

Nun noch das entsprechende Verzeichnis erstellen und die gewünschten Binaries verlinken (minimal su)

mkdir /usr/rbin
ln -s $(which su) /usr/rbin/su

Oder je nach Wünsch noch weitere:

ln -s $(which dircolors) /usr/rbin/dircolors
ln -s $(which uptime) /usr/rbin/uptime 
ln -s $(which sed) /usr/rbin/sed
ln -s $(which w) /usr/rbin/w
ln -s $(which grep) /usr/rbin/grep
ln -s $(which pinky) /usr/rbin/pinky
ln -s $(which id) /usr/rbin/id
ln -s $(which cut) /usr/rbin/cut
ln -s $(which awk) /usr/rbin/awk
Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

1 Kommentar

  1. Interessant, kannte ich noch nicht. Quasi eine Vorstufe von chrooting.
    Kleine Anmerkung von mir: Man sollte (wie auch bei sudo-Berechtigungen) darauf achten, dass man keine Programme freigibt, die einen Shellprozess starten können. Das große Beispiel hierfür wäre sicherlich vi.

Antworten