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

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

Πριν κάνετε το σενάριο και σας δείξουμε πώς φαίνεται, ας μιλήσουμε λίγο για το 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/ με το όνομα "firewall" . Στη συνέχεια, αν θέλουμε να διαχειριστούμε το firewall, μπορούμε να χρησιμοποιήσουμε την εντολή /etc/init.d/firewall start. Μπορούμε επίσης να το σταματήσουμε ή να ελέγξουμε την κατάστασή του με τον ίδιο τρόπο.

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

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


Προσθήκη ως προτιμώμενης πηγής στην Google