CLOUD CONCEPT
Νερατζιωτίσσης 15, Μαρούσι, Αθήνα, 15124, Αττική
+30 211 8005 401
info@c2.gr
Το iptables είναι το firewall που παρέχεται μαζί με το Debian Distribution .
Επειδή το iptables είναι δύσκολο στη χρήση , τα Debian μας παρέχουν με ένα άλλο εργαλείο , το UFW (uncomplicated firewall) , το οποίο είναι ένα περιβάλλον για την εύκολη ρύθμιση του iptables .
Για να προχωρήσουμε με όλες τις ρυθμίσεις στο UFW , πρέπει να έχουμε έναν non-root-sudo λογαριασμό χρήστη .
Το UFW περιλαμβάνεται πάντα με τα Debian Distributions , αν για κάποιο λόγο όμως το έχουμε κάνει uninstall , μπορούμε να το ξανακάνουμε install με τη εντολή : sudo apt -get install ufw .
Τα παρακάτω βήματα έχουν γραφτεί με βάση το πρωτόκωλλο IPV4 . Αν ο Debian Server μας έχει ενεργοποιημένο και το πρωτόκωλλο IPV6 πρέπει να τσεκάρουμε αν είναι ενεργοποιημένο και στο UFW . Για να το ελέγξουμε θα ανοίξουμε το configuration file του UFW με έναν text editor :
Sudo vi etc/default/ufw
Ψάχνουμε την γραμμή IPV6 και την ρυθμίζουμε στο YES
….
IPV6=Yes
…..
Κάνουμε αποθήκευση . Τώρα το UFW έχει ρυθμιστεί και για τα 2 πρωτόκολλα .
Τα Default Policies είναι οι αρχικόι κανόνες που πρέπει να δώσουμε στο firewall . Αυτοί είναι οι κανόνες που εφαρμόζονται όταν δεν υπάρχει κάποια συγκεκριμένη οδηγία για το πως να χειριστεί μια σύνδεση .
Γενικά θέλουμε να απαγορεύονται όλες οι εισερχόμενες συνδέσεις προς τον server (εκτός από αυτές που θα επιτρέψουμε αργότερα ) , και να επιτρέπονται όλες οι εξερχόμενες . Για αυτό θα χρησιμοποιήσουμε τις εντολές :
sudo ufw default deny incoming
sudo ufw default allow outgoing
Στο προηγούμενο βήμα , απαγορέψαμε όλες τις εισερχόμενες συνδέσεις προς τον server μας . Τώρα θα φτιάξουμε έναν κανόνα να επιτρέπονται οι εισερχόμενες SSH συνδέσεις :
sudo ufw allow ssh
Δεν αρκεί όμως αυτό . Πρέπει να φτιάξουμε έναν κανόνα και για το port 22 , δηλαδή το default port που ακούει το SSH Daemon . Το port 22 είναι το default port , αν το έχουμε αλλάξει , προφανώς θα βάλουμε το νεο port στην εντολή :
sudo ufw allow 22
Για να ενεργοποιήσουμε το UFW , χρησιμοποιούμε την εντολή :
sudo ufw enable
Θα εμφανιστεί μια προειδοποίηση ότι η ενεργοποίηση του UFW μπορεί να διακόψει τις ήδη υπάρχουσες SSH συνδέσεις . Εμείς όμως ρυθμίσαμε το firewall πριν και δεν θα έχουμε θέμα . Πατάμε Y για να συνεχίσουμε , και τώρα το UFW έχει ενεργοποιηθεί !
Υπάρχουν αρκετοί τρόποι για να φτιάξουμε νέους κανόνες για το firewall . Ας δούμε αναλυτικά τους διάφορους τρόπους :
Με Port Ranges :
Μερικές εφαρμογές χρησιμοποιούν περισσότερα απο ένα port . Για παράδειγμα , οι συνδέσεις χ11 χρησιμοποιούν τα port 6000-6007. Οπότε αν φτιάχναμε έναν κανόνα θα έπρεπει να γράψουμε :
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
Με συγκεκριμένες IP :
Αν θέλουμε να επιτρέπουμε συνδέσεις απο μια συγκεκριμένη IP γράφουμε :
sudo ufw allow from 15.15.15.51
Επίσης , μπορούμε να επιτρέπουμε σε μια IP να συνδέεται μόνο σε ένα συγκεκριμένο Port . Αυτό γίνεται με την παρκάτω εντολή :
udo ufw allow from 15.15.15.51
Με χρήση Subnet
Αν θέλουμε να επιτρέψουμε όλες τις IP που είναι στο ίδιο subnet τότε αυτό γίνεται έτσι :
sudo ufw allow from 15.15.15.0/24
‘Οπως και πριν μπορούμε να επιτρέψουμε τις παραπάνω συνδέσεις σε συγκεκριμένα ports :
sudo ufw allow from 15.15.15.0/24 to any port
Με συγκεκριμένα Interfaces :
Για να δούμε τα network interfaces γράφουμε :
ip addr
Output Excerpt:
...
2: eth0:
...
3: eth1:
...
Τα πεδία στα κόκκινα προσδιορίζουν τα interfaces . Οπότε αν για παράδειγμα το δίκτυο μας έχει ένα public interface eth0 , μπορούμε να επιτρέπουμε HTTP traffic προς αυτό με :
sudo ufw allow in on eth0 to any port 80
Ως τώρα έχουμε φτιάξει γενικόυς κανόνες . Ας δούμε ένα άλλο σενάριο: Υποθέτουμε ότι δεχόμαστε ‘επίθεση’ απο μια συγκεκριμένη IP , και θέλουμε να την μπλοκάρουμε από το firewall . Αυτό θα γίνει έτσι :
sudo ufw deny from 15.15.15.51
Τώρα μπλοκάραμε την απο πάνω IP . To deny μπορούμε να το χρησιμοποιούμε και για να μπλοκάρουμε συνδέσεις http ή ssh πχ :
sudo ufw deny http
Ή
sudo ufw deny ssh
H διαγραφή κάποιου κανόνα από το firewall , γίνεται με 2 τρόπους . Είτε από τον αριθμό του κανόνα , είτε απο τον ίδιο τον κανόνα .Ας δούμε τις 2 περιπτώσεις :
Διαγραφή απο τον αριθμό κανόνα :
Γράφουμε την παρακάτω εντολή για να δούμε όλους τους κανόνες αριθμημένους :
sudo ufw status numbered
Numbered Output:
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW IN 15.15.15.0/24
[ 2] 80 ALLOW IN Anywhere
Αν για παράδειγμα θέλουμε να διαγράψουμε τον δεύτερο κανόνα , απλά εκτελούμε την :
sudo ufw delete 2
Διαγραφή απο τον ίδιο τον κανόνα
Σε αυτή την περίπτωση πρέπει να προσδιορίσουμε ακριβώς τον κανόνα που θέλουμε να διαγράψουμε . Για παράδειγμα αν θέλουμε να διαγράψουμε τον κανόνα allo http :
sudo ufw delete allow http
Ενώ αν θέλουμε να διαγράψουμε τον allow 80
sudo ufw delete allow 80
Οποιαδήποτε στιγμή θέλουμε , μπορούμε να δούμε την κατάσταση του UFW , με την εντολή :
sudo ufw status verbose
Αν ακολουθήσαμε το βήμα 3 και ενεργοποίησαμε το UFW θα πάρουμε την έξοδο :
Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
Αν για κάποιο λόγο θέλουμε να απενεργοποιήσουμε το UFW , το κάνουμε με την εντολή :
sudo ufw disable
Αν θέλουμε να φορτώσει απο την αρχή και να φτιάξουμε τους κανόνες απο το 0 τότε το κάνουμε reset με την εντολή :
sudo ufw reset
Να σημειώσουμε ότι με την εντολή reset , χάνονται ΟΛΕΣ οι ρυθμίσεις που κάναμε στο UFW .