Πώς να εξασφαλίσετε την επιφάνεια εργασίας του Linux με Iptables
Το Linux μπορεί να έχει φήμη για την ασφάλεια, αλλά δεν είναι τέλειο. Πολλές διανομές επίσης δεν έχουν τις καλύτερες προεπιλογές ασφαλείας, επομένως είναι καλύτερο να εφαρμόσετε ορισμένες βέλτιστες πρακτικές για την ασφάλεια. Ένα τέτοιο παράδειγμα είναι η χρήση ενός τείχους προστασίας.
Υπάρχουν μερικές επιλογές για τείχη προστασίας στο Linux, αλλά οι περισσότερες είναι απλώς περιτυλίξεις γύρω από το iptables. Για αυτόν τον οδηγό θα σας δείξουμε πώς να εργαστείτε απευθείας με το iptables.
Τι είναι το Iptables;
Το Iptables είναι το τείχος προστασίας του πυρήνα του Linux. Έρχεται με κάθε διανομή Linux και είναι ο πιο άμεσος τρόπος για να ελέγχετε την κυκλοφορία που εισέρχεται και εξέρχεται από τον υπολογιστή σας.
Το Iptables έχει τη φήμη ότι είναι περίπλοκο και μπορεί να είναι. Δεν χρειάζεται να γνωρίζετε τα πάντα για το iptables για να το χρησιμοποιήσετε αποτελεσματικά στην επιφάνεια εργασίας σας. Απλά χρειάζεστε βασικές γνώσεις για το πώς λειτουργεί και πώς είναι δομημένες οι κανόνες του.
Σχετικά : Πώς να χειριστείτε και να ρυθμίσετε το τείχος προστασίας στο Linux
Δομή Διοίκησης
Όλοι οι κανόνες iptables ακολουθούν την ίδια βασική δομή. Κάθε κανόνας είναι μια εντολή μιας γραμμής για το iptables που το λέει πώς να χειριστεί την κίνηση σε μια συγκεκριμένη θύρα. Ρίξτε μια ματιά στο παρακάτω παράδειγμα:
-A INPUT -i eth0 -p tcp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΟΙ --για την υποστήριξη 80 -j ACCEPT
Αυτό μπορεί να μοιάζει πολύ, αλλά είναι πολύ απλό όταν το σπάτε. Πρώτον, αυτός ο κανόνας αρχίζει με -A
επειδή θα προσαρτηθεί στους κανόνες iptables σας.
Στη συνέχεια, η σημαία -i
καθορίζει τη διασύνδεση για την οποία ισχύει ο κανόνας. Στην περίπτωση αυτή, είναι eth0
. Όταν γράφετε τους δικούς σας κανόνες, βεβαιωθείτε ότι γνωρίζετε ποια διεπαφή είστε συνδεδεμένοι στο δίκτυό σας.
Η ακόλουθη σημαία, -p
, ονομάζει το πρωτόκολλο. Αυτός ο κανόνας ισχύει για το tcp
, το οποίο είναι η διαδικτυακή κίνηση.
Η σημαία -m
είναι λίγο διαφορετική. Χρησιμοποιείται για να επιβεβαιώσει ότι υπάρχει μια προϋπόθεση που πρέπει να πληρούται για να μην απορριφθεί η κυκλοφορία. Η προϋπόθεση σε αυτόν τον κανόνα είναι η κατάσταση.
Το κράτος είναι στην πραγματικότητα η επόμενη σημαία. Πρέπει να δώσετε - --state
μια λίστα αποδεκτών καταστάσεων γραμμένη με όλα τα ανώτατα όρια και χωρισμένη με κόμματα. Ο κανόνας αυτός δέχεται νέες και καθιερωμένες συνδέσεις.
Η δεύτερη έως τελευταία σημαία εδώ είναι --sport
. Πρόκειται για τη "θύρα προέλευσης", και λέει στο iptables από πού προέρχεται η κίνηση. Υπάρχει επίσης μια σημαία --dport
που αντιπροσωπεύει τη "θύρα προορισμού". Χρησιμοποιείται για τους κανόνες OUTPUT
για τον χειρισμό από την οποία προέρχεται η κυκλοφορία λιμένων.
Τέλος, υπάρχει η σημαία -j
. Δίνει έμφαση στο ποια ενέργεια πρέπει να "πηδήσει". Σε αυτή την περίπτωση, θα πρέπει να ACCEPT
την κυκλοφορία που πληροί τις προηγούμενες συνθήκες.
Χρησιμοποιώντας ένα αρχείο
Μπορείτε να εισαγάγετε τους κανόνες σας σε iptables χειροκίνητα ένα προς ένα. Αυτό είναι απίστευτα κουραστικό και είναι πολύ εύκολο να χάσετε το σημείο όπου βρίσκεστε και τι κάνετε. Είναι πολύ καλύτερο να δημιουργήσετε ένα αρχείο κανόνων που μπορείτε να εισαγάγετε στο iptables ταυτόχρονα.
Δεν έχει σημασία πού δημιουργείτε το αρχείο. Άνθρωποι κάνουν ακόμη και στον κατάλογο /tmp
επειδή το iptables αποθηκεύει το αποτέλεσμα μετά την εισαγωγή του.
Δημιουργήστε το αρχείο σας. Αυτός ο οδηγός πρόκειται να χρησιμοποιήσει /tmp/iptables-ip4
. Στο αρχείο προσθέστε τις ακόλουθες δύο γραμμές. Όλοι οι κανόνες σας θα πάνε μεταξύ τους.
* φίλτρο # Οι κανόνες σας εδώ COMMIT
Δημιουργήστε τους κανόνες σας
Μπορείτε να ξεκινήσετε να ρυθμίζετε τους κανόνες σας. Αυτές είναι μόνο προτάσεις. Προφανώς, αν έχετε άλλες υπηρεσίες ή χρειάζεστε άλλα ανοιχτά λιμάνια, μπορείτε βεβαίως να τσιμπήσετε κάποια πράγματα ή να προσθέσετε τους δικούς σας κανόνες.
Loopback
Η διασύνδεση loopback είναι μια εσωτερική διασύνδεση που χρησιμοποιεί το Linux.
-A ΕΙΣΟΔΟΣ -i lo -j ΑΠΟΔΕΙΞΗ -A OUTPUT -o lo -j ΑΠΟΛΑΥΣΤΕ
Ping
Αυτό είναι θέμα προτίμησης. Πολλοί άνθρωποι δεν τους αρέσει να επιτρέπουν το ping σε όλους τους επιτραπέζιους υπολογιστές τους. Μπορεί να είναι χρήσιμο να το έχετε, όμως, για να δοκιμάσετε τις συνδέσεις. Αν θέλετε να επιτρέψετε ping, προσθέστε τους παρακάτω κανόνες. Εάν δεν το κάνετε, αποκλείστε τα.
-A INPUT -i eth0 -p icmp -m κατάσταση -σταμία ΝΕΟ -κύκλου τύπου 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΟΜΕΝΟ -j ΑΠΟΔΟΧΗ -A OUTPUT - o eth0 -p icmp -j ACCEPT
Ο ιστός
Προφανώς θέλετε να είστε σε θέση να συνδεθείτε στον Ιστό. Από την άλλη πλευρά, δεν θέλετε να επιτρέψετε συνδέσεις που προέρχονται από το Διαδίκτυο.
-A INPUT -i eth0 -p tcp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΟΜΕΤΡΟ --για την έκδοση 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΟΜΕΤΡΟ - αθλητισμός 443 -j ACCEPT -A OUTPUT -ο eth0 -p tcp -m tcp -δροφορία 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp -δέντρο 443 -j ACCEPT
Θα χρειαστεί επίσης να επιτρέψετε συνδέσεις DNS, έτσι ώστε ο υπολογιστής σας να μπορεί να χρησιμοποιήσει διευθύνσεις URL αντί μόνο για διευθύνσεις IP, διότι αυτό δεν θα ήταν πολύ βολικό. Αντικαταστήστε τη διεύθυνση IP του δρομολογητή σας για αυτή που χρησιμοποιείται εδώ.
-A INPUT -i ens3 -s 192.168.1.1 -p udp -sport 53 -m state -state ΕΓΚΑΤΕΣΤΗΜΕΝΕΣ, ΣΧΕΤΙΖΟΜΕΝΕΣ -j ΑΠΟΔΟΧΗ -ΑΝΑΡΧΕΙ -o ens3 -d 192.168.1.1 -p udp -dport 53 -m udp -j ACCEPT
χρόνος
Οι περισσότεροι επιτραπέζιοι υπολογιστές Linux χρησιμοποιούν NTP για να ρυθμίσουν και να διατηρήσουν το χρόνο του συστήματος από το Internet. Πρέπει να επιτρέψετε στον υπολογιστή σας να συνδεθεί σε ένα διακομιστή NTP για να πάρει το χρόνο.
-A εισόδου -i eth0 -p udp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΜΕΝΗ -δροφορία 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp -sport 123 -j ACCEPT
Εκτύπωση
Εκτός και αν χρησιμοποιείτε εκτυπωτή USB ή εξωτερικό διακομιστή εκτύπωσης, πρέπει να ενεργοποιήσετε τις συνδέσεις με το CUPS.
-Andput -p udp -m udp -dport 631 -j ACCEPT -A INPUT -p tcp -m tcp -dport 631 -j ACCEPT -A OUTPUT -p udp -m udp -port 631 -j ACCEPT -A ΕΞΟΔΟΣ -p tcp -m tcp - μεταφορά 631 -j ACCEPT
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Πιθανότατα θέλετε να μπορείτε να στέλνετε και να λαμβάνετε μηνύματα ηλεκτρονικού ταχυδρομείου. Το ηλεκτρονικό ταχυδρομείο μπορεί να είναι δύσκολο. Οι θύρες που επιτρέπονται εδώ είναι οι θύρες ηλεκτρονικού ταχυδρομείου SSL. Εάν πρέπει να χρησιμοποιήσετε μη ασφαλείς ηλεκτρονικές αλληλογραφίες, αντικαταστήστε αυτές τις θύρες.
# IMAP -A ΕΙΣΑΓΩΓΗ -i eth0 -p tcp -m κατάσταση - κράτος ΕΓΚΑΤΕΣΤΗΜΕΝΕΣ, ΣΧΕΤΙΚΕΣ --εξαγωγή 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp -δένεση 993 -j ACCEPT # POP3 -A ΕΙΣΑΓΩΓΗ -i eth0 -p tcp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΟΙ --sport 995 -j ACCEPT -A OUTPUT -ο eth0 -p tcp -m tcp -dport 995 -j ACCEPT # SMTP -A INPUT -i eth0 -p tcp -m κατάσταση -state ΕΓΚΑΤΕΣΤΗΜΕΝΕΣ, ΣΧΕΤΙΚΕΣ --εποστολή 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp -δέντρο 465 -j ACCEPT
SSH
Για να χρησιμοποιήσετε πλήρως τις συνδέσεις SSH, πρέπει να επιτρέψετε τόσο την είσοδο όσο και την έξοδο μέσω SSH.
# Είσοδος -A ΕΙΣΟΔΟΣ -i ens3 -p tcp -m κατάσταση -σταμία ΝΕΑ, ESTABLISHED --δέντα 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m κατάσταση -state ESTABLISHED -αποστολή 22 -j ACCEPT # Έξοδος -A OUTPUT -o ens3 -p tcp -m κατάσταση -σταμία ΝΕΑ, ESTABLISHED --δέντα 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m κατάσταση -state ESTABLISHED -αποστολή 22 -j ACCEPT
DHCP
Οι περισσότεροι επιτραπέζιοι υπολογιστές Linux χρησιμοποιούν DHCP για να λαμβάνουν αυτόματα μια διεύθυνση IP από ένα δρομολογητή. Το DHCP χρησιμοποιεί τα δικά του λιμάνια, επομένως πρέπει να είναι προσβάσιμα. Εάν χρησιμοποιείτε μια στατική διεύθυνση IP, δεν χρειάζεστε αυτούς τους κανόνες.
-A INPUT -i eth0 -p udp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΟ --ποστήριξη 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp -dport 67:68 -j ACCEPT
Απορρίψτε τα άλλα
Τέλος, θα πείτε στο iptables να απορρίψει απολύτως όλα όσα δεν επιτρέπετε ρητά στους παραπάνω κανόνες.
-A ΕΙΣΟΔΟΣ -j REJECT -A ΠΡΟΟΔΟΣ -j REJECT -A OUTPUT -j REJECT
Μετά από όλα, οι κανόνες σας θα πρέπει να φαίνονται κάτι τέτοιο.
Εισαγωγή των κανόνων σας
Τώρα έχετε μια πλήρως λειτουργική λίστα κανόνων iptables. Απλά πρέπει να το παραδώσετε στο iptables για να το χρησιμοποιήσετε.
Σε περίπτωση που ορισμένοι κανόνες έχουν προστεθεί με την πάροδο του χρόνου, ξεκαθαρίστε τις. Μετά από αυτές τις εντολές, θα δείτε τις προεπιλογές που επιτρέπουν τα πάντα.
sudo iptables -F && sudo iptables -X
Με αυτούς που έχουν περάσει, μπορείτε να επαναφέρετε τα νέα από το αρχείο που δημιουργήσατε.
sudo iptables-επαναφορά </ tmp / itpables-ip4
Ο υπολογιστής σας χρησιμοποιεί τώρα τους νέους κανόνες iptables. Μπορείτε να τα ελέγξετε.
sudo iptables -S
Ωστόσο, δεν είναι ακόμα μόνιμα. Εάν κάνετε επανεκκίνηση του υπολογιστή σας τώρα, θα έχετε έναν πραγματικά άσχημο χρόνο.
Κάνοντάς τους μόνιμο
Υπάρχουν διάφοροι τρόποι για να καταστούν οι κανόνες μόνιμοι. Διαφέρουν για κάθε διανομή. Αυτός ο οδηγός θα επικεντρωθεί στα συστήματα που βασίζονται στο Debian και το Ubuntu, αφού είναι τα πιο δημοφιλή.
Υπάρχει ένα διαθέσιμο πακέτο, που ονομάζεται iptables-persistant
, το οποίο χειρίζεται την αποθήκευση και την επαναφορά του iptables. Το μόνο που έχετε να κάνετε είναι να το εγκαταστήσετε.
sudo apt εγκαταστήσετε το iptables-επίμονο
Κατά τη διάρκεια της εγκατάστασης, το πακέτο θα σας ρωτήσει αν θέλετε να αποθηκεύσετε τη διαμόρφωσή σας. Επιλέξτε "Ναι".
Στο μέλλον, εάν θέλετε να προσθέσετε κανόνες, μπορείτε να αποθηκεύσετε ξανά εκτελώντας την ακόλουθη εντολή.
sudo service netfilter-επίμονη αποθήκευση
Τώρα έχετε τον έλεγχο της κυκλοφορίας που διαρρέει ο υπολογιστής σας. Υπάρχει σίγουρα κάτι περισσότερο που μπορείτε να κάνετε με το iptables, αλλά θα πρέπει να αισθάνεστε σίγουροι με τα βασικά πρώτα.