SELinux vs AppArmor: Σύγκριση για διακομιστές Linux

15 λεπτά ανάγνωσης - 21 Μαΐου 2026

hero section cover
Πίνακας περιεχομένων
  • SELinux vs AppArmor: Ποιο πλαίσιο MAC ταιριάζει στον διακομιστή σας;
  • Πώς λειτουργεί το SELinux
  • Πώς λειτουργεί το AppArmor
  • Παράλληλη σύγκριση
  • Βασική διαμόρφωση
  • Ποιο πρέπει να χρησιμοποιήσετε;
Κοινοποίηση

Σύγκριση SELinux και AppArmor για την ασφάλεια διακομιστών Linux: Μάθετε πώς λειτουργεί το κάθε πλαίσιο MAC, τις βασικές διαφορές και ποιο να επιλέξετε για τη δική σας εγκατάσταση φιλοξενίας.

SELinux vs AppArmor: Ποιο πλαίσιο MAC ταιριάζει στον διακομιστή σας;

Τόσο το SELinux όσο και το AppArmor επιβάλλουν τον Υποχρεωτικό Έλεγχο Πρόσβασης (MAC) στο Linux, περιορίζοντας τις δυνατότητες των διεργασιών ακόμη και αν αποκτήσουν δικαιώματα root. Η διαφορά έγκειται στον τρόπο με τον οποίο το κάνουν. Το SELinux αποδίδει μόνιμες ετικέτες σε κάθε αρχείο και διεργασία. Το AppArmor χρησιμοποιεί αντ' αυτού κανόνες διαδρομής αρχείων. Αυτή η σχεδιαστική επιλογή καθορίζει όλα τα υπόλοιπα: την πολυπλοκότητα, το βαθμό ασφάλειας και ποια διανομή παρέχει ποιο εργαλείο ως προεπιλογή.


 

Πώς λειτουργεί το SELinux

Το SELinux αναπτύχθηκε αρχικά από την NSA και διατίθεται ως προεπιλογή στα RHEL, CentOS, Fedora και Rocky Linux. Επισήμανση κάθε αντικειμένου στο σύστημα, συμπεριλαμβανομένων αρχείων, διεργασιών, θυρών και υποδοχών, με ένα πλαίσιο ασφαλείας στη μορφή user:role:type:level. Το type πεδίο αναλαμβάνει το μεγαλύτερο μέρος της εργασίας μέσω ενός μηχανισμού που ονομάζεται Type Enforcement (TE).

Για παράδειγμα, ο διακομιστής ιστού Apache εκτελείται ως httpd_t. Τα αρχεία περιεχομένου ιστού φέρουν διαφορετικό τύπο. Εάν κανένας κανόνας πολιτικής δεν επιτρέπει ρητά httpd_t την πρόσβαση σε αυτόν τον τύπο περιεχομένου, το αίτημα απορρίπτεται. Πρόκειται για ένα μοντέλο «απόρριψης εξ ορισμού». Τίποτα δεν επιτρέπεται, εκτός αν ένας κανόνας ορίζει διαφορετικά.

Το SELinux υποστηρίζει επίσης την Ασφάλεια Πολλαπλών Επιπέδων (MLS) και την Ασφάλεια Πολλαπλών Κατηγοριών (MCS), οι οποίες ταξινομούν τα δεδομένα ανά επίπεδο ευαισθησίας και περιορίζουν την πρόσβαση αναλόγως. Το MCS είναι αυτό που προσδίδει στο SELinux την ισχυρή απομόνωση των κοντέινερ, διατηρώντας τα κοντέινερ διαχωρισμένα μεταξύ τους και από τον κεντρικό υπολογιστή. Αυτό έχει σημασία σε περιβάλλοντα Kubernetes και OpenShift όπου τα pods μοιράζονται έναν κόμβο.

Το μειονέκτημα είναι η πολυπλοκότητα. Το SELinux έχει μια απότομη καμπύλη εκμάθησης. Η αντιμετώπιση προβλημάτων άρνησης πρόσβασης σημαίνει ανάγνωση αρχείων καταγραφής ελέγχου, κατανόηση των πλαισίων ασφάλειας και, μερικές φορές, δημιουργία προσαρμοσμένων ενοτήτων πολιτικής με audit2allow. Για ομάδες χωρίς εξειδικευμένο προσωπικό ασφάλειας, αυτό το επιπλέον κόστος είναι πραγματικό.

Πώς λειτουργεί το AppArmor

Το AppArmor ακολουθεί μια διαφορετική προσέγγιση. Αντί να επισημαίνει αντικείμενα, συνδέει προφίλ ασφαλείας με εφαρμογές με βάση τις διαδρομές των αρχείων τους. Ένα προφίλ για /usr/sbin/nginx ορίζει ποιους καταλόγους μπορεί να διαβάσει το Nginx, σε ποιες θύρες μπορεί να συνδεθεί και ποιες δυνατότητες χρειάζεται. Τα προφίλ είναι αρχεία απλού κειμένου που αποθηκεύονται στο /etc/apparmor.d/.

