Πώς να εγκαταστήσετε και να ρυθμίσετε το UFW - Ένα μη περίπλοκο τείχος προστασίας στο Debian/Ubuntu


Δεδομένου ότι οι υπολογιστές είναι συνδεδεμένοι μεταξύ τους, οι υπηρεσίες αναπτύσσονται γρήγορα. Το Ηλεκτρονικό ταχυδρομείο, τα Μέσα κοινωνικής δικτύωσης, το Διαδικτυακό κατάστημα, η Συζήτηση έως την Διάσκεψη Ιστού είναι υπηρεσίες που χρησιμοποιείται από τον χρήστη. Αλλά από την άλλη πλευρά, αυτή η συνδεσιμότητα αρέσει ακριβώς σε ένα μαχαίρι διπλής όψης. Είναι επίσης δυνατό να στέλνετε κακά μηνύματα σε αυτούς τους υπολογιστές όπως Ιός, κακόβουλο λογισμικό, trojan-apps είναι ένα από αυτά.

Το Διαδίκτυο, ως το μεγαλύτερο δίκτυο υπολογιστών, δεν είναι πάντα γεμάτο με καλούς ανθρώπους. Για να βεβαιωθούμε ότι οι υπολογιστές/διακομιστές μας είναι ασφαλείς, πρέπει να το προστατεύσουμε.

Ένα από τα στοιχεία που πρέπει να έχετε στον υπολογιστή/τους διακομιστές σας είναι το Τείχος προστασίας. Από τη Wikipedia, ένας ορισμός είναι:

Στους υπολογιστές, ένα τείχος προστασίας είναι ένα σύστημα ασφαλείας δικτύου που βασίζεται σε λογισμικό ή υλικό που ελέγχει την εισερχόμενη και εξερχόμενη κίνηση του δικτύου αναλύοντας τα πακέτα δεδομένων και προσδιορίζοντας εάν θα πρέπει να επιτραπούν ή όχι, με βάση το εφαρμοσμένο σύνολο κανόνων.

Το Iptables είναι ένα από τα τείχη προστασίας που χρησιμοποιείται ευρέως από διακομιστές. Είναι ένα πρόγραμμα που χρησιμοποιείται για τη διαχείριση της εισερχόμενης και εξερχόμενης κίνησης στον διακομιστή με βάση ένα σύνολο κανόνων. Γενικά, μόνο αξιόπιστη σύνδεση επιτρέπεται να εισέλθει στον διακομιστή. Αλλά το IPTables εκτελείται σε λειτουργία κονσόλας και είναι περίπλοκο. Όσοι είναι εξοικειωμένοι με κανόνες και εντολές iptables, μπορούν να διαβάσουν το παρακάτω άρθρο που περιγράφει τον τρόπο χρήσης του τείχους προστασίας iptables.

  1. Οδηγός βασικών IPTables (Linux Firewall).

Εγκατάσταση του τείχους προστασίας UFW σε Debian/Ubuntu

Για να μειωθεί η πολυπλοκότητα της ρύθμισης IPTables, υπάρχουν πολλά εμπρός. Εάν εκτελείτε Ubuntu Linux, θα βρείτε το ufw ως προεπιλεγμένο εργαλείο τείχους προστασίας. Ας αρχίσουμε να εξερευνούμε το τείχος προστασίας ufw.

Τι είναι το ufw

Το ufw (Uncomplicated Firewall) είναι μια διεπαφή για το πιο ευρέως χρησιμοποιούμενο τείχος προστασίας iptables και είναι πολύ άνετο για τείχη προστασίας που βασίζονται σε κεντρικό υπολογιστή. Το ufw παρέχει ένα πλαίσιο για τη διαχείριση του φίλτρου δικτύου, καθώς και παρέχει μια διεπαφή γραμμής εντολών για τον έλεγχο του τείχους προστασίας. Παρέχει φιλική προς το χρήστη και εύκολη στη χρήση διεπαφή για αρχάριους Linux που δεν είναι πολύ εξοικειωμένοι με τις έννοιες του τείχους προστασίας.

