stateful firewall issues (Was Re: Think Simple!)

Giorgos Keramidas keramida at ceid.upatras.gr
Sat Sep 2 22:56:13 EEST 2006


On 2006-09-02 23:16, george <zakinthinos at freemail.gr> wrote:
>Giorgos Keramidas wrote:
>>zakinthinos wrote:
>>> επικρινεις το γεγονος οτι υπαρχουν 64.510 ports ανοιχτα αλλα δεν
>>> "βλεπεις" οτι υπαρχει state checking μεταξυ INPUT και OUTPUT, γιατι να
>>> το εβλεπες και να μου λεγες "βλακεια ειναι γιατι...." παει καλα, το
>>> αγνοεις εντελως και μιλας για 1000 περιφερειακα θεματα
>>
>>
>> Δεν το αγνοώ εντελώς.  Απλά εξακολουθεί να είναι λάθος, παρόλο που έχεις
>> state checking.  Το state checking *δεν* λύνει το πρόβλημα ότι έχεις
>> ορθάνοιχτα όλα τα ports από 1024 και πάνω.
>
> o remote www server ακουει στην 80 ελα ομως που απανταει σε οποια
> πορτα θελει ( >= 1024) , περιοριζεται αυτο ?

Κάτι που δεν έχει *ΚΑΜΙΑ* *ΑΠΟΛΥΤΩΣ* σημασία, αφού εσύ δεν φιλτράρεις με
βάση το client-side port, αλλά με βάση τον κανόνα "εγώ ξεκίνησα αυτό το
connection, άσε τα πακέτα να περνάνε".

On 2006-09-02 23:16, george <zakinthinos at freemail.gr> wrote:
>Giorgos Keramidas wrote:
>>zakinthinos wrote:
>>> απο ολο το setup αφησα 3 γραμμες, αντε να δουμε αν θα δεις αυτο το
>>> αγιο ESTABLISHED,RELATED
>>
>>
>> Τα 'ESTABLISHED,RELATED' εγώ τα βλέπω.  Το --dport 1024: ακόμα να το
>> δεις εσύ;
> [...]
>
> #send requests to servers
> iptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -s
> $PPP_LOCAL -j ACCEPT
>
> #accept responses from the servers
> iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -p tcp \
> -d $PPP_LOCAL --dport 1024: -m multiport --sports 80,110,25,21,20 -j ACCEPT
>
> iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -p udp \
> -d $PPP_LOCAL --dport 1024: -m multiport --sports 80,110,53 -j ACCEPT
>
> πως γινεται να αλλαξεις τα παραπανω ωστε ο χρηστης να βλεπει οποιον
> www, ftp, pop3 , smtp server θελει (οι οποιοι απαντουν σε random
> unprivileged ports στην πλευρα του client) και να εχεις κλειστα τα
> ports >=1024
>
> netstat -an =   client:56706 --- > server:www
>
> σου αναφερω για το web γιατι αυτο ειναι το βασικο προβλημα εφοσον δεν
> γνωριζουμε ποιο url Θα δωσει ο χρηστης αρα δεν εχουμε ουτε το ip του
> server ουτε σε ποιο port Θα μας απαντησει

Εδώ είναι που κάνεις λάθος τόσο καιρό.  Το server-side port number είναι
ΠΑΝΤΑ ΤΟ ΙΔΙΟ.  Το client-side port δεν έχει σημασία, αρκεί να γράψεις
τον κανόνα σου σωστά.

Τι νομίζεις ότι κάνει ο παρακάτω κανόνας;

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

Οταν το καταλάβεις αυτό, θα έχεις κάνει το πρώτο βασικό βήμα προς ένα
firewall ruleset που είναι πολύ πιο απλό, πιο αποδοτικό και (στη
συγκεκριμένη περίπτωση) πιο ασφαλές από αυτό που έχεις τώρα.




More information about the Linux-greek-users mailing list