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:
In der /etc/profile folgende Zeile hinzufügen um die Suche nach ausführbaren Dateien in der rbash auf ein einziges Verzeichnis zu beschränken:
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