Ενώ, από την άλλη πλευρά, οι ίδιες περίπλοκες εντολές βοηθούν τους διαχειριστές να ορίζουν περίπλοκους κανόνες χρησιμοποιώντας τη διεπαφή γραμμής εντολών. Το ufw είναι ένα upstream για άλλες διανομές όπως το Debian, το Ubuntu και το Linux Mint.

Βασική χρήση ufw

Πρώτα, ελέγξτε εάν το ufw είναι εγκατεστημένο χρησιμοποιώντας την ακόλουθη εντολή.

sudo dpkg --get-selections | grep ufw

ufw 		install

Εάν δεν είναι εγκατεστημένο, μπορείτε να το εγκαταστήσετε χρησιμοποιώντας την εντολή apt όπως φαίνεται παρακάτω.

sudo apt-get install ufw

Πριν χρησιμοποιήσετε, θα πρέπει να ελέγξετε εάν το ufw εκτελείται ή όχι. Χρησιμοποιήστε την παρακάτω εντολή για να το ελέγξετε.

sudo ufw status

Εάν βρήκατε την Κατάσταση: ανενεργή, σημαίνει ότι δεν είναι ενεργή ή απενεργοποιημένη.

ΝΕΟ! Ένα απαραίτητο ebook για κάθε διαχειριστή Linux!

Λήψη δωρεάν eBook 696 σελίδων

Ενεργοποίηση/Απενεργοποίηση ufw

Για να το ενεργοποιήσετε, απλά πρέπει να πληκτρολογήσετε την ακόλουθη εντολή στο τερματικό.

sudo ufw enable

Firewall is active and enabled on system startup

Για να το απενεργοποιήσετε, απλώς πληκτρολογήστε.

sudo ufw disable

Καταγράψτε τους τρέχοντες κανόνες ufw

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

sudo ufw status verbose
Δείγμα εξόδου
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Πώς να προσθέσετε κανόνες ufw

Όπως βλέπετε, από προεπιλογή κάθε εισερχόμενη σύνδεση απορρίπτεται. Εάν θέλετε να απομακρυνθείτε το μηχάνημά σας, τότε πρέπει να επιτρέψετε τη σωστή θύρα. Για παράδειγμα, θέλετε να επιτρέψετε τη σύνδεση ssh. Εδώ είναι η εντολή για να το επιτρέψετε.

Να επιτρέπεται η πρόσβαση
sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Εάν ελέγξετε ξανά την κατάσταση, θα δείτε μια έξοδο όπως αυτή.

sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Εάν έχετε πολλούς κανόνες και θέλετε να βάλετε αριθμούς σε κάθε κανόνα, χρησιμοποιήστε την αριθμημένη παράμετρο.

sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

Ο πρώτος κανόνας λέει ότι επιτρέπεται η εισερχόμενη σύνδεση στη θύρα 22 από το Anywhere, και τα δύο πακέτα tcp ή udp. Τι γίνεται αν θέλετε να επιτρέψετε μόνο το πακέτο tcp; Στη συνέχεια, μπορείτε να προσθέσετε την παράμετρο tcp μετά τον αριθμό port. Ακολουθεί ένα παράδειγμα με έξοδο δείγματος.

sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)
Αρνηση πρόσβασης

Τα ίδια κόλπα εφαρμόζονται στον κανόνα Άρνηση. Ας πούμε ότι θέλετε να αρνηθείτε τον κανόνα ftp. Άρα δεν έχετε παρά να πληκτρολογήσετε.

sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Προσθήκη συγκεκριμένης θύρας

Μερικές φορές έχουμε μια προσαρμοσμένη θύρα που δεν ακολουθεί κανένα πρότυπο. Ας υποθέσουμε ότι αλλάξαμε τη θύρα ssh στον υπολογιστή μας από 22 σε 2290. Στη συνέχεια, για να επιτρέψουμε τη θύρα 2290, μπορούμε να την προσθέσουμε ως εξής.

sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

Μπορείτε επίσης να προσθέσετε περιοχή θύρας στον κανόνα. Αν θέλουμε να ανοίξουμε θύρα από 22902300 με πρωτόκολλο tcp, τότε η εντολή θα είναι έτσι.

sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

ενώ αν θέλετε να χρησιμοποιήσετε το udp, απλώς χρησιμοποιήστε την ακόλουθη εντολή.

sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Να θυμάστε ότι πρέπει να βάλετε ρητά το "tcp" ή το "udp", διαφορετικά θα λάβετε ένα μήνυμα σφάλματος παρόμοιο με το παρακάτω.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Προσθήκη συγκεκριμένης IP

Στο παρελθόν είχαμε προσθέσει κανόνες με βάση την υπηρεσία ή τη θύρα. Το Ufw σάς επιτρέπει επίσης να προσθέτετε κανόνες με βάση τη Διεύθυνση IP. Εδώ είναι η εντολή δείγματος.

sudo ufw allow from 192.168.0.104

Μπορείτε επίσης να χρησιμοποιήσετε μια μάσκα υποδικτύου για να διευρύνετε το εύρος.

sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Όπως μπορείτε να δείτε, η παράμετρος από θα περιορίσει μόνο την πηγή σύνδεσης. Ενώ ο προορισμός – ο οποίος αντιπροσωπεύεται από τη στήλη Προς – είναι Οπουδήποτε. Μπορείτε επίσης να διαχειριστείτε τον προορισμό χρησιμοποιώντας την παράμετρο "Προς". Ας δούμε το δείγμα για να επιτραπεί η πρόσβαση στη θύρα 22 (ssh).

sudo ufw allow to any port 22

Η παραπάνω εντολή θα επιτρέψει την πρόσβαση από οπουδήποτε και από οποιοδήποτε πρωτόκολλο στη θύρα 22.

Συνδυασμός παραμέτρων

Για πιο συγκεκριμένους κανόνες, μπορείτε επίσης να συνδυάσετε Διεύθυνση IP, πρωτόκολλο και θύρα. Ας υποθέσουμε ότι θέλουμε να δημιουργήσουμε κανόνα που να περιορίζει τη σύνδεση μόνο από το IP 192.168.0.104, μόνο το πρωτόκολλο tcp και τη θύρα 22. Τότε η εντολή θα είναι όπως παρακάτω.

sudo ufw allow from 192.168.0.104 proto tcp to any port 22

Η σύνταξη για τη δημιουργία κανόνα άρνησης είναι παρόμοια με τον κανόνα άδειας. Χρειάζεται μόνο να αλλάξετε την παράμετρο από να επιτρέπεται σε άρνηση.

Διαγραφή κανόνων

Κάποια στιγμή μπορεί να χρειαστεί να διαγράψετε τον υπάρχοντα κανόνα σας. Για άλλη μια φορά με το ufw είναι εύκολο να διαγράψετε κανόνες. Από το παραπάνω δείγμα, έχετε έναν κανόνα παρακάτω και θέλετε να τον διαγράψετε.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Υπάρχουν δύο τρόποι διαγραφής κανόνων.

Μέθοδος 1

Η παρακάτω εντολή θα διαγράψει κανόνες που ταιριάζουν με την υπηρεσία ftp. Επομένως, η θύρα 21/tcp που σημαίνει ftp θα διαγραφεί.

sudo ufw delete allow ftp
Μέθοδος 2

Αλλά όταν προσπαθήσατε να διαγράψετε τον πρώτο κανόνα στο παραπάνω παράδειγμα χρησιμοποιώντας την παρακάτω εντολή.

sudo ufw delete allow ssh

Or 

sudo ufw delete allow 22/tcp

Μπορεί να βρείτε ένα μήνυμα σφάλματος όπως π.χ.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

