Είναι συνηθισμένο να λέμε ότι δεν χρειάζεται ούτε Τείχος Προστασίας, ούτε αντιϊκό σε Linux συστήματα. Κρύβει μια αλήθεια αυτό, ειδικά αν συγκρίνουμε το Linux με τα Windows της Microsoft. Συνήθως έτσι γίνεται η σύγκριση, οπότε και φαίνεται πως το Linux είναι ένα απόρθητο φρούριο. Ναι, μπροστά στα τρύπια Windows, έτσι φαίνεται να είναι. Όμως, ποιο λειτουργικό σύστημα είναι εκείνο που δεν χρειάζεται προστασία από κακόβουλο λογισμικό;
Είναι αλήθεια πως οι κακοπροαίρετοι hackers (crackers), εκείνοι που θέλουν να κάνουν ζημιά (μικρή ή μεγάλη), ποσώς τους ενδιαφέρει το λειτουργικό που τρέχει ο υπολογιστής σας. Βαδίζουν βάσει ποσοστών και αφού το μεγαλύτερο ποσοστό των χρηστών χρησιμοποιεί Windows, χτυπάνε εκεί που έχουν τις περισσότερες πιθανότητες.
Έτσι, οι περισσότεροι ιοί, trojans, keyloggers κλπ, κατασκευάζονται βάσει του λειτουργικού συστήματος όπου υπάρχουν οι περισσότερες πιθανότητες να συναντήσουν «στον δρόμο τους». Εκτός των παραπάνω, η αρχιτεκτονική των Windows βοηθάει στην παραβίαση των προσωπικών δεδομένων και την απόκτηση διαχειριστικών δικαιωμάτων στο σύστημα, εν αντιθέσει με τα Unix-like λειτουργικά, όπου τα πράγματα είναι πιο δύσκολα.
Αυτό δεν αποκλείει όμως να κυκλοφορούν εκεί έξω κακόβουλα λογισμικά και για Linux. Το μεγαλύτερο κακό γίνεται συνήθως μέσω του διαδικτύου (Internet) στο οποίο είμαστε συνδεδεμένοι συνεχώς. Πολύ traffic ρε παιδί μου. Συνδέσεις και πακέτα πάνε, έρχονται, πάνε, έρχονται… ο τελικός χρήστης βέβαια δεν αντιλαμβάνεται τι παίζει από πίσω. Πώς επιτυγχάνεται όλη αυτή κυκλοφορία δεδομένων προς και από τον υπολογιστή του στο διαδίκτυο.
Τι πακέτα στέλνει και τι λαμβάνει, καθώς και πόσοι είναι οι κίνδυνοι να του σταλεί και να αποδεχτεί (συνήθως χωρίς καν να το αντιληφθεί) κάποιο πακέτο που δεν πρέπει και μετά όλο το traffic να περνάει μέσω γέφυρας από κάποιους οι οποίοι γνωρίζουν πώς να αναλύσουν τα δεδομένα των πακέτων που στέλνονται. Να μπορούν να τα διαβάσουν και να ανακαλύψουν πολλά ενδιαφέρονται πράγματα (κωδικούς, συνομιλίες… κλπ).
Η δουλειά του τείχους προστασίας είναι ακριβώς αυτή. Είναι να φιλτράρει, να σκανάρει τις συνδέσεις που έρχονται και εκείνες που φεύγουν προς και από τον υπολογιστή μας. Να μπλοκάρει όσες θεωρούνται untrusted (αναξιόπιστες) και να επιτρέπει όσες θεωρούνται αξιόπιστες ή έχει προσθέσει ο χρήστης την εμπιστοσύνη του σε αυτές (exception). Να ανοίγει και να κλείνει θύρες επικοινωνίας και να παρέχει στον χρήστη την δυνατότητα το ρυθμίσει όπως εκείνος θέλει (το ιδανικό θα είναι… εύκολα).
To Linux διαθέτει ένα από τα ισχυρότερα τείχη προστασίας. Αυτό μπορούμε να το παραφράσουμε και ως: Το Linux είναι από μόνο του ένα τείχος προστασίας. Υπάρχουν διανομές που χρησιμοποιούνται γι’ αυτόν τον σκοπό. Υπάρχει λογισμικό που θεωρείται, ίσως το καλύτερο τείχος προστασίας που κυκλοφορεί γενικά (iptables). Παρόλα αυτά, οι γνωστότερες διανομές, οι δημοφιλέστερες αυτών, δεν φαίνεται να ρίχνουν το απαιτούμενο βάρος.
Το Ubuntu για παράδειγμα, ως η δημοφιλέστερη Linux διανομή, έρχεται με ένα αρκετά απλό τείχος προστασίας, το οποίο μάλιστα είναι και απενεργοποιημένο από προεπιλογή. Αυτό είναι το UFW (Uncomplicated FireWall). Δεν υπάρχει καν γραφικό περιβάλλον προεγκατεστημένο, αλλά ο χρήστης πρέπει να ψάξει να βρει, να το εγκαταστήσει και να το ενεργοποιήσει αν θέλει (το γραφικό λέγεται Gufw).
Άλλο εργαλείο προστασίας που διαθέτει το Ubuntu είναι το apparmor. Πολύ καλό και δυνατό, δεν λειτουργεί ως τείχος προστασίας, αλλά ελέγχει τα δικαιώματα των εφαρμογών. Το θέμα είναι ότι για να το ρυθμίσει κάποιος, πρέπει να είναι… δεν ξέρω… ο developer ίσως; Δεν υπάρχει γραφικό περιβάλλον και όλα πρέπει να γίνουν μέσω τερματικού, αρχείων ρυθμίσεων, κανόνων, εντολών, προφίλ… κλπ (και αυτό εδώ, είναι αν και έλλειπε, κάτι εύκολο, φανταστείτε λοιπόν).
Για τον μέσο και προχωρημένο χρήστη Linux, ίσως να μην είναι δύσκολο, αλλά εδώ δεν μιλάμε για Linux Admins, Linux Guru… κλπ. Γι’αυτούς, τίποτα σχεδόν δεν είναι δύσκολο. Όλα τους φαίνονται απλά και εύκολα.
Αν το apparmor και το UFW σας φανούν δύσκολα στην ρύθμιση, τότε δοκιμάστε το iptables και το SELinux. Εκεί θα πέσει γέλιο. Μέσω τερματκού λέμε, έτσι; Έλα, μην κρυβόμαστε, μην το παίζουμε Linux Guru ενώ δεν είμαστε και «σιγά μωρέ υπάρχει το documentation» , «δώσε ένα man iptalbes ρε φίλε και διάβασε»… χμμμ.
Εδώ γράφω τα πράγματα όπως μου φαίνονται στην πραγματικότητα, χωρίς «ξερολικά», “Linux – Guru» σύνδρομα του στυλ «εγώ τα ξέρω και τα καταλαβαίνω όλα εύκολα και γρήγορα». Όχι, ούτε τα καταλαβαίνω εύκολα, ούτε γρήγορα. Όταν είδα το iptables για πρώτη φορά με έπιασε πονοκέφαλος. Το ίδιο και το SELinux. Είχα παρακολουθήσει μια διάλεξη μάλιστα, από κάποιον της Red Hat, που ισχυριζόταν πόσο εύκολο και απλό είναι το SELinux. Μας έπεισες. Εκτός του ότι δεν «κατάλαβα χριστό» από όσα έλεγε, μου φάνηκε αστείο πως προσπαθούσε να πείσει το κοινό ότι τελικά είναι ένα απλό στην χρήστη εργαλείο. Οκ, μπορεί να είμαι και χαζός, δεν ξέρω.
FirewallD
To FirewallD είναι το τείχος προστασίας που παρέχει το Fedora στους χρήστες του.
Δεν είναι ένα απλό Firewall όπως εκείνο του Ubuntu, αλλά περιέχει πολλές ρυθμίσεις όπως ζώνες(zones), allow ports, disable ports, panic mode… και πολλά άλλα. Μέσω τερματικού είναι ίσως δύσκολο στην χρήση και αυτό, αλλά το Fedora εδώ, μας παρέχει την λύση ενός πλήρους και απλού γραφικού παραθύρου. Η διαφορά εδώ, σε σχέση με άλλες διανομές, είναι πως στο Fedora, το συγκεκριμένο Firewall έρχεται προεγκατεστημένο, προενεργοποιημένο, καθώς και προρυθμισμένο στην πιο restricted μορφή του. Η προεπιλεγμένη ζώνη προστασίας είναι η public, δηλαδή σαν να χρησιμοποιείτε τον υπολογιστή σας σε ένα δημόσιο δίκτυο.
Το Fedora εδώ παρέχει μια απλή, στην ρύθμιση, λύση για τείχος προστασίας και λόγω της ιδιότητας του daemon (όπως δηλώνει και το D στο τέλος), μπορεί να ρυθμιστεί on the fly που λένε. Παλιότερα χρειαζόταν επανεκκίνηση του υπολογιστή σε κάθε αλλαγή, τώρα όμως υπάρχει το λεγόμενο Runtime View , όπου εκεί ρυθμίζεται το τείχος προστασίας μόνο για την συνεδρία (session) που τρέχει και μέχρι την επανεκκίνηση ή του υπολογιστή ή του daemon. Πάμε να το δούμε λίγο.
Ανοίγοντας την εφαρμογή Firewall, μας ζητά τον κωδικό του administrator, αφού φυσικά για να πειράξει κάποιος το τείχος προστασίας πρέπει να έχει και τα ανάλογα δικαιώματα.
Η εφαρμογή ρύθμισης λέγεται firweall-config.
Εκεί θα δούμε πως το default zone είναι το public. Στην παραπάνω εικόνα το έχω αλλάξει εγώ σε home δίκτυο. Υπάρχουν διάφορα zones όπως βλέπετε και μπορείτε να επιλέξετε το κατάλληλο, αναλόγως την περίσταση.
Από το Options μπορούμε να αλλάξουμε την default zone. Εδώ προτείνω home, εφόσον χρησιμοποιείτε τον υπολογιστή σας στο σπίτι. Για να γίνει η αλλαγή μόνιμη, θα πρέπει να επιλέξουμε πρώτα το Permanent από το configuration και όχι το Runtime. Το Runtime είπαμε πως χρησιμοποιείται μόνο για την εκάστοτε συνεδρία και μετά λήγει, επανέρχονται οι ρυθμίσεις στα «κανονικά» τους. Το firewall-config όμως, ανοίγει αυτόματα στο Runtime, οπότε αν θέλετε να κάνετε κάποια μόνιμη αλλαγή, αλλάξτε το πρώτα σε Permanent.
Στο services, μπορούμε να αλλάξουμε την συμπεριφορά κάθε υπηρεσίας ξεχωριστά, να προσθέσουμε κάποια θύρα, κάποιο πρωτόκολλο σύνδεσης που θέλουμε…κλπ. Λάβετε υπόψιν σας το μήνυμα κάτω που λέει πως οι υπηρεσίες μπορούν να τροποποιηθούν μόνο στο Permanent View.
Φυσικά εδώ κάνουμε μια μικρή παρουσίαση αυτού του τείχους προστασίας. Για τον απλό χρήστη, η αλλαγή των zones και άντε καμιά ενεργοποίηση της υπηρεσίας samba είναι αρκετά. Οι ρυθμίσεις του Firewall είναι πάρα πολλές και κάποιος που γνωρίζει από δίκτυα μπορεί να φτιάξει «παπάδες» εκεί πάνω.
Το ερώτημα τώρα είναι το εξής:
Μπορεί ένας χρήστης να αισθάνεται πιο ασφαλής σε Fedora, από ό,τι σε κάποια άλλη διανομή Linux που δεν περιέχει καν Firewall (ή περιέχει αλλά είναι απενεργοποιημένο;) Μήπως όλες (τουλάχιστον οι μεγάλες) διανομές θα έπρεπε να περιέχουν ένα τείχος προστασίας σαν της Fedora, από προεπιλογή;