Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
D9 AppArmor Basis Profile II
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5147
Location: Bavaria

PostPosted: Tue Dec 01, 2020 11:35 pm    Post subject: D9 AppArmor Basis Profile II Reply with quote

(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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5147
Location: Bavaria

PostPosted: Fri Apr 21, 2023 10:17 pm    Post subject: Reply with quote

Ich habe soeben das Basis-Profile für KDE (ISAKDE) angepasst. Da habe ich wohl (vermutlich schon seit längerem) was übersehen ... :oops:
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5147
Location: Bavaria

PostPosted: Sun Sep 01, 2024 5:29 pm    Post subject: Reply with quote

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 :evil: )

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
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