Προς το περιεχόμενο

iptables setting


The_Mentor

Προτεινόμενες αναρτήσεις

Δημοσ.

Όταν σετάρουμε τα iptables αναφερόμαστε σε μία eth κάρτα. Σε περίπτωση όμως που στην ίδια κάρτα έχουμε εσωτερική και εξωτερική ΙΡ τί γίνεται;

Το πρόβλημα μου εντοπίζεται πως όταν προσπαθώ να σετάρω routing σε --dport80 -j ACCEPT τότε ανοίγει το port 139 και ο file server μένει ανοικτός προς τα έξω.

Δημοσ.

Κανονικά κάθε interface έχει μόνο μία διεύθυνση, τι ακριβώς εννοείς; Αν θέλεις κάνε μία quote το output της ifconfig. Επίσης, στα iptables δεν είναι απαραίτητο να αναφερθείς σε κάποιο συγκεκριμένο interface. Αν δεν ορίσεις διαφορετικά, προσθέτοντας κανόνες στην αλυσίδα FORWARD (π.χ. απορρίπτοντας τα πακέτα που δεν έχουν επιθυμητό source address), εφαρμόζονται σε οποιοδήποτε πακέτο εισέρχεται σε κάποιο interface και πρόκειται να δρομολογηθεί από κάποιο άλλο, άσχετα ποιά είναι αυτά τα interfaces.

Δημοσ.

Δεν υπάρχει περίπτωση κάνοντας ACCEPT την port 80 να ανοίγει και η 139. Κάτι άλλο κάνεις στραβά ;-) Για δώσε μια την έξοδο της iptables -L -v επιπλέον από αυτά που είπε ο nske.

Δημοσ.

Στην eth0 είναι η εσωτερική ΙΡ με την οποία το εσωτερικό δίκτυο βλέπει τον file server και σώζει αρχεία. Επίσης χρησιμοποιούν το linux και σαν router ώστε να βλέπουν internet (και γιαυτό έχει και μια εξωτερική IP).

Δηλαδή:

eth0 62.Χ.Χ.246 με default 62.X.X.243 (που είναι ο ρούτερ)

eth0:1 10.Χ.Χ.11 με default 62.Χ.Χ.246 (την εξωτερική του).

 

Στο εσωτερικό δίκτυο όλοι έχουν σαν default το 10.Χ.Χ.11 άρα όποιος "κτυπάει" εκεί να δρομολογείται μέσω της 246 προς το 243 που είναι το internet.

 

Για την λειτουργία του File server κάνω χρήση samba (port 139).

 

Θέλω οι εσωτερικοί χρήστες να βλέπουν τον File Server κανονικά αλλά και να έχουν internet - mail - FTP - SSH.

 

Δεν μπορώ να σετάρω τα iptables δίοτι όταν κάνω accept όλη την κίνηση στην eth0 και ελέγξω τα ports η 139 βγαίνει Wide Open (λογικά αφού τα ανοίγω όλα). Επίσης όταν πάω να του δώσω eth0:1 μου λέει πως δεν παίρνει alias.

Με ποιό τρόπο όμως κινώ συγκεκριμένα πακέτα χωρίς να κόβω την εσωτερική κίνηση στο File Server αλλά και χωρίς να φαίνεται η πόρτα 139 ανοικτή στα portscan που γίνονται από έξω?

 

Thanks εκ τον προτέρων.

Δημοσ.

Γενικά το σωστό από άποψη ασφαλείας είναι να κάνεις DROP by default την κίνηση (ή REJECT) και να κάνεις ACCEPT μόνο αυτά που θέλεις. Στα πλαίσια αυτά, το παρακάτω framework πρέπει να σου δουλέψει:

>
iptables -F INPUT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -d 10.Χ.Χ.11 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.x.x.0/24 -j ACCEPT

 

Στο σημείο αυτό έχεις κάνει accept ότι είναι ήδη established, ότι έρχεται από το loopback interface, και ό,τι έρχεται από το εσωτερικό δίκτυο και «χτυπάει» στην 10.x.x.11. Επίσης, αποδέχεται ότι έρχεται από το εσωτερικό σου subnet, αλλά χτυπάει στην internetική IP. Σου υπενθυμίζω ότι τα iptables δουλεύουν με λογική σειράς, και ότι το ACCEPT είναι τερματικός προορισμός. Τα πακέτα δηλαδή που κάνουν match στην διεύθυνση προορισμού 10.χ.χ.11 σταματάνε εκεί, το ίδιο και αυτά που «χτυπάνε» την internetική IP από το εσωτερικό δίκτυο, με αποτέλεσμα τα υπόλοιπα που συνεχίζουν να είναι αυτά που έρχονται από τον έξω κόσμο. Στη συνέχεια απλά προσθέτεις τις υπηρεσίες που θες να φαίνονται απ' έξω:

