Sunday 12 September 2010

NOTE IT: Απαλλαχτείτε από double-NAT


NOTE IT: Απαλλαχτείτε από double NAT. Διπλό NAT σημαίνει αρκετά προβλήματα .. ότι και αν σας λένε!

Εγκαινιά! Πάντα μια χαρμόσυνη εορτή. Εδώ λοιπόν ας εγκαινιάσω την κατηγορία NOTE IT στην οποία θα περιλαμβάνω συμβουλές για συγκεκριμένα ζητήματα ποικίλης θεματολογίας.

Αν νιώθετε πολλές φορές την ανάγκη να κάνετε τα πράγματα με το δικό σας τρόπο ανεξάρτητα τι έχετε δει και ακούσει τότε θα νιώσετε γιατί έβαλα τον εαυτό μου σε τόσο κόπο. Η τυπική λύση λοιπόν για μια συνδεση internet είναι να κρατήσει κανείς το modem/router/firewall/access point, την μία σε όλα συσκευή με άλλα λογιά, που του έχει δώσει ο πάροχος internet δωρέαν με τη συνδεσή του κτλ. Η ανορθόδοξη λύση είναι να έχεις ξεχωριστές συσκευές, ένα modem, ένα router, ένα firewall, ένα access point. Πριν αρχίσετε τις κατάρες όμως να παραδεχτώ πως τέτοια λύση μέσα σε ένα σπίτι δεν έχει ιδιαίτερο νόημα, και γίνεται μόνο για λόγους δοκιμαστικούς. Η πραγματική εφαρμογή των δυνανοτήτων των ξεχωριστών συσκευών φαίνεται σε εταιρικές υλοποιήσεις.

ΔΙΠΛΟ ΝΑΤ ΤΕΛΟΣ

