SELinux vs AppArmor: Σύγκριση για διακομιστές Linux
15 λεπτά ανάγνωσης - 21 Μαΐου 2026

Σύγκριση 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.
Παράλληλη σύγκριση
| Χαρακτηριστικό | SELinux | AppArmor |
|---|---|---|
| Μοντέλο ελέγχου πρόσβασης | Βασισμένο σε ετικέτες (περιβάλλοντα ασφαλείας) | Βασισμένο σε διαδρομές (τοποθεσίες συστήματος αρχείων) |
| Προεπιλεγμένη στάση | Απόρριψη όλων | Αποδοχή όλων (περιορισμοί ανά προφίλ) |
| Μετακίνηση αρχείων | Οι ετικέτες ακολουθούν το αρχείο | Ασφάλεια συνδεδεμένη με τη διαδρομή |
| Υποστήριξη MLS/MCS | Ναι | Όχι |
| Απομόνωση κοντέινερ | Από κοντέινερ σε κοντέινερ και από κοντέινερ σε κεντρικό υπολογιστή | Μόνο από κοντέινερ προς κεντρικό υπολογιστή |
| Μορφή πολιτικής | Συμπιεσμένα δυαδικά modules | Αναγνώσιμα από τον άνθρωπο αρχεία κειμένου |
| Προεπιλεγμένες διανομές | RHEL, Fedora, CentOS, Rocky Linux | Ubuntu, 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.ppAppArmor
Ελέγξτε ποια προφίλ έχουν φορτωθεί:
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 με τον τρόπο που απαιτεί το περιβάλλον σας.

Διαδικασίες ζόμπι στο Linux: Αποτρέψτε, βρείτε, αφαιρέστε, αποτρέψτε
Μάθετε πώς να εντοπίζετε, να αφαιρείτε και να αποτρέπετε διεργασίες ζόμπι στο Linux. Εντολές, διορθώσεις κώδικα και συμβουλές παρακολούθησης για διαχειριστές διακομιστών.
15 λεπτά ανάγνωσης - 19 Μαΐου 2026
Λίστα ελέγχου σκλήρυνσης διακομιστών Linux
15 λεπτά ανάγνωσης - 8 Μαΐου 2026

Έχετε ερωτήσεις ή χρειάζεστε μια προσαρμοσμένη λύση
Ευέλικτες επιλογές
Παγκόσμια εμβέλεια
Άμεση ανάπτυξη
Ευέλικτες επιλογές
Παγκόσμια εμβέλεια
Άμεση ανάπτυξη