View previous topic :: View next topic |
Author |
Message |
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5167 Location: Bavaria
|
Posted: Tue Dec 01, 2020 11:35 pm Post subject: D9 AppArmor Basis Profile II |
|
|
(Dieser Post ist Teil einer Installation-Anleitung. Falls nicht schon geschehen lies bitte: Installation Guide for Paranoid Dummies Post Nr. 3)
D.9 AppArmor Basis Profile II.
Alle BP nutzen keine Variablen, damit Du nicht gezwungen bist in Deinen AP einen zusätzlichen Include zu setzen (siehe D.4).
Als ich mir die EP angesehen habe war ich gelinde gesagt schockiert über einige Profile. Zuerst wird jedes /home/*/.config/-Verzeichnis einzeln und individuell freigegeben, nur um dann letztendlich beim Applikations-Profil für den Webbrowser (beinahe) alles zu erlauben ... Warum ? Damit der Mensch vor der Tastatur jede Datei aus seinem Home mit dem Browser ins Internet hochladen kann ?! Sorry - Sicherheit bedeutet nun mal auch Einschränkung. Wenn ich nicht verlangen kann, dass solche Dateien zuerst in /home/*/Download verschoben werden müssen, dann muss ich halt auf Sicherheit verzichten. Da helfen dann auch keine virtuelle Maschinen, wenn ich alle Userdaten in der gleichen Maschine vorhalte.
Wie Du sicher erkennst, habe ich im Basis-Profil für alle KDE-Anwendungen sehr viel erlaubt, da ich Konfigurations-Daten NICHT als User-Daten ansehe. Die einzigen User-Daten die ich in home/*/.config gefunden habe, waren die Bookmarks vom "falkon" ... naja, auf die hat der "falkon" eh Zugriff. Vorsicht gilt bei home/*/.local/share. Da gibt es sehr wohl User-Daten: Mails, Kontakte, etc.
Bevor ich Dir nun das ISAKDE übergebe, kurz ein Wort zu meiner KDE-Installation: Ich habe die neueste STABLE - täglich aktualisiert - also Stand: 30.11.2020 mit dem Profil: default/linux/amd64/17.1/desktop/plasma (stable). Ebenso habe ich "libinput" und "elogind". Genauer gesagt: Exakt so wie in A.1 und A.3 beschrieben. In meiner "make.conf" habe ich NICHTS für KDE erweitert, sondern "nur" etwas ausgeschlossen:
USE="-bluetooth -gtk -gtk3 -ipv6 -phonon -pulseaudio -semantic-desktop -thumbnail -wext -wifi -xcomposite"
Ich habe geprüft, welche Programme mit "semantic-desktop" berührt werden. Dabei ist nur "gwenview" betroffen, da ich dazu ein Profil habe. Inwieweit "thumbnail" die KDE-Installation verändert, kann ich nicht sagen. Prüfe am besten immer die AUDIT-Meldungen im Systemlog.
- Profile: /etc/apparmor.d/local/ISAKDE
- Beschreibung/Bemerkung: Das Basis-Profil für KDE-Anwendungen. Es benötigt ISAX11, welches Du in D.8 findest.
Code: | # version 6
include <local/ISAX11>
/usr/lib64/libexec/kf5/kioslave5 rix,
/usr/lib64/libexec/kf5/kioexec rix,
/usr/lib64/libexec/drkonqi rix,
deny /home/.*history mrwkl,
owner /home/*/.cache/{,**} rwk,
owner /home/*/.cache/* l -> /home/*/.cache/#[0-9]*[0-9],
owner /home/*/.config/{,**} rwk,
owner /home/*/.config/* l -> /home/*/.config/#[0-9]*,
owner /home/*/.config/session/* l -> /home/*/.config/session/#[0-9]*,
# never allow home/*/.local/share/** rw, because we have sensitive user-data in some dirs, e.g. in .local/share/akonadi
owner /home/*/.local/ rw,
owner /home/*/.local/share/ rw,
owner /home/*/.local/share/user-places.xbel* rw,
owner /home/*/.local/share/recently-used.xbel* rwk,
owner /home/*/.local/share/#[0-9]* rwk,
owner /home/*/.local/share/recently-used.xbel* l -> /home/*/.local/share/#[0-9]*,
owner /home/*/.local/share/mime/{,**} r,
owner /home/*/.local/share/kservices5/{,**} r,
owner /home/*/.local/share/plasma_notes/* r,
owner /home/*/.local/share/RecentDocuments/{,**} rwk,
owner /home/*/.local/share/RecentDocuments/*.desktop l -> /home/*/.local/share/RecentDocuments/#[0-9]*,
owner /run/user/[0-9]*/{,**} rwk,
owner /run/user/[0-9]*/*socket lrw -> /run/user/[0-9]*/#[0-9]*,
signal (receive, send) set=("term"), |
Edit 2023-04-21: In Version 5 wurde diese Zeile geändert:
Code: | owner /home/*/.local/share/recently-used.xbel* rw, |
auf
Code: | owner /home/*/.local/share/recently-used.xbel* rwk, |
und diese Zeile ergänzt:
Code: | owner /home/*/.local/share/#[0-9]* rwk, |
Edit 2023-04-23: Na toll ... heute wieder neue KDE frameworks (stable) ... und schon fehlt wieder eine Zeile. In Version 6 habe ich das hinzugfügt:
Code: | owner /home/*/.local/share/recently-used.xbel* l -> /home/*/.local/share/#[0-9]*, |
Als erstes musst Du folgendes Profil aktivieren, um das am höchsten gefährdete Programm von KDE überhaupt einzusperren ...
- Profile: /etc/apparmor.d/usr.bin.kcalc
- Beschreibung/Bemerkung: Profil für den Taschenrechner von KDE. Ich habe dieses Profil nicht nur aus Nostalgie hier, sondern vielmehr weil es als Skelett für alle Deine APs dienen kann.
Code: | # version 1
abi <kernel>,
profile kcalc /usr/bin/kcalc
{
include <local/ONLYLOCAL>
include <local/ISAKDE>
} |
... Du hast ja sicher D.8 gelesen ...
Als nächstes kommt eine Datei für Variablen. Diese wird aber nur bei Bedarf von APs inkludiert. Kein BP benötigt diese Datei. Warum ich sie überhaupt hier reinstelle ? Naja, weil man halt verschiedene Verzeichnisse hat. Bei mir ist z.b. eine zusätzlich Festplatte als "/hd" gemountet und deshalb habe ich diese Deklaration: @{MYDATADIRS}=/home/*/ /mnt/ /media/ /hd/
- Profile: /etc/apparmor.d/local/VARIABLES
- Beschreibung/Bemerkung: Alle Verzeichnisse in denen sich User-Daten befinden können hier zentral definiert werden.
Code: | # version 1
@{MYDATADIRS}=/home/*/ /mnt/ /media/ |
Basis-Profile USE...
- Profile: /etc/apparmor.d/local/USESOUND
- Beschreibung/Bemerkung: Muss von allen AP eingebunden werden die Sound ausgeben wollen. Ist getestet mit dem Kernel-Modul "snd_hda_intel"
Code: | # version 1
/dev/snd/* rw,
/dev/sound/* rw,
owner /home/*/.asoundrc r,
/proc/asound/** rw, |
- Profile: /etc/apparmor.d/local/USECD
- Beschreibung/Bemerkung: Wenn ein AP Zugriff auf das CD- oder auch DVD-Laufwerk benötigt. Habe ich getestet mit dem VLC. Dabei habe ich eine Audio-CD und auch eine DVD abspielen können. Muss evtl. für Blu-Ray noch erweitert werden.
Code: | # version 1
/dev/ r,
/dev/sr0 rw,
# for playing a DVD
owner /home/*/.dvdcss/** rw, |
- Profile: /etc/apparmor.d/local/USECUPS
- Beschreibung/Bemerkung: Habe ich mangels Drucker NICHT gestestet. Sollte nach menschlichen Ermessen aber funktionieren, da ich einfach aus den EP abgeschrieben habe ...
Code: | # version 0
owner /home/*/.cups/client.conf r,
owner /home/*/.cups/lpoptions r,
/run/cups/cups.sock rw, |
- Profile: /etc/apparmor.d/local/USEWEBCAM
- Beschreibung/Bemerkung: Habe ich ebenfalls mangels Webcam nicht getestet. Fraglich ob dies hier reichen soll. Ich glaube fast nicht; und freue mich über jede Rückmeldung !
Code: | # version 0
/dev/video[0-9]* rw, |
Du bist herzlich eingeladen diesen Thread mit Deinen Profilen zu erweitern.
.
Last edited by pietinger on Sat May 13, 2023 11:51 am; edited 2 times in total |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5167 Location: Bavaria
|
Posted: Fri Apr 21, 2023 10:17 pm Post subject: |
|
|
Ich habe soeben das Basis-Profile für KDE (ISAKDE) angepasst. Da habe ich wohl (vermutlich schon seit längerem) was übersehen ... |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5167 Location: Bavaria
|
Posted: Sun Sep 01, 2024 5:29 pm Post subject: |
|
|
Nach der heutigen Umstellung auf KDE6 musste ich 4 Zeilen im Profil ISAKDE ergänzen (die ersten 4 Zeilen nach dem include von ISAX11). Möglicherweise sind dafür andere Zeilen obsolet geworden - ich habe aber (noch) nichts entfernt, damit auch für KDE5 noch alles funktioniert.
Achtung: Ich fahre KDE6 (immer noch) unter X11 ! (Die erste Anmeldung mit Wayland war ein ... Desaster )
Code: | # version 7
include <local/ISAX11>
/usr/lib64/qt6/** rix,
/usr/libexec/kf6/** rwix,
/usr/share/qt6/** rwk,
owner /home/*/.local/state/* lrwk,
/usr/lib64/libexec/kf5/kioslave5 rix,
/usr/lib64/libexec/kf5/kioexec rix,
/usr/lib64/libexec/drkonqi rix,
deny /home/.*history mrwkl,
owner /home/*/.cache/{,**} rwk,
owner /home/*/.cache/* l -> /home/*/.cache/#[0-9]*[0-9],
owner /home/*/.config/{,**} rwk,
owner /home/*/.config/* l -> /home/*/.config/#[0-9]*,
owner /home/*/.config/session/* l -> /home/*/.config/session/#[0-9]*,
owner /home/*/.config/kde.org/* l -> /home/*/.config/kde-org/#[0-9]*,
owner /home/*/.fonts.conf rwk,
# never allow home/*/.local/share/** rw, because we have sensitive user-data in some dirs, e.g. in .local/share/akonadi
owner /home/*/.local/ rw,
owner /home/*/.local/share/ rw,
owner /home/*/.local/share/user-places.xbel* rw,
owner /home/*/.local/share/recently-used.xbel* rwk,
owner /home/*/.local/share/#[0-9]* rwk,
owner /home/*/.local/share/recently-used.xbel* l -> /home/*/.local/share/#[0-9]*,
owner /home/*/.local/share/mime/{,**} r,
owner /home/*/.local/share/kservices5/{,**} r,
owner /home/*/.local/share/plasma_notes/* r,
owner /home/*/.local/share/RecentDocuments/{,**} rwk,
owner /home/*/.local/share/RecentDocuments/*.desktop l -> /home/*/.local/share/RecentDocuments/#[0-9]*,
owner /run/user/[0-9]*/{,**} rwk,
owner /run/user/[0-9]*/*socket lrw -> /run/user/[0-9]*/#[0-9]*,
signal (receive, send) set=("term"), |
_________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|