Ας υποθέσουμε πως έχουμε ένα modem/router και ένα dedicated firewall ή κάποιο δεύτερο router με δυνατότητες firewall. Παρακάτω θα χρησιμοποιήσω ένα modem/router Linksys και ένα pc που έχει αναλάβει τη δουλειά του dedicated firewall και φέρει ως λειτουργικό την open source λύση στα firewall με το όνομα m0n0wall [http://m0n0.ch/wall/]. Από εκεί και πέρα ο νοών νοείτο. Σίγουρα αν καταπιαστείτε με τέτοια θέματα θα είστε αρκετά μάγκες για να καταλάβετε τις ανάλογες κινήσεις στη δική σας ειδική υλοποίηση, δεν σας φοβάμαι ;)

Η συνδεσμολογία είναι απλή όπως φαίνεται και στις εικόνες το modem συνδέεται με το firewall και το firewall με το pc ή τυπικά το firewall με ένα switch στο οποίο συνδέονται όλοι οι υπολογιστές του LAN.

Επειδή ΔΕΝ θέλουμε να έχουμε διπλό NAT θα πρέπει να αναγάγουμε το modem/router μας σε απλό adsl modemάκι.

  • Αρχικά απενεργοποιούμε το firewall, το wireless και άλλες προφανείς επιλογές, ανάλογα τι προσφέρει στον καθέναν το modem/router του όπως για παράδειγμα το SPI (state packet inspection). Προσοχή να ξέρετε τι απενεργοποιείτε, μην αρχίσετε να κάνετε ακατάστολο disabling σε ότι βρείτε. Αν δεν γνωρίζετε τις επιλογές που βλέπετε μπροστά σας δοκιμάστε λίγο Wikipedia, αν όχι τότε αφήστε τις επιλογές ως έχουν και γυρίστε αργότερα για δοκιμές trial 'n' error αν χρειαστούν.
  • Έχοντας ένα linksys modem/router πηγαίνουμε στο Advanced Routing και απενεργοποιούμε το NAT. Εδώ χάνουμε και τη σύνδεση με το internet.
  • Επιστρέφουμε στο basic setup και επειδή δεν θέλουμε πλέον την επιλογή PPPoE (το authentication θα το αναλάβει το firewall) θα επιλέξουμε το encapsulation: Bridged Mode το οποίο μετατρέπει το modem/router σε απλό modem. Όπως θα παρατηρήσετε αρκετές επιλογές όπως αυτές για username και password θα "εξαφανιστούν". Σημειώνουμε την τιμή του MTU διότι θα την χρειαστούμε παρακάτω.
  • Αν και δεν είναι κρίσιμο μπορούμε να ορίσουμε στο modem/router (πλέον απλά modem) ως subnet mask το 255.255.255.252 ώστε να έχουμε διαθέσιμες όλες και όλες μονο 2 IP διευθύνσεις. Μία αυτή του router πχ. 192.168.1.1 και μία αυτή του υπολογιστή που θα συνδέσουμε κάποια στιγμή στο μέλλον πχ. 192.168.1.2 αν θέλουμε να αλλάξουμε τις ρυθμίσεις στο Linksys.
  • Επόμενη ενέργεια να πειράξουμε το firewall. Iσως παλιότερα στo WAN interface του firewall να είχαμε ορίσει δυναμική IP διεύθυνση μέσω DHCP ή κάποια σταθερή local-IP διεύθυνση. Για να αποκτήσουμε και πάλι internet θα πρέπει να αλλάξουμε αυτές τις ρυθμίσεις. Το dedicated firewall θα πρέπει να χρησιμοποιήσει το modem για να συνδεθεί στον πάροχο internet. Τυπικά θα πρέπει να επιλέξουμε PPPoE και να ορίσουμε ως username: username@<πάροχος>.gr και ως password το password που έχουμε για την συνδεση στο internet. Τέλος αξιοποιούμε την τιμή του MTU που σώσαμε προηγουμένως, στην δική μου περίπτωση 1492.
Η απλούστερη λύση είναι πάντοτε και η καλύτερη


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

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

ΕΝΑΛΛΑΚΤΙΚΗ ΛΥΣΗ

Κατά την ίδια αναζήτηση μερικές ιστοσελίδες ανέφεραν πως υπάρχει η αντίθετη δυνατότητα, δηλαδή τη μεριά του NAT να αναλάβει το modem/router και να απενεργοποιηθεί το NAT στο dedicated firewall.

Συγκεκριμένα ανέφεραν πως γίνεται με χρήση static route στην πλευρά του modem με Destination: αν χρησιμοποιείτε για παράδειγμα το 192.168.1.x τότε το destination να είναι το 192.168.1.0

subnet: το subnet του LAN , τυπικά το 255.255.255.0

gateway: θα πρέπει να είναι το WAN IP address του dedicated firewall.

Όπως φαντάζομαι σε αυτή η περίπτωση το authentication αναλαμβάνει κανονικά το modem/router χωρίς να επηρεάζουμε κάτι στην επιλογή encapsulation. Από τη μεριά του m0n0wall θα έχουμε Enable Outbound NAT: yes ενώ δεν καθορίζουμε ΚΑΝΕΝΑΝ κανόνα στο Advanced Outbound NAT. Επίσης στο WAN interface το block private networks θα πρέπει να το απενεργοποιήσουμε.

Αυτή την υλοποίηση δεν την έχει δοκιμαστεί ακόμα αλλά αν έχετε παρόμοιο στήσιμο δικτύου με το δικό μου και το δοκιμάσετε πείτε μου αν δουλεύει.. ναι καλά καταλάβατε σας έδωσα homework!

Προσωπικά απέφυγα αυτή τη λύση διότι κάθε φορά που θα ήθελα να αλλάξω κάτι στο modem/router θα έπρεπε να πάω με το laptop να συνδεθώ στο ίδιο το modem/router, που κανονικά είναι συνδεδεμένο μόνο με το dedicated firewall.

Έτσι τώρα με την αρχική λύση έχω όλες τις ρυθμίσεις να αναλαμβάνει το ίδιο το dedicated firewall.

Υπάρχουν σίγουρα πολλά λεπτά ζητήματα όπως τα θέματα ασφαλείας που μπορεί να παίζουν ρόλο ανά περίπτωση. Αν έχετε σχετικές παρατηρήσεις μην διστάσετε να τις μοιραστείτε εδώ μαζί μας στο blog Applied Ideas.
Επιμέλεια: Γιώργος Πληγορόπουλος
 

Applied Ideas Copyright © 2010
George Pligor - Stergios