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