netfilter - pf (was: Re: OpenBSD)

Fanis Dokianakis madf at hellug.gr
Fri May 18 02:04:30 EEST 2007


On Thu, May 17, 2007 at 02:19:42AM +0300, Fotos Georgiadis wrote:
> 
> On 16 May 2007, at 21:31, Christos Nouskas wrote:
> 
> Γειά,
> 
> >   Έχει δίκιο ο φίλος σου, βάλε linux/netfilter.
> 
> Προσωπική μου άποψη είναι να χρησιμοποιείς το κατάλληλο εργαλείο για  
> την κατάλληλη δουλειά.
> Και το OpenBSD είναι το κατάλληλο εργαλείο για αυτή την δουλειά  
> (firewall και vpn).
> 
> Έχει small footprint και σε μνήμη και σε δίσκο, που σημαίνει ότι  
> μπορείς να το βάλεις και σε αρκετά παλιό
> μηχάνημα και να κάνει την δουλειά του μια χαρά, είναι (συνήθως)  
> secure by default και απλά ανοίγεις
> αυτά που χρειάζεσαι, σε αντίθεση με το να κλείνεις αυτά που δεν  
> χρειάζεσαι όπως θα έκανες σε κάποια τυχαία linux διανομή.

Κλασσικές ατάκες ενός OpenBSD advocate. Η πραγματικότητα όμως είναι άλλη.
Το OpenBSD είναι και θα παραμείνει ΑΡΓΟ [1].

Το Linux διαχερίζεται καλύτερα την μνήμη και την διαθέσιμη επεξεργαστική
ισχύ σε ένα παλιό υπολογιστή (δεν θυμάμαι να κυκλοφορούν πολλοί bsd
based home routers) και το base installation του openbsd είναι
ανάλογο σε μέγεθος με αυτό major διανομών. Και δεν βάζεις μια
οποιαδήποτε τυχαία διανομή σε ένα απλό gw/router.

> 
> Το pf (packet filter του OpenBSD) έχει πολλές δυνατότητες (tables,  
> macros, variables), απλό syntax και απλή λογική σε αντίθεση με το  
> iptables/netfilter.
> Έχει ενσωματωμένο QoS (με HFSC, CBQ, PRIQ κτλ. αν το χρειάζεσαι τότε  
> θα ξέρεις και σε τι αναφέρομαι). Κάνει load balancing (ingress και  
> egress),
> packet tagging, packet normalization, έχει πολύ καλό performance σε  
> συνδυασμό με αρκετά καλό (και τουλάχιστον πλήρες) manual.

Έχω και εγώ προβλήματα με το iptables αλλά θα πρέπει να ξακαθαρίσω
ορισμένα πράγματακια.

Οι κανόνες στο iptables δίνονται αποκλειστικά μέσω arguments στην γραμμή
εντολών, δηλαδή, το iptables δεν περιέχει και ένα parser σαν το pf.
Υπάρχουν όμως πρόσθετα firewall building scripts και firewall guis που 
κάνουν την ίδια και καλύτερη δουλεία από τον pf parser. 

Η ασφάλεια που παρέχει ένα firewall είναι κατά 99% συνάρτηση της
ικανότητας που έχει ο συγγραφέας να κατανοεί το δικτυό του και τις
ανάγκες του. Ναι, είναι αρκετά δύσκολο να γράψείς 50 εντόλές iptables,
αλλά δεν χρειάζεται και πολύ προσπάθεια για να γράψεις ένα κακό firewall
στο pf.


> Στο linux πρέπει να χρησιμοποιήσεις κάτι "άσχημες" εντολές όπως tc  
> και iproute2 με κάτι arguments που δεν θέλω να θυμάμαι, για να κάνεις
> load balancing ή λίγο πιο advanced routing. Τουλάχιστον στο pf τα  
> κάνανε integrate αυτά και με καθόλου άσχημο τρόπο.
> 

Το tc και το iproute2 αποτελούν εκπληκτικά utilities που συμπληρώνουν
απόλυτα το iptables στο netfilter framework, με features που ονειρεύεται
το bsd.


> Επίσης το  pf γράφτηκε από security conscious ανθρώπους και σε μικρό  
> χρόνικό διάστημα έγινε το default packet filter σε όλα τα well known BSD
> (ελπίζω να μου το επιβεβαιώσει και ο ο Κεραμίδας αυτό γιατί έχω και  
> κάτι χρόνια να χρησιμοποιήσω FreeBSD :))
>

Θές να πείς ότι το netfilter δεν γράφτηκε από security conscious
ανθρώπους; Το netfilter είχε bugs στην ιστορία του, αλλά όσο καιρό
υπάρχει το pf δεν έχει βγεί κάποιο σοβαρό bug. Μην ξεχνάμε ότι και τα
δύο project έχουν το ίδιο μοντέλο ανάπτυξης (open source development)
και είναι ο σωστότερος τρόπος ανάπτυξης ασφαλών εφαρμογών.

> Προφανώς έχω χρησιμοποιήσει και το netfilter αρκετά (όπως και το  
> ipchains πριν από αυτό), και μπορώ να έχω μια άποψη
> και για τα δύο (ή τρία). Το OpenBSD είναι γεννημένο για τέτοιες  
> δουλειές (να κάθεται φρουρός ανάμεσα σε δίκτυα). Πάντως
> αν ακόμα σκέφτεσαι το Linux τότε καλύτερα να ρίξεις μια ματιά στο  
> IPCop (http://ipcop.org/), παρά στην τυχαία διανομή της γειτονιάς σου.

Το Netfilter [2] είναι ταχύτερο έχει περισσότερα features, έχει helpers
για ότι πρωτόκολλο σου σπάει τα νεύρα και είναι μακράν πιο ευέλικτο και
επεκτάσιμο από το pf. Φυσικά όσο πιο πολλά features χρησιμοποιείς τόσο
περισσότερες οι πιθανότητες για bugs, για αυτό όμως το netfilter είναι
εντελώς modular (μέχρι και το ποιό βασικό match/target). 

Χμμ ναι ξέχασα να ρωτήσω. Υπάρχει τελικά σταθερό journaling filesystem
στο openbsd (ή γενικά στα bsd);

Φάνης

Υ.Γ δεν συνηθιζω να μπλέκω σε flamewars αλλά ρε γαμώτο έχω σιχαθεί όλη
αυτή την παραπληροφόρηση, (κύριώς από χρήστες άλλων *nix), ενάντια στο
linux.

[1] http://bulk.fefe.de/scalability/
[2] http://www.benzedrine.cx/pf-paper.html




More information about the Linux-greek-users mailing list