Το AppArmor είναι μία εκτέλεση Υπομονάδας Ασφαλείας Linux υποχρεωτικών ελέγχων πρόσβαση βασισμένης σε ονόματα. Το AppArmor περιορίζει μεμονωμένα προγράμματα σε ένα σύνολο απ αριθμημένων αρχείων και προσχέδιων ικανοτήτων posix 1003.1e
Το AppArmor εγκαθιστάται και φορτώνεται από προεπιλογή. Χρησιμοποιεί προφίλ μιας εφαρμογής για να διαπιστώσει τι αρχεία και διακαιώματα απαιτεί η εφαρμογή. Μερικά πακέτα θα εγκαταστήσουν τα δικά του προφίλ, και επιπρόσθετα προφίλ μπορούν βρεθούν στο πακέτο apparmor-profiles.
Για να εγκαταστήσετε το πακέτο apparmor-profiles από ένα τερματικό εντολών:
sudo apt-get install apparmor-profiles
Τα προφίλ του AppArmor έχουν δύο καταστάσεις εκτέλεσης:
-
Complaining/Learning: οι παραβάσεις προφίλ επιτρέπονται και καταγράφονται. Χρήσιμο για έλεγχο και ανάπτυξη νέων προφίλ.
-
Enforced/Confined: ενισχύει την πολιτική προφίλ καθώς και την καταγραφή παραβάσεων.
Το πακέτο apparmor-utils περιέχει λειτουργίες γραμμής εντολών τις οποίες μπορείτε να χρησιμοποιήσετε ώστε να αλλάξετε την κατάσταση εκτέλεσης του AppArmor, να βρείτε την κατάσταση ενός προφίλ, να δημιουργήσετε νέα προφίλ, κλπ.
-
Το apparmor_status χρησιμοποιείται για να προβληθεί η τρέχουσα κατάσταση των προφίλ του AppArmor.
sudo apparmor_status -
Το aa-complain βάζει ένα προφίλ σε κατάσταση complain
sudo aa-complain /path/to/bin -
Το aa-enforce τοποθετεί ένα προφίλ σε κατάσταση enforce.
sudo aa-enforce /path/to/bin -
Ο κατάλογος
/etc/apparmor.dείναι εκεί όπου βρίσκονται τα προφίλ του AppArmor. Μπορεί να χρησιμοποιηθεί για να χειραγωγηθεί η κατάσταση όλων των προφίλ.Πληκτρολογείστε τα ακόλουθα για να τοποθετήσετε όλα τα προφίλ σε κατάσταση complain:
sudo aa-complain /etc/apparmor.d/*Για να τοποθετήσετε όλα τα προφίλ σε κατάσταση enforce:
sudo aa-enforce /etc/apparmor.d/* -
Το apparmor_parser χρησιμοποιείται για να φορτώσετε ένα προφίλ στον πυρήνα. Μπορεί επίσης να χρησιμοποιηθεί για να επαναφορτώσετε ένα ήδη φορτωμένο προφίλ χρησιμοποιώντας την επιλογή -r. Για να φορτώσετε ένα προφίλ:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aΓια να επαναφορτώσετε ένα προφίλ:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r -
Το
/etc/init.d/apparmorμπορεί να χρησιμοποιηθεί για να επαναφορτώσετε όλα τα προφίλ:sudo /etc/init.d/apparmor reload -
Ο κατάλογος
/etc/apparmor.d/disableμπορεί να χρησιμοποιηθεί μαζί με την επιλογή apparmor_parser -R για να απενεργοποιήσετε ένα προφίλ.sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/profile.name
Για να επανενεργοποιήσετε ένα απενεργοποιημένο προφίλ αφαιρέστε τον συμβολικό σύνδεσμο του προφίλ στο
/etc/apparmor.d/disable/. Ύστερα φορτώστε το προφίλ χρησιμοποιώντας την επιλογή -a.sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
-
Το AppArmor μπορεί να απενεργοποιηθεί, και η υπομονάδα πυρήνα να αποφορτωθεί πληκτρολογώντας τα ακόλουθα:
sudo /etc/init.d/apparmor stop sudo update-rc.d -f apparmor remove
-
Για να επανεργοποίησετε το AppArmor πληκτρολογείστε:
sudo /etc/init.d/apparmor start sudo update-rc.d apparmor defaults
|
|
|
Αντικαταστήστε το profile.name με το όνομα του προφίλ το οποίο θέλετε να παραποιήσετε. Επίσης, αντικαταστήστε το |
Τα προφίλ του AppArmor είναι απλά αρχεία κειμένου που βρίσκονται στο AppArmor. Τα αρχεία παίρνουν το όνομά τους από το πλήρες μονοπάτι του εκτελέσιμου αντικαθιστώντας το "/" με ".". Για παράδειγμα το /etc/apparmor.d/bin.ping είναι το προφίλ AppArmor για την εντολή /bin/ping.
Υπάρχουν δύο κύριοι τύποι κανόνων που χρησιμοποιούνται στα προφίλ:
-
Καταχωρήσεις μονοπατιου: που δίνουν λεπτομέρειες για το σε ποια αρχεία στο σύστημα αρχείων μπορεί να έχει πρόσβαση μια εφαρμογή
-
Καταχωρήσεις ικανοτήτων: καθορίζουν τι δικαιώματα επιτρέπεται να χρησιμοποιεί μια περιορισμένη διαδικασία.
Σαν παράδειγμα κοιτάξτε στο /etc/apparmor.d/bin.ping:
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
-
#include <tunables/global>: περίληψη δηλώσεων από άλλα αρχεία. Αυτό επιτρέπει σε δηλώσεις που αφορούν πολλές εφαρμογές να τοποθετηθούν σε ένα κοινό αρχείο.
-
/bin/ping flags=(complain): μονοπάτι στο πρόγραμμα του προφίλ, επίσης θέτει την κατάσταση σε complain.
-
capability net_raw,: επιτρέπει στην εφαρμογή πρόσβαση στο CAP_NET_RAW Posix.1e capability.
-
/bin/ping mixr,: επιτρέπει στην εφαρμογή πρόσβαση ανάγνωσης και εκτέλεσης στο αρχείο.
|
|
|
Αφού επεξεργαστείτε ένα αρχείο προφίλ το προφίλ θα πρέπει να επαναφορτωθεί. Δείτε το “Χρήση AppArmor” για λεπτομέρειες. |
-
Σχεδιάστε ένα δοκιμαστικό σχέδιο: Προσπαθήστε να σκεφτείτε πως η εφαρμογή θα πρέπει να ασκείτε. Το σχέδιο ελέγχου θα πρέπει να διαχωριστεί σε πολλές υποθέσεις ελέγχου. Κάθε υπόθεση ελέγχου θα πρέπει να έχει μια μικρή περιγραφή και να καταγράφει τα βήματα που ακολουθούν.
Κάποιες πρότυπες υποθέσεις ελέγχου είναι:
-
Εκκίνηση του προγράμματος.
-
Τερματισμός του προγράμματος.
-
Επαναφόρτωση του προγράμματος.
-
Έλεγχος όλων των εντολών που υποστηρίζονται από το σενάριο init.
-
-
Παραγωγή του καινούριου προφίλ: Χρησιμοποιείστε το aa-genprof για να παράγετε ένα καινούριο προφίλ. Από ένα τερματικό:
aa-genprofΓια παράδειγμα:
sudo aa-genprof slapd -
Για να συμπεριλάβετε το καινούριο σας προφίλ στο πακέτο apparmor-profiles, υποβάλετε ένα σφάλμα στο Launchpad εναντίον του πακέτου AppArmor:
-
Συμπεριλάβετε το σχέδιο ελέγχου και τις υποθέσεις ελέγχου.
-
Επισυνάψτε το καινούριο προφίλ στο σφάλμα.
-
Όταν ένα πρόγραμμα συμπεριφέρεται άσχημα, μηνύματα ελέγχου αποστέλνονται στα αρχεία ιστορικού. Το πρόγραμμα aa-logprof μπορεί να χρησιμοποιηθεί για να σαρώσετε τα αρχεία ιστορικού για μηνύματα ελέγχου AppArmor, να τα αναθεωρήσετε και να ενημερώσετε τα προφίλ. Από ένα τερματικό:
sudo aa-logprof
-
Δείτε το AppArmor Administration Guide για προηγμένες επιλογές διαμόρφωσης.
-
Για πληροφορίες για το πως να χρησιμοποιήσετε το AppArmor με άλλες κυκλοφορίες Ubuntu δείτε τη σελίδα AppArmor Community Wiki.
-
Η σελίδα OpenSUSE AppArmor είναι μια άλλη εισαγωγή στο AppArmor.
-
Ένα τέλειο μέρος για να ζητήσετε βοήθεια για το AppArmor, και να λάβετε μέρος στην κοινότητα Διακομιστή Ubuntu, είναι το κανάλι IRC #ubuntu-server στο freenode.