>
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
....

 

Και τερματίζεις με μια default policy DROP:

>
iptables -P INPUT DROP

 

Προτού κάνεις τα παραπάνω, βεβαιώσου ότι ταιριάζουν στις ανάγκες σου. Λείπουν αρκετά πράγματα για να γίνει ολοκληρωμένο το ruleset (π.χ. κόβει τα ICMP πακέτα, πράγμα που προσωπικά δε θεωρώ καλό). Για οποιαδήποτε άλλη απορία, εδώ είμαστε :-)

 

Btw, δε χρειάζεται default gateway στο eth0:1 ;-)

Δημοσ.

Apoiko σε ευχαριστώ. Θα τα δοκιμάσω και αν μπλέξω πουθενά θα επανέλθω.

 

Προφανώς μετά το τελευταίο θα πρέπει να κάνω και το MASQUERATING έ?

Δημοσ.
Apoiko σε ευχαριστώ. Θα τα δοκιμάσω και αν μπλέξω πουθενά θα επανέλθω.

 

Προφανώς μετά το τελευταίο θα πρέπει να κάνω και το MASQUERATING έ?

 

Το masquerading είναι τελείως διαφορετική λειτουργία από το filtering. Αν παίζει τώρα, θα παίζει και μετά ;-) Αν δεν παίζει, δίνεις απλά:

>
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -d ! 10.x.x.0/24 -j SNAT --to-source 62.x.x.246.

 

Είναι καλύτερο να χρησιμοποιείς SNAT απ' ότι MASQUERADE στην περίπτωσή σου (στατική IP), αφού έτσι γλιτώνεις ένα μικρό υπολογιστικό overhead.

Δημοσ.

Λίγο άσχετο, απλά απο περιέργεια, αν κατάλαβα καλά έχεις μία κάρτα δικτύου στο μηχάνημα, καρφωμένη σε ένα switch όπου βρίσκονται hosts του private δικτύου κι ένας router προς το internet με διεύθυνση 62.X.X.243 επίσης στο ίδιο switch;

 

Υπάρχει λόγος που χρησιμοποιείς virtual interface και δίνεις public διεύθυνση στο μηχάνημα;

 

Αν θέλεις φιλτράρισμα θα ήταν πιο σωστό να έβαζες μια πρόσθετη κάρτα δικτύου απομονώνοντας τον άλλον router και χωρίς να χρησιμοποιείς public addresses, ενώ αν απλά θέλεις να είναι προσβάσιμες κάποιες υπηρεσίες του μηχανήματος από το Internet θα ήταν πιο ασφαλές να χρησιμοποιήσεις destination nat από τον άλλο router -ή τουλάχιστον να μη το χρησιμοποιείς και σαν gateway. Δεν ενδείκνυται να χρησιμοποιείς το ίδιο μηχάνημα για gateway και υπηρεσίες (ειδικά προς το internet) γιατί με τις υπηρεσίες αυξάνει δραματικά ο κίνδυνος να υπονομευτεί το μηχάνημα, και μετά δίνεται η δυνατότητα σε κάποιον που υπονομεύσει το μηχάνημα να αποκτήσει ευαίσθητες πληροφορίες ολόκληρου του δικτύου.

Δημοσ.

πρόκειται για μεγάλο intranet που μέσα του λειτουργούν web servers, AIXX, Linux, Windows 2003 OS's πίσω από Cisco Firewalls - Cisco Routers.

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

 

Το LINUX αυτή τη στιγμή για εμένα προσωπικά βρίσκεται σε DEFCON 1 μέγιστη προτεραιότητα. Παρ' όλα αυτά τα CISCO δεν πρόκειται να απενεργοποιηθούν σε καμία περίπτωση, όσο καλό και αν είναι το Firewall του Linux...

Δημοσ.

Καλά αν εννοείς ότι δε θέλεις/μπορείς να επέμβεις επειδή είναι ευαίσθητο production environment πάω πάσο (δεν είμαι της δουλειάς αλλά έχω παρατηρήσει ότι το "ό,τι παίζει δεν το πειράζουμε" είναι κανόνας στις μεγάλες εταιρίες)..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...