AppArmor from scratch 2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
 
Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.
 
Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.
  
* cat /home/xinux/apparmor/schreiber.c
+
* apt install gcc apparmor-utils
 +
* cat /usr/local/bin/schreiber.c
  
 
<!----->
 
<!----->
Zeile 20: Zeile 21:
 
     }
 
     }
 
   
 
   
     fprintf(fd, "Schreiben erfolgreich in %s geschrieben\n", argv[i]);
+
     fprintf(fd, "Erfolgreich in %s geschrieben\n", argv[i]);
 
     fclose(fd);
 
     fclose(fd);
 
     }
 
     }
Zeile 26: Zeile 27:
 
     return 0;
 
     return 0;
 
  }
 
  }
* cd /home/xinux/apparmor
+
* cd /usr/local/bin
 
* gcc schreiber.c -o schreiber
 
* gcc schreiber.c -o schreiber
* ./schreiber Testdatei
+
* cd /root
 +
* schreiber Testdatei
 
* cat Testdatei
 
* cat Testdatei
  
Zeile 37: Zeile 39:
 
= Programm einschränken =
 
= Programm einschränken =
  
* sudo aa-genprof /home/xinux/apparmor/schreiber
+
* sudo aa-genprof /usr/local/bin/schreiber
* ./schreiber Testdatei
+
* schreiber Testdatei
 
* Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
 
* Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
* sudo aa-enforce home.xinux.apparmor.schreiber
+
* sudo aa-enforce usr.local.bin.schreiber
  
 
<!----->
 
<!----->
 
<span id="testen"></span>
 
<span id="testen"></span>
 +
 
= Testen =
 
= Testen =
  
* ./schreiber Testdatei
+
* schreiber Testdatei
 
* cat Testdatei
 
* cat Testdatei
  
 
<!----->
 
<!----->
  Schreiben erfolgreich in Testdatei geschrieben.
+
  Erfolgreich in Testdatei geschrieben.
 
* ./schreiber Testdatei2
 
* ./schreiber Testdatei2
  
 
<!----->
 
<!----->
 
  fopen failed for Testdatei2
 
  fopen failed for Testdatei2

Aktuelle Version vom 10. August 2023, 11:42 Uhr

Programm, welches eingeschränkt werden soll

Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.

  • apt install gcc apparmor-utils
  • cat /usr/local/bin/schreiber.c
#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    FILE *fd;
    for (i = 1; i < argc; i++) {
    fd = fopen(argv[i], "w");
    
    if (fd == NULL) {
        fprintf(stderr, "fopen failed for %s\n", argv[i]);
        return 1;
    }

    fprintf(fd, "Erfolgreich in %s geschrieben\n", argv[i]);
    fclose(fd);
    }

    return 0;
}
  • cd /usr/local/bin
  • gcc schreiber.c -o schreiber
  • cd /root
  • schreiber Testdatei
  • cat Testdatei
Erfolgreich in Testdatei geschrieben.

Programm einschränken

  • sudo aa-genprof /usr/local/bin/schreiber
  • schreiber Testdatei
  • Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
  • sudo aa-enforce usr.local.bin.schreiber

Testen

  • schreiber Testdatei
  • cat Testdatei
Erfolgreich in Testdatei geschrieben.
  • ./schreiber Testdatei2
fopen failed for Testdatei2