Ασφάλιση του δικτύου σας με Iptables - Proxy - NAT - IDS: PART 2

Στην μετά πρόσθιο Είδαμε τη διαμόρφωση των IPTables να λειτουργεί ως Firewall Τώρα μπορούμε να δούμε πώς να δημιουργήσουμε αυτά τα σενάρια, έτσι ώστε οι κανόνες να εκτελούνται αυτόματα κατά την εκκίνηση του συστήματος, καθώς και πώς μπορούμε να εξαλείψουμε ή να σταματήσουμε αυτούς τους κανόνες για μια στιγμή.

Πριν κάνετε το σενάριο και σας δείξουμε πώς φαίνεται, ας μιλήσουμε λίγο για το NAT και την ιδέα του τι θέλουμε να κάνουμε με αυτόν τον εξοπλισμό.

NAT και πλαίσιο του παραδείγματος.

Όταν μιλάμε για το NAT, μπορούμε να το συγχέουμε με τη δρομολόγηση, καθώς και οι δύο είναι υπεύθυνοι για τη σύνδεση δύο διαφορετικών δικτύων μεταξύ τους. Η διαφορά είναι πραγματικά ότι η δρομολόγηση εφαρμόζεται για μετάβαση από ένα τοπικό δίκτυο σε άλλο και αυτό το άλλο δίκτυο μπορεί να συνδεθεί με έναν δρομολογητή και να βγεί στο Διαδίκτυο.

Ενώ, όταν μιλάμε για NAT, μιλάμε για δρομολόγηση πακέτων από τοπικό ή ιδιωτικό δίκτυο σε δημόσιο δίκτυο ή στο Διαδίκτυο. Αυτό το κάνει αποκρύβοντας τα πακέτα τοποθετώντας το δημόσιο IP με το οποίο πηγαίνει στο Διαδίκτυο. Δηλαδή, δεν χρειαζόμαστε δρομολογητή, επειδή η δημόσια IP διατηρείται απευθείας από τον υπολογιστή με GNU / Linux.

nat

Θα το δουλέψουμε με το σύνθημα ότι χρησιμοποιούμε το Linux ως δρομολογητή / τείχος προστασίας για να βγούμε στο Διαδίκτυο από ένα τοπικό δίκτυο. Αλλά εδώ μπορούν να εμφανιστούν δύο σενάρια.

  • Ότι το Linux μας βρίσκεται μεταξύ του δρομολογητή του παρόχου υπηρεσιών και του τοπικού δικτύου.

Σε αυτήν την περίπτωση, μεταξύ του δρομολογητή και του Linux μας θα υπήρχε ένα δίκτυο, και μεταξύ του Linux και του τοπικού δικτύου θα υπήρχε ένα άλλο διαφορετικό δίκτυο. Αυτό σημαίνει ότι ο δρομολογητής μας δεν θα χρειαστεί να κάνει NAT ως έχει, με μια απλή δρομολόγηση κυκλοφορίας όπως εξηγείται στο μετά πρόσθιο Καλο θα ηταν.

  • Ότι το Linux μας έχει μια διασύνδεση συνδεδεμένη με το τοπικό δίκτυο και μέσω της άλλης διεπαφής λαμβάνει απευθείας μια δημόσια IP με την οποία πλοηγείται.

Αυτό σημαίνει ότι το Linux μας πρέπει να κάνει NAT έτσι ώστε τα πακέτα να μπορούν να φτάσουν στο Διαδίκτυο.

Για τους σκοπούς αυτού του μικρού εργαστηρίου τότε, θα πούμε ότι το Linux λαμβάνει απευθείας μια δημόσια IP και έτσι μπορεί να ελέγξει τα αποτελέσματα του NAT.

Για να κάνουμε NAT χρησιμοποιούμε τη σύνταξη

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

Όπου το eth1 είναι η διεπαφή όπου λαμβάνουμε τη δημόσια IP, δηλαδή, όπου πηγαίνουμε στο Διαδίκτυο.

Το MASQUERADE χρησιμοποιείται όταν το ip είναι δημόσιο, αλλά μπορεί να διαφέρει με την πάροδο του χρόνου (δυναμικό). Διαφορετικά μπορούμε να χρησιμοποιήσουμε το SNAT –to-source ip

Δημιουργία σεναρίου iptables

Ας υποθέσουμε λοιπόν ότι: 172.26.0.0 είναι το τοπικό μας δίκτυο και 81.2.3.4 είναι το δημόσιο IP με το οποίο πηγαίνουμε στο Διαδίκτυο. (είναι ένα στατικό ip). Έχω τις διεπαφές eth0 (Τοπικό δίκτυο)

eth1 (Δημόσιο δίκτυο).