Τότε μπορείτε να κάνετε αυτό το κόλπο. Όπως αναφέραμε παραπάνω, μπορείτε να δείξετε τον αριθμό των κανόνων για να υποδείξετε ποιον κανόνα θέλουμε να διαγράψουμε. Ας σας το δείξουμε.

sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Στη συνέχεια, μπορείτε να διαγράψετε τον πρώτο κανόνα χρησιμοποιώντας. Πατώντας "y " θα διαγραφεί οριστικά ο κανόνας.

sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

Από αυτές τις μεθόδους θα δείτε τη διαφορά. Η Μέθοδος 2 θα ζητήσει επιβεβαίωση χρήστη πριν διαγράψει τον κανόνα, ενώ η μέθοδος 1 δεν είναι.

Πώς να επαναφέρετε τους κανόνες

Σε ορισμένες περιπτώσεις, μπορεί να θέλετε να διαγράψετε/επαναφέρετε όλους τους κανόνες. Μπορείτε να το κάνετε πληκτρολογώντας.

sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Εάν πατήσετε «y », τότε το ufw θα δημιουργήσει αντίγραφα ασφαλείας όλων των υπαρχόντων κανόνων πριν κάνει την επαναφορά του ufw σας. Η επαναφορά των κανόνων θα απενεργοποιήσει επίσης το τείχος προστασίας σας. Πρέπει να το ενεργοποιήσετε ξανά εάν θέλετε να το χρησιμοποιήσετε.

Προηγμένη Λειτουργικότητα

Όπως ανέφερα παραπάνω, το τείχος προστασίας ufw μπορεί να κάνει ό,τι μπορεί να κάνει το iptables. Αυτό επιτυγχάνεται χρησιμοποιώντας διάφορα σύνολα αρχείων κανόνων, τα οποία δεν είναι τίποτα άλλο από τα κατάλληλα αρχεία κειμένου iptables-restore. Ο λεπτός συντονισμός του ufw ή/και η τοποθέτηση πρόσθετων εντολών iptables που δεν επιτρέπονται μέσω της εντολής ufw είναι θέμα επεξεργασίας πολλών αρχείων κειμένου.

  1. /etc/default/ufw: Η κύρια διαμόρφωση για προεπιλεγμένες πολιτικές, υποστήριξη IPv6 και λειτουργικές μονάδες πυρήνα.
  2. /etc/ufw/before[6].rules: οι κανόνες σε αυτά τα αρχεία υπολογίζονται πριν από την προσθήκη κανόνων μέσω της εντολής ufw.
  3. /etc/ufw/after[6].rules: οι κανόνες σε αυτά τα αρχεία υπολογίζονται μετά από τυχόν κανόνες που προστίθενται μέσω της εντολής ufw.
  4. /etc/ufw/sysctl.conf: συντονισμοί δικτύου πυρήνα.
  5. /etc/ufw/ufw.conf: ορίζει εάν το ufw είναι ενεργοποιημένο ή όχι κατά την εκκίνηση και ορίζει το LOGLEVEL.

συμπέρασμα

Το UFW ως διεπαφή για τα iptables σίγουρα κάνει μια εύκολη διεπαφή για τον χρήστη. Ο χρήστης δεν χρειάζεται να θυμάται περίπλοκη σύνταξη iptables. Το UFW χρησιμοποιεί επίσης ως παράμετρο το «απλά αγγλικά».

Η Αποδοχή, η άρνηση, η επαναφορά είναι μία από αυτές. Πιστεύω ότι υπάρχουν πολλά περισσότερα iptable front-end εκεί έξω. Αλλά σίγουρα το ufw είναι μια από τις καλύτερες εναλλακτικές για χρήστες που θέλουν να ρυθμίσουν το τείχος προστασίας τους γρήγορα, εύκολα και φυσικά με ασφάλεια. Επισκεφτείτε τη σελίδα εγχειριδίου ufw πληκτρολογώντας man ufw για περισσότερες λεπτομέρειες.