Το AppArmor είναι το προεπιλεγμένο πλαίσιο MAC στα Ubuntu, Debian και SUSE. Αποτελεί μέρος του πυρήνα Linux από την έκδοση 2.6.36. Οι εφαρμογές χωρίς προφίλ επιστρέφουν στα τυπικά δικαιώματα DAC του Linux.

Το AppArmor λειτουργεί σε δύο τρόπους ανά προφίλ: Enforce (αποκλείει και καταγράφει παραβιάσεις) και Complain (καταγράφει παραβιάσεις χωρίς να τις αποκλείει). Αυτό καθιστά πρακτική την σταδιακή εφαρμογή νέων προφίλ. Ξεκινήστε σε λειτουργία Complain, ελέγξτε τα αρχεία καταγραφής, σφίξτε το προφίλ και μετά μεταβείτε σε Enforce.

Εργαλεία όπως aa-genprof και aa-logprof βοηθούν στη δημιουργία προφίλ διαδραστικά, παρακολουθώντας τι κάνει μια εφαρμογή και δημιουργώντας κανόνες από τη συμπεριφορά της. Σε σύγκριση με τα modules πολιτικής του SELinux, η σύνταξη είναι πολύ πιο εύκολη στην ανάγνωση και την επεξεργασία με το χέρι.

Το μειονέκτημα είναι ότι οι κανόνες που βασίζονται σε διαδρομές δεν ακολουθούν τα αρχεία όταν αυτά μετακινούνται. Ένας σκληρός σύνδεσμος ή μια σύνδεση bind μπορεί, θεωρητικά, να παρακάμψει έναν περιορισμό που βασίζεται σε διαδρομή. Το AppArmor επίσης δεν διαθέτει εγγενή υποστήριξη MLS/MCS, οπότε μπορεί να απομονώσει τα κοντέινερ από τον κεντρικό υπολογιστή αλλά όχι μεταξύ τους, όπως κάνει το SELinux.

Παράλληλη σύγκριση

ΧαρακτηριστικόSELinuxAppArmor
Μοντέλο ελέγχου πρόσβασηςΒασισμένο σε ετικέτες (περιβάλλοντα ασφαλείας)Βασισμένο σε διαδρομές (τοποθεσίες συστήματος αρχείων)
Προεπιλεγμένη στάσηΑπόρριψη όλωνΑποδοχή όλων (περιορισμοί ανά προφίλ)
Μετακίνηση αρχείωνΟι ετικέτες ακολουθούν το αρχείοΑσφάλεια συνδεδεμένη με τη διαδρομή
Υποστήριξη MLS/MCSΝαιΌχι
Απομόνωση κοντέινερΑπό κοντέινερ σε κοντέινερ και από κοντέινερ σε κεντρικό υπολογιστήΜόνο από κοντέινερ προς κεντρικό υπολογιστή
Μορφή πολιτικήςΣυμπιεσμένα δυαδικά modulesΑναγνώσιμα από τον άνθρωπο αρχεία κειμένου
Προεπιλεγμένες διανομέςRHEL, Fedora, CentOS, Rocky LinuxUbuntu, Debian, SUSE
Καμπύλη εκμάθησηςΑπότομηΜέτρια

Βασική διαμόρφωση

SELinux

Ελέγξτε την τρέχουσα κατάσταση:

sestatus
getenforce

Ξεκινήστε σε Permissive mode για να καταγράψετε παραβιάσεις χωρίς να μπλοκάρετε τίποτα:

setenforce 0

Χρησιμοποιήστε την πολιτική «targeted» για τους περισσότερους διακομιστές. Περιορίζει υπηρεσίες υψηλού κινδύνου, όπως διακομιστές ιστού και βάσεις δεδομένων, αφήνοντας όλα τα άλλα χωρίς περιορισμούς. Κάντε την μόνιμη στο /etc/selinux/config:

SELINUX=enforcing
SELINUXTYPE=targeted

Ελέγξτε τα πλαίσια ασφαλείας σε αρχεία και διεργασίες:

ls -Z /var/www/html
ps -eZ | grep httpd

Εάν μια υπηρεσία χρησιμοποιεί μια μη τυπική θύρα, ενημερώστε την πολιτική:

semanage port -a -t ssh_port_t -p tcp 9999

Για προσαρμοσμένες εφαρμογές που δημιουργούν αρνήσεις πρόσβασης, δημιουργήστε ένα module πολιτικής από το αρχείο καταγραφής ελέγχου:

ausearch -m avc -ts recent | audit2allow -M my_custom_policy
semodule -i my_custom_policy.pp

AppArmor

Ελέγξτε ποια προφίλ έχουν φορτωθεί:

sudo aa-status

Εγκαταστήστε το πακέτο βοηθητικών προγραμμάτων εάν χρειάζεστε εργαλεία διαχείρισης προφίλ:

sudo apt install apparmor-utils

Δημιουργήστε ένα προφίλ διαδραστικά ενώ εκτελείται η εφαρμογή:

sudo aa-genprof /path/to/binary

Βελτιώστε το προφίλ σαρώνοντας τα αρχεία καταγραφής για παραβιάσεις:

sudo aa-logprof

Αλλάξτε τη λειτουργία ενός προφίλ:

sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx

Ποιο πρέπει να χρησιμοποιήσετε;

Η πρακτική απάντηση για τους περισσότερους διαχειριστές: χρησιμοποιήστε ό,τι παρέχει η διανομή σας. Τα RHEL, CentOS, Fedora και Rocky Linux συνοδεύονται από SELinux. Τα Ubuntu, Debian και SUSE συνοδεύονται από AppArmor. Και τα δύο πλαίσια διαθέτουν ώριμα εργαλεία και πολιτικές για τις εγγενείς πλατφόρμες τους. Η μετάβαση σε μη προεπιλεγμένη επιλογή σε οποιαδήποτε διανομή προσθέτει εργασία και μειώνει την υποστήριξη της κοινότητας.

Πέρα από αυτό, αφήστε τις απαιτήσεις σας να αποφασίσουν:

  • Επιλέξτε το SELinux αν χρειάζεστε συμμόρφωση με τα πρότυπα PCI DSS, HIPAA ή DISA-STIG. Αν εκτελείτε φορτία εργασίας κοντέινερ πολλαπλών χρηστών σε Kubernetes ή OpenShift. Αν χρειάζεστε απομόνωση μεταξύ κοντέινερ σε κοινόχρηστους κεντρικούς υπολογιστές. Αν το περιβάλλον σας χειρίζεται απόρρητα δεδομένα ή δεδομένα διαβαθμισμένα ως ευαίσθητα.
  • Επιλέξτε το AppArmor εάν χρησιμοποιείτε Ubuntu ή Debian και θέλετε προστασία MAC χωρίς μεγάλη επιβάρυνση. Εάν η εγκατάστασή σας είναι ένας μεμονωμένος διακομιστής ή ένα μικρό σύμπλεγμα που εκτελεί τυπικές υπηρεσίες ιστού. Εάν η γρήγορη ανάπτυξη έχει μεγαλύτερη σημασία από τον λεπτομερή έλεγχο σε επίπεδο ετικετών.

Και τα δύο πλαίσια προσθέτουν ελάχιστο επιπλέον φόρτο κατά την εκτέλεση. Το SELinux αποθηκεύει προσωρινά τις αποφάσεις πρόσβασης στο Access Vector Cache του. Η φόρτωση πολιτικών του AppArmor μπορεί να προσθέσει μια μικρή καθυστέρηση κατά την εκκίνηση, αλλά έχει αμελητέα επίδραση κατά την εκτέλεση. Για τα περισσότερα φορτία εργασίας φιλοξενίας, κανένα από τα δύο δεν θα αποτελέσει εμπόδιο.

Εάν χρειάζεστε μια αξιόπιστη βάση φιλοξενίας με πλήρη πρόσβαση root για να διαμορφώσετε οποιοδήποτε από τα δύο frameworks, οι αποκλειστικοί διακομιστές ή τα VPS της FDC σας παρέχουν τον έλεγχο για να ρυθμίσετε το SELinux ή το AppArmor με τον τρόπο που απαιτεί το περιβάλλον σας.

Blog

Προτεινόμενα αυτή την εβδομάδα

Περισσότερα άρθρα
Διαδικασίες ζόμπι στο Linux: Αποτρέψτε, βρείτε, αφαιρέστε, αποτρέψτε

Διαδικασίες ζόμπι στο Linux: Αποτρέψτε, βρείτε, αφαιρέστε, αποτρέψτε

Μάθετε πώς να εντοπίζετε, να αφαιρείτε και να αποτρέπετε διεργασίες ζόμπι στο Linux. Εντολές, διορθώσεις κώδικα και συμβουλές παρακολούθησης για διαχειριστές διακομιστών.

15 λεπτά ανάγνωσης - 19 Μαΐου 2026

Λίστα ελέγχου σκλήρυνσης διακομιστών Linux

15 λεπτά ανάγνωσης - 8 Μαΐου 2026

Περισσότερα άρθρα
background image

Έχετε ερωτήσεις ή χρειάζεστε μια προσαρμοσμένη λύση

icon

Ευέλικτες επιλογές

icon

Παγκόσμια εμβέλεια

icon

Άμεση ανάπτυξη

icon

Ευέλικτες επιλογές

icon

Παγκόσμια εμβέλεια

icon

Άμεση ανάπτυξη