απαιτήσεις: Ένα ιδιωτικό σύστημα οικιακών άλμπουμ δημιουργήθηκε χρησιμοποιώντας κοντέινερ Docker, το οποίο περιορίζεται στην πρόσβαση και την προβολή στο οικιακό LAN, επειδή η εικόνα Docker έχει αναπτυχθεί από τρίτο προγραμματιστή και δεν ξέρω αν θα είναι μια κατάσταση ασφαλείαςΔημιουργήστε παραβιάσεις απορρήτουΠροκειμένου να λύσουμε καλύτερα αυτό το πρόβλημα, θέλουμε να προσθέσουμε μια εγγύηση απορρήτου απαγορεύοντας την πρόσβαση των κοντέινερ Docker στο Διαδίκτυο (εξωτερικό δίκτυο).
Αυτό το άρθρο χρησιμοποιεί ένα σύστημα CentOS7, έκδοση Docker: 20.10.20 και χρησιμοποιεί εικόνες nginx για την παροχή δοκιμών.
Η πρόσβαση στο Διαδίκτυο (extranet) επιτρέπεται από προεπιλογή
Δημιουργήστε ένα νέο κοντέινερ nginx που παρέχει υπηρεσίες web στις οποίες μπορείτε να έχετε πρόσβαση18080 Πρόσβαση στο λιμάνι, το κοντέινερ μπορεί να έχει πρόσβαση στο Διαδίκτυο (εξωτερικό δίκτυο) από προεπιλογή, η εντολή είναι η εξής:
Εισαγάγετε το κοντέινερ και ζητήστε τους πόρους αυτού του ιστότοπου μέσω της εντολής curl, η οποία μπορεί να ληφθεί κανονικά, όπως φαίνεται στο παρακάτω σχήμα:
Απενεργοποίηση πρόσβασης κοντέινερ Docker στο διαδίκτυο (extranet)
Αρχικά, πρέπει να δημιουργήσουμε ένα προσαρμοσμένο δίκτυο μέσω του docker και να δημιουργήσουμε μια εικονική κάρτα δικτύου, με την ακόλουθη εντολή:
Ορίστε έναν κανόνα στο εικονικό NIC μέσω iptables για να απαγορεύσετε την πρόσβαση στο Διαδίκτυο με την ακόλουθη εντολή:
Ανεξάρτητα από το αν η υπηρεσία iptables είναι διαθέσιμη ή όχι, ανεξάρτητα από το αν το τείχος προστασίας είναι ενεργοποιημένο ή όχι,Οι κανόνες iptables που προστέθηκαν με εντολή τίθενται σε ισχύ αμέσως!!!
Σημείωση: Αυτό το σχέδιο είναι κατάλληλοΕάν διαφορετικά κοντέινερ ενταχθούν στο ίδιο δίκτυο, τα κοντέινερ δεν θα μπορούν να επικοινωνήσουν μεταξύ τους!!!!
Δείτε τον κανόνα DOCKER-USER όπως φαίνεται παρακάτω:
Δημιουργήστε ξανά ένα νέο κοντέινερ nginx, το κοντέινερ παρέχει την υπηρεσία web και το18081 Το λιμάνι παρέχει υπηρεσίες στον έξω κόσμο και το κοντέινερ απαγορεύεται να έχει πρόσβαση στο Διαδίκτυο (δημόσιο δίκτυο), η εντολή είναι η εξής:
Πετύχαμε τον στόχο μας, αλλά,Μετά την επανεκκίνηση του διακομιστή, οι κανόνες που δημιουργήσαμε στο iptables θα εξαφανιστούνΠώς μπορούμε να φορτώσουμε αυτόματα τους προσαρμοσμένους κανόνες μας μετά την επανεκκίνηση του διακομιστή;
Η εντολή iptables-save χρησιμοποιείται για την εξαγωγή του πίνακα iptables στον πυρήνα του Linux σε έναν τυπικό προμηθευτή εξόδου, συνήθως χρησιμοποιώντας τη συνάρτηση ανακατεύθυνσης I/O στο κέλυφος για να αποθηκεύσει την έξοδο του σε ένα καθορισμένο αρχείο. Αποθηκεύστε τον υπάρχοντα κανόνα iptables
Προσθέστε τον κανόνα επαναφοράς iptables στην εκκίνηση εκκίνησης, το αρχείο εκκίνησης εκκίνησης είναι /etc/rc.d/rc.local, επεξεργαστείτε το αρχείο και προσθέστε την ακόλουθη εντολή στο τέλος:
Τέλος, προσθέστε την άδεια εκτέλεσης με την ακόλουθη εντολή:
Αφού ολοκληρωθούν οι ρυθμίσεις, οι κανόνες iptables θα εξακολουθούν να ισχύουν ακόμα και αν γίνει επανεκκίνηση του διακομιστή.
Όλα τα κοντέινερ στο Docker απαγορεύεται να έχουν πρόσβαση στο Διαδίκτυο (extranet),Δεν έχει δοκιμαστεί, η εντολή είναι η εξής:
(Τέλος)
|