Πώς να χρησιμοποιήσετε το Port Knocking στο Linux (και γιατί δεν πρέπει)
Το Port knocking είναι ένας τρόπος για να ασφαλίσετε έναν διακομιστή κλείνοντας θύρες τείχους προστασίας—ακόμα και αυτές που γνωρίζετε ότι θα χρησιμοποιηθούν. Αυτές οι θύρες ανοίγουν κατ' απαίτηση εάν —και μόνο εάν— το αίτημα σύνδεσης παρέχει το μυστικό χτύπημα.
Το Port Knocking είναι ένα μυστικό χτύπημα
Στη δεκαετία του 1920, όταν απαγόρευση ήταν σε πλήρη εξέλιξη, αν ήθελες να μπεις σε α ομιλητικός, έπρεπε να ξέρεις το μυστικό χτύπημα και να το χτυπήσεις σωστά για να μπεις μέσα.
Το Port knocking είναι ένα σύγχρονο αντίστοιχο. Εάν θέλετε οι άνθρωποι να έχουν πρόσβαση σε υπηρεσίες στον υπολογιστή σας, αλλά δεν θέλετε να ανοίξετε το τείχος προστασίας σας στο διαδίκτυο, μπορείτε να χρησιμοποιήσετε το port knocking. Σας επιτρέπει να κλείνετε τις θύρες στο τείχος προστασίας σας που επιτρέπουν τις εισερχόμενες συνδέσεις και να τις ανοίγετε αυτόματα όταν γίνεται ένα προκαθορισμένο μοτίβο προσπαθειών σύνδεσης. Η σειρά των προσπαθειών σύνδεσης λειτουργεί ως το μυστικό χτύπημα. Ένα άλλο μυστικό χτύπημα κλείνει το λιμάνι.
Το port knocking είναι κάτι σαν καινοτομία, αλλά είναι σημαντικό να γνωρίζετε ότι είναι ένα παράδειγμα ασφάλεια μέσω της αφάνειας, και αυτή η ιδέα είναι θεμελιωδώς εσφαλμένη. Το μυστικό του τρόπου πρόσβασης σε ένα σύστημα είναι ασφαλές γιατί μόνο όσοι ανήκουν σε μια συγκεκριμένη ομάδα το γνωρίζουν. Αλλά από τη στιγμή που αυτό το μυστικό αποκαλυφθεί - είτε επειδή αποκαλύφθηκε, παρατηρηθεί, μαντέψετε ή επεξεργαστείτε - η ασφάλειά σας είναι άκυρη. Καλύτερα να προστατεύσετε τον διακομιστή σας με άλλους, ισχυρότερους τρόπους, όπως η απαίτηση συνδέσεις βασισμένες σε κλειδί για διακομιστή SSH .
Διαφήμιση
Οι πιο ισχυρές προσεγγίσεις για την ασφάλεια στον κυβερνοχώρο είναι πολυεπίπεδες, επομένως, ίσως το port knocking θα έπρεπε να είναι ένα από αυτά τα επίπεδα. Όσο περισσότερα στρώματα, τόσο το καλύτερο, σωστά; Ωστόσο, θα μπορούσατε να υποστηρίξετε ότι το knocking της θύρας δεν προσθέτει πολλά (αν μη τι άλλο) σε ένα σωστά σκληρυμένο, ασφαλές σύστημα.
Η ασφάλεια στον κυβερνοχώρο είναι ένα τεράστιο και περίπλοκο θέμα, αλλά δεν πρέπει να χρησιμοποιείτε το port knocking ως τη μόνη σας μορφή άμυνας.
ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να δημιουργήσετε και να εγκαταστήσετε κλειδιά SSH από το κέλυφος του Linux
Εγκατάσταση knockd
Για να δείξουμε το knocking της θύρας, θα το χρησιμοποιήσουμε για τον έλεγχο της θύρας 22, που είναι η θύρα SSH. θα χρησιμοποιήσουμε ένα εργαλείο που ονομάζεται knockd . Χρήση |_+_| για να εγκαταστήσετε αυτό το πακέτο στο σύστημά σας εάν χρησιμοποιείτε Ubuntu ή άλλη διανομή που βασίζεται στο Debian. Σε άλλες διανομές Linux, χρησιμοποιήστε το εργαλείο διαχείρισης πακέτων της διανομής σας Linux.
Πληκτρολογήστε τα εξής:
apt-get
Μάλλον το έχετε ήδη τείχος προστασίας iptables εγκατεστημένο στο σύστημά σας, αλλά ίσως χρειαστεί να εγκαταστήσετε το |_+_| πακέτο. Διαχειρίζεται την αυτόματη φόρτωση των αποθηκευμένων |_+_| κανόνες.
Πληκτρολογήστε τα εξής για να το εγκαταστήσετε:
iptables-persistent
Όταν εμφανιστεί η οθόνη διαμόρφωσης IPV4, πατήστε το πλήκτρο διαστήματος για να αποδεχτείτε την επιλογή Ναι.
Πατήστε ξανά το πλήκτρο διαστήματος στην οθόνη διαμόρφωσης IPv6 για να αποδεχτείτε την επιλογή Ναι και να προχωρήσετε.
Διαφήμιση
Η ακόλουθη εντολή λέει |_+_| για να επιτραπεί η συνέχιση των εγκατεστημένων και συνεχιζόμενων συνδέσεων. Τώρα θα εκδώσουμε μια άλλη εντολή για να κλείσουμε τη θύρα SSH.
Εάν κάποιος είναι συνδεδεμένος μέσω SSH όταν εκδώσουμε αυτήν την εντολή, δεν θέλουμε να αποκοπεί:
iptable
Αυτή η εντολή προσθέτει έναν κανόνα στο τείχος προστασίας, που λέει:
- Βλέπετε τρεις καταχωρήσεις openSSH. Αυτά αυξάνονται καθώς κάθε θύρα στοχεύεται από το βοηθητικό πρόγραμμα remote knock.
- Όταν πληρούνται και τα τρία στάδια της ακολουθίας ενεργοποίησης, μια καταχώριση που λέει ΑΝΟΙΞΕ ΣΟΥΣΑΜΙ, καταγράφεται
- Η εντολή για εισαγωγή του κανόνα στο |_+_| αποστέλλεται λίστα κανόνων. Επιτρέπει την πρόσβαση μέσω SSH στη θύρα 22 από τη συγκεκριμένη διεύθυνση IP του υπολογιστή που έδωσε το σωστό μυστικό χτύπημα (192.168.4.23).
- Ο χρήστης dave συνδέεται μόνο για λίγα δευτερόλεπτα και μετά αποσυνδέεται.
- Βλέπετε τρεις εγγραφές closeSSH. Αυτά αυξάνονται καθώς κάθε θύρα στοχεύεται από το βοηθητικό πρόγραμμα remote knock - λέει στον κεντρικό υπολογιστή που χτυπά τη θύρα να κλείσει τη θύρα 22.
- Αφού ενεργοποιηθούν και τα τρία στάδια, λαμβάνουμε ξανά το μήνυμα OPEN SESAME. Η εντολή αποστέλλεται στο τείχος προστασίας για να καταργηθεί ο κανόνας. (Γιατί να μην ΚΛΕΙΣΕΙ SESAME όταν κλείνει το λιμάνι; Ποιος ξέρει;)
- › Ο φάκελος του υπολογιστή είναι 40: Πώς το Xerox Star δημιούργησε την επιφάνεια εργασίας
- › Λειτουργίες έναντι τύπων στο Microsoft Excel: Ποια είναι η διαφορά;
- › Πώς να βρείτε το Spotify τυλιγμένο 2021
- › 5 ιστότοποι που κάθε χρήστης Linux πρέπει να προσθέτει σελιδοδείκτη
- & rsaquo; Cyber Monday 2021: Οι καλύτερες προσφορές της Apple
- & rsaquo; Cyber Monday 2021: Καλύτερες προσφορές τεχνολογίας
Τώρα μπορούμε να εκδώσουμε την εντολή για να κλείσουμε τη θύρα:
iptables
Αυτή η εντολή προσθέτει έναν κανόνα στο τείχος προστασίας, που λέει:
Πρέπει να ξεκινήσουμε το |_+_| δαίμονας. Μπορούμε να το κάνουμε με αυτήν την εντολή:
-m
Θέλουμε |_+_| να περάσει μέσα έναν κύκλο αποθήκευσης και επαναφόρτωσης, έτσι φορτώνει και ελέγχει το |_+_| κανόνες.
Πληκτρολογήστε τις παρακάτω εντολές:
iptables
conntrack
Διαφήμιση
Τώρα έχετε εγκαταστήσει τα βοηθητικά προγράμματα και η θύρα SSH είναι κλειστή (ελπίζουμε, χωρίς να τερματιστεί η σύνδεση κανενός). Τώρα, ήρθε η ώρα να διαμορφώσετε το μυστικό χτύπημα.
Διαμόρφωση knockd
Υπάρχουν δύο αρχεία που επεξεργάζεστε για να ρυθμίσετε τις παραμέτρους |_+_|. Το πρώτο είναι το ακόλουθο |_+_| αρχείο ρυθμίσεων:
netfilter-persistent
Το |_+_| ο επεξεργαστής ανοίγει με το |_+_| Φορτώθηκε το αρχείο διαμόρφωσης.
Θα επεξεργαστούμε αυτό το αρχείο για να ταιριάζει στις ανάγκες μας. Οι ενότητες που μας ενδιαφέρουν είναι το openSSH και το closeSSH. Οι ακόλουθες τέσσερις καταχωρήσεις υπάρχουν σε κάθε ενότητα:
Η ενότητα openSSH μπορεί να διαβαστεί ως αίτημα σύνδεσης TCP στις θύρες 7000, 8000 και 9000 —με αυτή τη σειρά και εντός 5 δευτερολέπτων— για να σταλεί η εντολή για το άνοιγμα της θύρας 22 στο τείχος προστασίας.
ΔιαφήμισηΗ ενότητα closeSSH μπορεί να διαβαστεί καθώς ένα αίτημα σύνδεσης TCP πρέπει να υποβληθεί στις θύρες 9000, 8000 και 7000—με αυτή τη σειρά και εντός 5 δευτερολέπτων—για να σταλεί η εντολή για το κλείσιμο της θύρας 22 στο τείχος προστασίας.
Οι κανόνες του τείχους προστασίας
Οι καταχωρήσεις εντολών στις ενότητες openSSH και closeSSH παραμένουν ίδιες, εκτός από μία παράμετρο. Έτσι αποτελούνται:
Το knockd αρχείο διαμόρφωσης επεξεργάζεται
Οι τροποποιήσεις που θα κάνουμε στο αρχείο επισημαίνονται με κόκκινο παρακάτω:
Επεκτείνουμε το seq_timeout στα 15 δευτερόλεπτα. Αυτό είναι γενναιόδωρο, αλλά αν κάποιος πυροδοτεί χειροκίνητα αιτήματα σύνδεσης, μπορεί να χρειαστεί τόσο χρόνο.
Στην ενότητα openSSH, αλλάζουμε το |_+_| (προσάρτηση) επιλογή στην εντολή στο |_+_| (εισάγετε). Αυτή η εντολή εισάγει έναν νέο κανόνα τείχους προστασίας στο μπλουζα της λίστας κανόνων του τείχους προστασίας. Εάν αφήσετε το |_+_| επιλογή, αυτό προσαρτάται τη λίστα κανόνων του τείχους προστασίας και το τοποθετεί στο κάτω μέρος .
Η εισερχόμενη κίνηση ελέγχεται σε σχέση με κάθε κανόνα τείχους προστασίας στη λίστα από πάνω προς τα κάτω. Έχουμε ήδη έναν κανόνα που κλείνει τη θύρα 22. Επομένως, εάν η εισερχόμενη κίνηση ελεγχθεί με αυτόν τον κανόνα πριν δει τον κανόνα που επιτρέπει την κυκλοφορία, η σύνδεση απορρίπτεται. Εάν δει πρώτα αυτόν τον νέο κανόνα, η σύνδεση επιτρέπεται.
Η εντολή κλεισίματος αφαιρεί τον κανόνα που προστέθηκε από το openSSH από τους κανόνες του τείχους προστασίας. Η κίνηση SSH διαχειρίζεται ξανά ο προϋπάρχων κανόνας κλειστής θύρας 22.
Αφού κάνετε αυτές τις αλλαγές, αποθηκεύστε το αρχείο διαμόρφωσης.
ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να επεξεργαστείτε αρχεία κειμένου γραφικά στο Linux με το gedit
Οι χτυπημένες επεξεργασίες αρχείου ελέγχου
Το |_+_| το αρχείο ελέγχου είναι εντελώς απλούστερο. Ωστόσο, προτού προχωρήσουμε και το επεξεργαστούμε, πρέπει να γνωρίζουμε το εσωτερικό όνομα για τη σύνδεσή μας στο δίκτυο. για να το βρείτε, πληκτρολογήστε αυτήν την εντολή:
netfilter-persistent
Διαφήμιση
Η σύνδεση που χρησιμοποιεί αυτό το μηχάνημα για την έρευνα αυτού του άρθρου ονομάζεται |_+_|. Σημειώστε το όνομα της σύνδεσής σας.
Η ακόλουθη εντολή επεξεργάζεται το |_+_| αρχείο ελέγχου:
iptable
Εδώ είναι το |_+_| αρχείο στο |_+_|.
Οι λίγες επεξεργασίες που πρέπει να κάνουμε επισημαίνονται με κόκκινο:
Αλλάξαμε την καταχώριση START_KNOCKD= από 0 σε 1.
Καταργήσαμε επίσης τον κατακερματισμό |_+_| από την αρχή της καταχώρισης KNOCKD_OPTS= και αντικατέστησε το eth1 με το όνομα της σύνδεσης δικτύου μας, |_+_|. Φυσικά, εάν η σύνδεση δικτύου σας είναι |_+_|, δεν θα την αλλάξετε.
Η απόδειξη είναι στην πουτίγκα
Ήρθε η ώρα να δούμε αν αυτό λειτουργεί. Θα ξεκινήσουμε το |_+_| δαίμονας με αυτήν την εντολή:
knockd
Διαφήμιση
Τώρα, θα μεταβούμε σε άλλο μηχάνημα και θα προσπαθήσουμε να συνδεθούμε. Εγκαταστήσαμε το |_+_| εργαλείο σε αυτόν τον υπολογιστή, επίσης, όχι επειδή θέλουμε να ρυθμίσουμε το port knocking, αλλά επειδή το |_+_| Το πακέτο παρέχει ένα άλλο εργαλείο που ονομάζεται |_+_|. Θα χρησιμοποιήσουμε αυτό το μηχάνημα για να πυροβολήσουμε στη μυστική ακολουθία μας και να κάνουμε το χτύπημα για εμάς.
Χρησιμοποιήστε την ακόλουθη εντολή για να στείλετε τη μυστική ακολουθία των αιτημάτων σύνδεσης στις θύρες του κεντρικού υπολογιστή με τη διεύθυνση IP 192.168.4.24:
knockd
Αυτό λέει |_+_| για να στοχεύσετε τον υπολογιστή στη διεύθυνση IP 192.168.4.24 και να ενεργοποιήσετε ένα αίτημα σύνδεσης στις θύρες 7000, 8000 και 9000, με τη σειρά του, με ένα |_+_| (καθυστέρηση) 500 χιλιοστών του δευτερολέπτου μεταξύ τους.
Στη συνέχεια, ένας χρήστης που ονομάζεται dave κάνει ένα αίτημα SSH στο 192.168.4.24:
gedit
Η σύνδεσή του γίνεται αποδεκτή, εισάγει τον κωδικό πρόσβασής του και ξεκινά η απομακρυσμένη συνεδρία του. Η γραμμή εντολών του αλλάζει από |_+_| προς |_+_|. Για να αποσυνδεθεί από τον απομακρυσμένο υπολογιστή, πληκτρολογεί:
knockd
Η γραμμή εντολών του επιστρέφει στον τοπικό του υπολογιστή. Χρησιμοποιεί |_+_| για άλλη μια φορά, και αυτή τη φορά, στοχεύει τις θύρες με αντίστροφη σειρά για να κλείσει τη θύρα SSH στον απομακρυσμένο υπολογιστή.
iptables
Διαφήμιση
Ομολογουμένως, αυτή δεν ήταν μια ιδιαίτερα γόνιμη απομακρυσμένη συνεδρία, αλλά δείχνει το άνοιγμα και το κλείσιμο της θύρας μέσω του χτυπήματος της θύρας και ταιριάζει σε ένα μόνο στιγμιότυπο οθόνης.
Λοιπόν, πώς έμοιαζε αυτό από την άλλη πλευρά; Ο διαχειριστής συστήματος στον κεντρικό υπολογιστή που ανοίγει τη θύρα χρησιμοποιεί την ακόλουθη εντολή για να προβάλει νέες εγγραφές που φτάνουν στο αρχείο καταγραφής συστήματος:
-A
Τώρα ο μόνος κανόνας στο |_+_| η λίστα κανόνων σχετικά με τη θύρα 22 είναι αυτή που πληκτρολογήσαμε στην αρχή για να κλείσουμε αυτήν τη θύρα. Έτσι, η θύρα 22 είναι πλέον κλειστή ξανά.
Χτυπήστε το στο κεφάλι
Αυτό είναι το κόλπο του λιμανιού. Αντιμετωπίστε το ως εκτροπή και μην το κάνετε στον πραγματικό κόσμο. Ή, αν πρέπει, μην βασίζεστε σε αυτό ως τη μόνη σας μορφή ασφάλειας.
ΔΙΑΒΑΣΤΕ ΤΗ ΣΥΝΕΧΕΙΑΟ Dave McKay χρησιμοποίησε για πρώτη φορά υπολογιστές όταν η διάτρητη χαρτοταινία ήταν στη μόδα και από τότε ασχολείται με τον προγραμματισμό. Μετά από περισσότερα από 30 χρόνια στη βιομηχανία της πληροφορικής, είναι πλέον δημοσιογράφος τεχνολογίας πλήρους απασχόλησης. Κατά τη διάρκεια της καριέρας του, έχει εργαστεί ως ελεύθερος επαγγελματίας προγραμματιστής, διευθυντής διεθνούς ομάδας ανάπτυξης λογισμικού, διευθυντής έργου υπηρεσιών πληροφορικής και, πιο πρόσφατα, ως Υπεύθυνος Προστασίας Δεδομένων. Η γραφή του έχει δημοσιευτεί από τα howtogeek.com, cloudsavvyit.com, itenterpriser.com και opensource.com. Ο Dave είναι ευαγγελιστής Linux και υπέρμαχος ανοιχτού κώδικα.
Διαβάστε το πλήρες βιογραφικό