να ρυθμίστε ένα τείχος προστασίας ή τείχος προστασίας στο Linux, μπορούμε να χρησιμοποιήσουμε iptables, ένα ισχυρό εργαλείο που φαίνεται ξεχασμένο από πολλούς χρήστες. Αν και υπάρχουν άλλες μέθοδοι, όπως ebtables και arptables για φιλτράρισμα της κυκλοφορίας σε επίπεδο συνδέσμου ή Squid σε επίπεδο εφαρμογής, το iptables μπορεί να είναι πολύ χρήσιμο στις περισσότερες περιπτώσεις, εφαρμόζοντας καλή ασφάλεια στο σύστημά μας σε επίπεδο κυκλοφορίας και μεταφοράς.grid.
Ο πυρήνας του Linux υλοποιεί iptables, ένα μέρος που φροντίζει για το φιλτράρισμα των πακέτων και ότι σε αυτό το άρθρο σας μαθαίνουμε πώς να το ρυθμίσετε με απλό τρόπο. Με απλά λόγια, το iptables προσδιορίζει ποιες πληροφορίες μπορούν και δεν μπορούν να εισέλθουν, απομονώνοντας την ομάδα σας από πιθανές απειλές. Και παρόλο που υπάρχουν άλλα έργα όπως το Firehol, το Firestarter κ.λπ., πολλά από αυτά τα προγράμματα τείχους προστασίας χρησιμοποιούν iptables...
Λοιπόν, πάμε στη δουλειά, με παραδείγματα θα καταλάβετε τα πάντα καλύτερα (για αυτές τις περιπτώσεις είναι απαραίτητο να έχετε προνόμια, επομένως χρησιμοποιήστε sudo μπροστά από την εντολή ή γίνετε root):
Ο γενικός τρόπος χρήσης iptables για να δημιουργήσετε μια πολιτική φίλτρου είναι:
IPTABLES - ΕΠΙΧΕΙΡΗΜΑΤΑ I/O ACTION
όπου -ΕΠΙΧΕΙΡΗΜΑ είναι το επιχείρημα που θα χρησιμοποιήσουμε, συνήθως -P για τη δημιουργία της προεπιλεγμένης πολιτικής, αν και υπάρχουν άλλες όπως -L για να δείτε τις πολιτικές που έχουμε διαμορφώσει, -F για διαγραφή μιας πολιτικής που δημιουργήθηκε, -Z για επαναφορά των μετρητών byte και πακέτων κ.λπ. Μια άλλη επιλογή είναι -A για να προσθέσετε μια πολιτική (όχι από προεπιλογή), -I για να εισαγάγετε έναν κανόνα σε μια συγκεκριμένη θέση και -D για να διαγράψετε έναν δεδομένο κανόνα. Θα υπάρχουν επίσης άλλα επιχειρήματα για να υποδεικνύουν τα πρωτόκολλα -p, -port source port, -dport για θύρα προορισμού, -i εισερχόμενη διεπαφή, -o εξερχόμενη διεπαφή, -s διεύθυνση IP πηγής και -d διεύθυνση IP προορισμού.
Επιπλέον I/O θα αντιπροσώπευε εάν πολιτική εφαρμόζεται στην είσοδο INPUT, στην έξοδο OUTPUT ή είναι μια ανακατεύθυνση κίνησης FORWARD (υπάρχουν και άλλα όπως PREROUTING, POSTROUTING, αλλά δεν θα τα χρησιμοποιήσουμε). Τέλος, αυτό που ονόμασα ΔΡΑΣΗ μπορεί να πάρει την τιμή ΑΠΟΔΟΧΗ εάν αποδεχθούμε, ΑΠΟΡΡΙΨΗ εάν απορρίψουμε ή ΑΠΟΡΡΙΨΗ εάν εξαλείψουμε. Η διαφορά μεταξύ DROP και REJECT είναι ότι όταν ένα πακέτο απορρίπτεται με REJECT, το αρχικό μηχάνημα θα γνωρίζει ότι έχει απορριφθεί, αλλά με το DROP ενεργεί σιωπηλά και ο εισβολέας ή ο δημιουργός δεν θα γνωρίζουν τι συνέβη, ούτε θα ξέρουν αν έχετε τείχος προστασίας ή απλά η σύνδεση απέτυχε. Υπάρχουν και άλλα όπως το LOG, τα οποία στέλνουν μια συνέχεια του syslog...
Για τροποποίηση κανόνων, μπορούμε να επεξεργαστούμε το αρχείο iptables με το πρόγραμμα επεξεργασίας κειμένου που προτιμάμε, nano, gedit,… ή να δημιουργήσουμε σενάρια με κανόνες (αν θέλετε να τους παρακάμψετε, μπορείτε να το κάνετε βάζοντας ένα # μπροστά από τη γραμμή, ώστε να αγνοηθεί ως ένα σχόλιο) μέσω της κονσόλας με εντολές όπως θα εξηγήσουμε εδώ. Στο Debian και σε παράγωγα, μπορείτε επίσης να χρησιμοποιήσετε τα εργαλεία iptables-save και iptables-restore…
Η πιο ακραία πολιτική είναι να μπλοκάρουμε τα πάντα, απολύτως όλη η κίνηση, αλλά αυτό θα μας αφήσει απομονωμένους, με:
iptables -P INPUT DROP
να τα δεχτεί όλα:
iptables -P INPUT ACCEPT
Αν το θέλουμε αυτό όλη η εξερχόμενη κίνηση από τον εξοπλισμό μας είναι αποδεκτή:
iptables -P OUTPUT ACEPT
La Μια άλλη ριζική ενέργεια θα ήταν η διαγραφή όλων των πολιτικών από iptables με:
iptables -F
Ας πάμε σε πιο συγκεκριμένους κανόνες, φανταστείτε ότι έχετε διακομιστή ιστού και επομένως η κίνηση μέσω της θύρας 80 πρέπει να επιτρέπεται:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Και αν εκτός από τον προηγούμενο κανόνα, θέλουμε μια ομάδα με iptables ορατό μόνο από υπολογιστές στο υποδίκτυό μας και ότι περνά απαρατήρητο από ένα εξωτερικό δίκτυο:
iptables -A INPUT -p tcp -s 192.168.30.0/24 --dport 80 -j ACCEPT
Στην προηγούμενη γραμμή, αυτό που λέμε στους iptables είναι να προσθέσουμε έναν κανόνα -A, έτσι ώστε οι καταχωρήσεις INPUT και το πρωτόκολλο TCP, μέσω της θύρας 80, να γίνονται αποδεκτές. Τώρα φανταστείτε ότι θέλετε Η περιήγηση στον ιστό απορρίπτεται για τοπικά μηχανήματα που διέρχονται από το μηχάνημα που εκτελούν iptables:
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 DROP
Νομίζω ότι η χρήση είναι απλή, λαμβάνοντας υπόψη τι χρησιμεύει κάθε παράμετρος iptables, μπορούμε να προσθέσουμε απλούς κανόνες. Μπορείτε να κάνετε όλους τους συνδυασμούς και τους κανόνες που μπορούμε να φανταστούμε... Για να μην συνεχίσουμε πολύ, απλά προσθέστε ένα ακόμη πράγμα, και αυτό είναι ότι εάν το μηχάνημα επανεκκινηθεί, οι πολιτικές που δημιουργήθηκαν θα διαγραφούν. Οι πίνακες επανεκκινούνται και θα παραμείνουν όπως πριν, επομένως, αφού ορίσετε καλά τους κανόνες, αν θέλετε να τα κάνετε μόνιμα, πρέπει να τα κάνετε να ξεκινήσουν από το /etc/rc.local ή εάν έχετε Debian ή παράγωγα χρησιμοποιήστε τα εργαλεία που μας δίνονται (iptables-save, iptables-restore και iptables-apply).
Αυτό είναι το πρώτο άρθρο που έχω δει για το IPTABLES το οποίο, αν και πυκνό -απαιτεί μεσαίο επίπεδο γνώσεων-, ΠΑΕΙ ΑΜΕΣΑ ΣΤΟ ΣΗΜΕΙΟ.
Συνιστώ σε όλους να το χρησιμοποιούν ως "εγχειρίδιο γρήγορης αναφοράς" καθώς είναι πολύ καλά συμπυκνωμένο και επεξηγημένο. 8-)
Θα ήθελα να μιλήσετε σε ένα μελλοντικό άρθρο για το εάν η αλλαγή του συστήματος στις περισσότερες διανομές linux επηρεάζει κατά κάποιο τρόπο την ασφάλεια του linux γενικά και εάν αυτή η αλλαγή είναι προς το καλύτερο ή το χειρότερο του μέλλοντος και των διανομών linux . Θα ήθελα επίσης να μάθω τι είναι γνωστό για το μέλλον του devuan (debian χωρίς systemd).
Σας ευχαριστώ πολύ, κάνετε πολύ καλά άρθρα.
Θα μπορούσατε να φτιάξετε ένα άρθρο που να εξηγεί τον πίνακα παραμόρφωσης;
Αποκλεισμός μόνο του Facebook;