Βασικά συνίσταται στη δημιουργία ενός σεναρίου που μπορεί να κληθεί από το /etc/init.d/firestop (για παράδειγμα). και από αυτό το σενάριο μπορούμε να ξεκινήσουμε, να σταματήσουμε ή να ελέγξουμε την κατάσταση της διαμόρφωσής μας, όπως κάνουμε με οποιονδήποτε δαίμονα συστήματος.

Ας υποθέσουμε ότι οι κανόνες IPTABLES μου είναι:

#! / bin / bash # Τείχος προστασίας του σπιτιού μου. # Όνομα αρχείου / etc / firewall_on # By Jlcmux Twitter: @Jlcmux # # Βασική πολιτική. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT για κοινή χρήση Διαδικτύου από eth0 έως eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Να επιτρέπονται οι εισερχόμενες συνδέσεις που ξεκίνησαν από τα iptables μου - ΜΙΑ ΠΡΟΒΟΛΗ - κατάσταση --state ESTABLISHED, RELATED -j ACCEPT # # Authorized output traffic iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -ΈΝΑ ΠΡΟΟΔΟΣ -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Ας μην ξεχάσουμε να δώσουμε δικαιώματα εκτέλεσης

Εξήγηση:

Το σενάριο βασικά κάνει τα εξής:

  1. Πρώτα περιορίστε όλη την πλοήγηση, τις συνδέσεις και την κυκλοφορία. (Βασικές πολιτικές τείχους προστασίας)
  2. Στη συνέχεια, δημιουργήστε το NAT με τον προορισμό eth1. που δείχνει ότι έχουμε ένα στατικό δημόσιο ip «81.2.3.4»
  3. Ανοίγει τις θύρες που είναι απαραίτητες για τη λήψη των πακέτων συνδέσεων που ξεκίνησα από εμένα.
  4. Δέχεται κυκλοφορία HTTP, HTTPS και DNS.
Οι κανόνες προορίζονται για FORWARD traffic επειδή χρησιμοποιούμε το Linux ως Router, οπότε οι πολιτικές χρησιμοποιούνται για την κίνηση που περνά μέσω του Linux, δηλαδή ενεργεί ως μεσάζων. Αυτό σημαίνει ότι το Linux μας δεν μπορεί πραγματικά να πλοηγηθεί ή να λάβει άμεσα δεδομένα. Ισχύει μόνο για υπολογιστές που είναι συνδεδεμένοι σε αυτό, αλλά όχι για τον εαυτό του

Αν θέλουμε να χρησιμοποιήσουμε τον εξοπλισμό μας για πλοήγηση, θα πρέπει να επαναλάβουμε τις γραμμές και να αλλάξουμε προς τα εμπρός σε ΕΙΣΟΔΟ ή ΕΞΟΔΟΣ όπως απαιτείται.

Ακύρωση σεναρίου.

Τώρα πρόκειται να δημιουργήσουμε ένα σενάριο που παρακάμπτει όλα τα παραπάνω και αφήνει τον υπολογιστή καθαρό από όλα αυτά. (Για σκοπούς δοκιμών ή απλώς θέλουμε να απενεργοποιήσουμε το τείχος προστασίας).

#! / bin / bash # Τείχος προστασίας του σπιτιού μου. # Όνομα αρχείου / etc / firewall_off # By Jlcmux Twitter: @Jlcmux # #Διαγραφή κανόνων iptables -F # # Εφαρμογή προεπιλεγμένων πολιτικών (αποδεκτή όλη η κυκλοφορία) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Αυτοματοποίηση.

Τώρα πρέπει να δημιουργήσουμε το σενάριο μέσα /etc/init.d/ και η υπηρεσία ξεκινά αυτόματα και μπορούμε να τη διαχειριστούμε με πιο άνετο τρόπο.

#! / bin / bash # Τείχος προστασίας του σπιτιού μου. # Όνομα αρχείου /etc/init.d/ firewall # Από το Jlcmux Twitter: @Jlcmux υπόθεση $ 1 σε έναρξη) / etc / firewall_on ;; διακοπή) / etc / firewall_off ;; κατάσταση) iptables -L ;; *) echo "Λάθος σύνταξη. Ισχύει = /etc/init.d/ firewall start | stop | status ;; esac

Εξήγηση:

Αυτό το τελευταίο σενάριο που βάλουμε /etc/init.d/ με το όνομα τείχος προστασίας. Αν λοιπόν θέλουμε να διαχειριστούμε το τείχος προστασίας μπορούμε να χρησιμοποιήσουμε την εντολή /etc/init.d/ εκκίνηση τείχους προστασίας. Με τον ίδιο τρόπο μπορούμε να το σταματήσουμε ή να δούμε την κατάσταση.

Τώρα πρόκειται να επεξεργαστούμε το αρχείο /etc/rc.local και βάζουμε κάτι σαν: /etc/init.d/ έναρξη τείχους προστασίας για να ξεκινήσετε με το σύστημα.

