nftables packet filter 0.9.3 release

Που δημοσιεύθηκε απελευθέρωση φίλτρου πακέτου nftables 0.9.3, που αναπτύσσεται ως αντικατάσταση των iptables, ip6table, arptables και ebtables ενοποιώντας τις διεπαφές φιλτραρίσματος πακέτων για IPv4, IPv6, ARP και γέφυρες δικτύου. Το πακέτο nftables περιλαμβάνει στοιχεία φίλτρου πακέτων που εκτελούνται στο χώρο του χρήστη, ενώ η εργασία σε επίπεδο πυρήνα παρέχεται από το υποσύστημα nf_tables, το οποίο αποτελεί μέρος του πυρήνα του Linux από την έκδοση 3.13. Οι αλλαγές που απαιτούνται για να λειτουργήσει η κυκλοφορία του nftables 0.9.3 περιλαμβάνονται στον επερχόμενο κλάδο πυρήνα Linux 5.5.

Το επίπεδο πυρήνα παρέχει μόνο μια γενική διεπαφή ανεξάρτητη από πρωτόκολλο που παρέχει βασικές λειτουργίες για την εξαγωγή δεδομένων από πακέτα, την εκτέλεση λειτουργιών δεδομένων και τον έλεγχο ροής. Η ίδια η λογική του φιλτραρίσματος και οι ειδικοί χειριστές του πρωτοκόλλου μεταγλωττίζονται σε bytecode στον χώρο χρήστη, μετά τον οποίο αυτός ο bytecode φορτώνεται στον πυρήνα χρησιμοποιώντας τη διεπαφή Netlink και εκτελείται σε μια ειδική εικονική μηχανή που θυμίζει BPF (Berkeley Packet Filters). Αυτή η προσέγγιση σάς επιτρέπει να μειώσετε σημαντικά το μέγεθος του κώδικα φιλτραρίσματος που εκτελείται σε επίπεδο πυρήνα και να μετακινήσετε όλες τις λειτουργίες των κανόνων ανάλυσης και της λογικής για την εργασία με πρωτόκολλα στο χώρο χρήστη.

Βασικές καινοτομίες:

  • Υποστήριξη για αντιστοίχιση πακέτων ανά ώρα. Μπορείτε να ορίσετε το εύρος ώρας και ημερομηνιών στις οποίες θα ενεργοποιείται ο κανόνας και να διαμορφώσετε την ενεργοποίηση σε μεμονωμένες ημέρες της εβδομάδας. Προστέθηκε επίσης μια νέα επιλογή "-T" για εμφάνιση της εποχής σε δευτερόλεπτα.

    meta time \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    μετα-ώρα \"17:00\" - \"19:00\"
    meta day \"Παρασκευή\"

  • Υποστήριξη για ανάκτηση και αποθήκευση σημάτων SELinux (secmark).

    ct secmark set meta secmark
    meta secmark set ct secmark

  • Υποστήριξη για λίστες χαρτών synproxy, που σας επιτρέπει να ορίζετε περισσότερους από έναν κανόνες ανά backend.

    τραπέζι ip foo {
    synproxy https-synproxy {
    ms 1460
    wscale 7
    χρονοσήμανση σακί-περμ
    }

    synproxy other-synproxy {
    ms 1460
    wscale 5
    }

    αλυσίδα προ {
    τύπου φίλτρο άγκιστρο προδρομολόγηση προτεραιότητα ακατέργαστο? πολιτική αποδοχή?
    tcp dport 8888 tcp flags syn notrack
    }

    μπάρα αλυσίδας {
    Τύπος φίλτρου γάντζου προς τα εμπρός φίλτρο προτεραιότητας. πολιτική αποδοχή?
    κατάσταση ct invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “other-synproxy” }
    }
    }

  • Η δυνατότητα δυναμικής αφαίρεσης στοιχείων συνόλου από κανόνες επεξεργασίας πακέτων.

    κανόνας προσθήκης nft ... διαγραφή @set5 { ip6 saddr . ip6 daddr}

  • Υποστήριξη για αντιστοίχιση VLAN με αναγνωριστικό και πρωτόκολλο που ορίζονται στα μεταδεδομένα της διεπαφής γέφυρας δικτύου.

    meta ibrpvid 100
    meta ibrvproto vlan

  • Επιλογή "-t" ("--terse") για εξαίρεση στοιχείων συνόλων κατά την εμφάνιση κανόνων. Εκτελώντας το "nft -t list ruleset" θα βγει:

    πίνακας ip x {
    σύνολο y {
    πληκτρολογήστε ipv4_addr
    }
    }

    Και με "σύνολο κανόνων λίστας nft"

    πίνακας ip x {
    σύνολο y {
    πληκτρολογήστε ipv4_addr
    στοιχεία = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Δυνατότητα καθορισμού περισσότερων από μία συσκευών σε αλυσίδες netdev (λειτουργεί μόνο με τον πυρήνα 5.5) για συνδυασμό κοινών κανόνων φιλτραρίσματος.

    προσθήκη πίνακα netdev x
    προσθήκη αλυσίδας netdev xy { \
    τύπου συσκευές εισόδου άγκιστρου φίλτρου = { eth0, eth1 } προτεραιότητα 0;
    }

  • Δυνατότητα προσθήκης περιγραφών τύπων δεδομένων.

    #nft περιγράφουν το ipv4_addr
    τύπος δεδομένων ipv4_addr (διεύθυνση IPv4) (ακέραιος τύπος βάσης), 32 bit

  • Δυνατότητα δημιουργίας διεπαφής CLI με τη βιβλιοθήκη linenoise αντί για libreadline.

    ./configure --with-cli=linenoise

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο