stateful firewall issues (Was Re: Think Simple!)

maria zakinthinos at freemail.gr
Wed Aug 30 19:39:27 EEST 2006


Giorgos Keramidas wrote:

>5) φιλτράρεις τα πακέτα στο *OUTPUT* chain, με βάση το interface τους
>   και το αν έχουν source 127.0.0.1.  Γιατί να μην κάνεις τότε όμως το
>   ίδιο με το IP address του PPP interface σου στο `lo' interface, ή στο
>   `internal LAN' interface, ή να μην κάνεις το ίδιο με το `internal
>   LAN' IP address σου στο `lo' και στο PPP interface.
>
>   Όπως καταλαβαίνεις, αυτή η ιδέα *δεν* είναι τόσο καλή, γιατί
>   δημιουργεί την ανάγκη για NxN κανόνες στο `hot path' του firewall
>   ruleset σου, όπου `N' ο αριθμός από τα interfaces που έχεις.  Και
>   κάθε φορά που προσθέτεις ένα interface ακόμα, θα πρέπει να θυμάσαι να
>   προσθέσεις και (2*N + 1) κανόνες ακόμα[1].  Αλλη δουλειά δεν είχαμε,
>   να καθόμαστε να μετράμε κανόνες τώρα :P
>
>  
>
1) 'hot path' ειναι το INPUT-OUTPUT filtering ?
2) αν και αυτο με το 127.0.0.1 μαλλον θελει
αλλαγη σε αυτο που προτεινες, στο ΝxΝ πως
φτανεις  ? (και μετα περνας στον αλλον τυπο
που αναφερεις στο τελος)

>6) Εχεις ένα σωρό άχρηστους κανόνες στο INPUT chain, για να κάνουν
>   explicitly 'DROP' συγκεκριμένες περιπτώσεις.  Αντί να κάθεσαι να
>   ασχολείσαι με κάθε μία περίπτωση ξεχωριστά, άσε το default INPUT
>   chain policy να τα μαζέψει όλα κάτω από την ίδια, πανέμορφη 'DROP'
>   ομπρέλα.
>
>  
>
περα απο το confuzed 127.0.0.1  'i want to startx'
τα λοιπα ειναι προσπαθειες να αντιμετωπιστουν
INVALID πακετα πριν φθασουν να ελεγχθουν για
state



>8) Επιτρέπεις έτσι απλά και ανενδοίαστα όλα τα incoming connections για
>   ports από 1024 και άνω.  ΑΥΤΟ ΔΕΝ ΕΙΝΑΙ ΚΑΛΗ ΙΔΕΑ!  Υπάρχουν περίπου
>   64.510 διαφορετικοί λόγοι γιατί αυτό είναι βλακεία, αλλά θα σε αφήσω
>   να τους ανακαλύψεις ξεχωριστά τον καθένα, καθώς θα στήνεις νέα
>   services στο μηχάνημά σου.
>
>  
>
το ολο ζουμι της ιστοριας και η βασικη ερωτηση
ειναι εδω

ειναι προφανες οτι αφηνω πολλα ports ανοιχτα αλλα
οι παρακατω γραμμες λενε (?)

#αφησε τον χρηστη να κανει νεα connections
#εχε το NEW εφόσον το POLICY ειναι DROP

iptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -s $PPP_LOCAL -j ACCEPT


#επετρεψε του να παραλαβει τα html data και
#βαλε kai udp για να κανει resolve

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -p tcp -d $PPP_LOCAL --dport 1024: -j ACCEPT

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -p udp -d $PPP_LOCAL --dport 1024: -j ACCEPT

με αλλα λογια επιτρεπουμε να ερθουν πραγματα που
εχει ξεκινησει ο ιδιος ο χρηστης και αφορουν δικες του συνδεσεις

δεν τον περιοριζουμε ουτε με ποιον host θα
επικοινωνησει ουτε σε τι port

ο περιορισμος που υιοθετουμε ειναι οτι με βαση
το RELATED,ESTABLISHED , πρεπει το πακετο
να ανηκει σε συνδεση που εχει ξεκινησει ο χρηστης

τα bugs των iptables και ενας καλος tcp/ip
programmer παιζουν ρολο εφ'οσον η μονη γραμμη
αμυνας ειναι το tcp state και το σε ποια συνδεση
ανηκει ενα πακετο



>[1] Τα νέα interfaces είναι N+1, οπότε συνολικά θα πρέπει να προσθέσεις
>    (N + 1)^2 - N^2 κανόνες = (N^2 + 2*N + 1) - N^2 = 2*N + 1.
>  
>
καταλαβα πως εφτασες στον τελικο τυπο αλλα
δεν καταλαβα απο που βγαινει ο αρχικος
(τα τετραγωνα)


γενικα εδωσες περισσοτερη βαση στα normal
errors (hosts, ports) και οχι στα states με τα οποια
παιζουν οι κανονες (think declerative not imperative :)

με το συμπαθιο που κατακρεουργησα το μαιλ σου
αλλα υπεθεσα οτι πολλοι θελουν μονο το ζουμι

____________________________________________________________________
http://www.freemail.gr - δωρεάν υπηρεσία ηλεκτρονικού ταχυδρομείου.
http://www.freemail.gr - free email service for the Greek-speaking.




More information about the Linux-greek-users mailing list