Επισης. Αυτό είναι το δεύτερο μέρος. Ελπίζω να σας φέρει κάτι σε όλους. Στο επόμενο βλέπουμε Proxy και IDS.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   κυνηγός dijo

    Εάν χρησιμοποιείτε το Debian υπάρχει ένα πακέτο στο repo (iptables-persistent) που κάνει ακριβώς αυτό, απορρίπτει τους τρέχοντες κανόνες στο /etc/iptables/rules.v4 ή v6 ανάλογα με το τι χρησιμοποιείτε και στη συνέχεια τους εφαρμόζει σε εσάς όταν σηκώνετε το σύστημα.

  2.   ocz dijo

    Στην πράξη, για να καθαρίσετε τη διαμόρφωση ενός συμβατικού τείχους προστασίας iptables (και η χρήση του NAT δεν θα ήταν έτσι από την άποψή μου), στις περισσότερες περιπτώσεις ένας κανόνας θα έπρεπε να αλλάξει και να επαναφέρετε τις προεπιλεγμένες πολιτικές στο ACCEPT.
    Αλλά θεωρητικά, και όσο γνωρίζω, εκτός από αυτό πρέπει επίσης να διαγράψετε τις μη προεπιλεγμένες συμβολοσειρές και να επαναφέρετε τους μετρητές. Ενέργειες που πρέπει να πραγματοποιηθούν λαμβάνοντας υπόψη ότι εκτός από το "φίλτρο" υπάρχουν και άλλοι πίνακες, (είναι υποχρεωτικό να διαβάσετε το αρχείο "/ proc / net / ip_tables_names" για αυτό).

    Παρεμπιπτόντως, η ορθοδοξία λέει ότι ένα τείχος προστασίας πρέπει να είναι ήδη ενεργοποιημένο πριν από το δίκτυο. Δεν ξέρω πώς επιτυγχάνεται στα άλλα συστήματα Linux, αλλά στον τύπο Debian το σενάριο θα μπορούσε να προσαρμοστεί και να οριστεί στον κατάλογο "/etc/network/if-pre-up.d/".

    Καλό τείχος προστασίας σε όλους. 😉

  3.   Ναυτίλος dijo

    Γεια σας, η ανάρτηση είναι πολύ καλή. Έχω διαβάσει ολόκληρους τους 2 τόμους.

    Περιμένοντας το επόμενο 🙂

  4.   ανώνυμος dijo

    Μια ερώτηση από την άγνοιά μου, συνεχίζουμε με τα iptables, αλλά για αρκετές εκδόσεις του πυρήνα έχουμε nftables, δοκιμάζω ήδη, οι ερωτήσεις είναι, είναι το nftables κάτι beta σε σχέση με τα iptables; Θα συνεχίσουν να χρησιμοποιούνται τα iptables για πολύ περισσότερο;

    Σας ευχαριστώ.

    1.    Γιουκιτέρου dijo

      Το nftables περιλαμβάνει όλες τις λειτουργίες των iptables, ip6tables, arptables και ebtables, όλα χρησιμοποιώντας μια νέα υποδομή τόσο στον πυρήνα όσο και στον χώρο χρήστη, το οποίο εξασφαλίζει καλύτερη απόδοση και βελτιωμένη λειτουργικότητα. Τα nftables θα αντικαταστήσουν τα iptables και όλα τα άλλα εργαλεία που αναφέρονται αλλά όχι προς το παρόν, τουλάχιστον έως ότου υπάρξει ευρύτερη χρήση των nftables ως τέτοια.

  5.   Αλέξανδρος dijo

    πολύ καλή δημοσίευση, ήθελα να διαβάσω περισσότερα, αφού εξηγείται πολύ καλά .. χαιρετισμούς ευχαριστώ πολύ

  6.   Άβρα dijo

    Γειά σου! Πολύ καλό και στις δύο θέσεις.
    Ως συμβολή θα μπορούσατε να προσθέσετε στο τέλος σε αυτό το μέρος:

    "Τώρα πρόκειται να επεξεργαστούμε το αρχείο /etc/rc.local και να βάλουμε κάτι σαν: /etc/init.d/ firewall start έτσι ώστε να ξεκινά με το σύστημα."

    Προσθέστε το στο rc.local.

    εάν [-x /etc/init.d/ firewall]; τότε
    /etc/init.d/ έναρξη τείχους προστασίας
    fi

    Αυτό σημαίνει ότι εάν το "τείχος προστασίας" έχει δικαιώματα εκτέλεσης, εκτελέστε το, εάν όχι.
    Εάν θέλετε το "τείχος προστασίας" να μην ξεκινήσει, απλώς πρέπει να καταργήσετε τα δικαιώματα.

    Για παράδειγμα: chmod + x /etc/init.d/ firewall
    για να το κάνει σε κάθε εκκίνηση ή ...
    chmod -x /etc/init.d/ τείχος προστασίας
    για να το απενεργοποιήσετε εντελώς.

    Χαιρετισμούς!