ubuntuusers.de

Eingeschränkte Shell mit Apparmor

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Dieser Artikel beschreibt anhand eines einfachen Beispiels mit AppArmor wie man einen Benutzer mit Loginrechten auf wenige explizit definierte Systemaufrufe beschränken kann. Die hier vorgestellte Methodik steht keineswegs alleine. Als Alternativen sei an dieser Stelle auf die Verwendung von SELinux, Smack und eingeschränkte Shells verwiesen.

Anlegen der neuen Shell

Zunächst wird durch einen Hardlink eine neue Zugriffsmöglichkeit geschaffen. Voraussetzung dafür ist lediglich, dass sich der Link auf der selben Partition wie die ursprüngliche Shell befindet. Sofern möglich bietet sich /usr/local/bin als Zielpfad an.

sudo ln  /bin/bash /usr/local/bin/sicherheitsBash 

Die neue Shell wird anschließend in /etc/shells eingetragen und damit zur zugelassenen Loginshell.

Benutzer mit neuer Shell anlegen

Der Benutzer, dessen Rechte extrem eingeschränkt werden sollen, wird angelegt und ihm wird die neue Shell als Loginshell zugewiesen.

sudo adduser --shell /usr/local/bin/sicherheitsBash eingeschraenkt 

Rechte einräumen

Mittels visudo werden "eingeschraenkt" die Tätigkeiten ermöglicht, zu denen er in der Lage sein soll. In diesem Beispiel das Neuladen der Konfiguration des Apache Webservers.

eingeschraenkt ALL = NOPASSWD: /etc/init.d/apache2 reload

Apparmor Profil anlegen

Nun wird das AppArmor-Profil angelegt: /etc/apparmor.d/usr.local.bin.sicherheitsBash

/usr/local/bin/sicherheitsBash {
  /usr/bin/sudo pxr,
}

Hat man noch kein Profil für sudo, so kann zu Testzwecken "uxr" verwendet werden. Davon ist produktiv natürlich abzuraten.

Abschluss

Soll der neue Zugang für einen Menschen aus Fleisch und Blut und nicht für ein Skript dienen, so sollten nun noch einige Verschönerungsarbeiten durchgeführt werden. Meldungen wie

/etc/profile: Permission denied

sorgen nicht unbedingt für eine schöne Arbeitsumgebung. Mangels Autovervollständigung und History bietet es sich darüber hinaus an, sinnvolle Aliase oder Funktionen, je nach Shell, zu definieren.

Diese Revision wurde am 16. Dezember 2021 08:56 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, Shell