nftables пакеттік сүзгі 1.0.6 шығарылымы

nftables 1.0.6 пакеттік сүзгісі шығарылды. Ол IPv4, IPv6, ARP және желілік көпірлер үшін пакеттік сүзгілеу интерфейстерін біріктіреді (iptables, ip6table, arptables және ebtables ауыстыруға бағытталған). nftables пакетіне пайдаланушы кеңістігіндегі пакеттік сүзгі компоненттері кіреді, ал ядро ​​деңгейіндегі функционалдылық ядроның бөлігі болып табылатын nf_tables ішкі жүйесімен қамтамасыз етіледі. Linux 3.13 шығарылымынан бастап, ядро ​​​​деңгейінде тек жалпы хаттамаға тәуелсіз интерфейс қамтамасыз етілген, ол пакеттерден деректерді алу, деректер операцияларын орындау және ағынды басқару үшін негізгі функцияларды қамтамасыз етеді.

Сүзу ережелерінің өзі және хаттамаға тән өңдегіштер пайдаланушы кеңістігінде байткодқа компиляцияланады, содан кейін бұл байткод Netlink интерфейсін пайдаланып ядроға жүктеледі және ядрода арнайы түрде орындалады виртуалды машина, BPF (Berkeley Packet Filters) еске түсіреді. Бұл тәсіл ядро ​​​​деңгейінде жұмыс істейтін сүзу кодының өлшемін айтарлықтай азайтуға мүмкіндік береді және барлық ереже талдауы мен хаттама логикасын пайдаланушы кеңістігіне жылжытады.

Негізгі өзгерістер:

  • "-o/--оңтайландыру" опциясын көрсету кезінде шақырылатын ережелерді оңтайландырушыда ережелерді автоматты түрде орау оларды біріктіру және оларды карта мен жиын тізімдеріне түрлендіру арқылы орнатылды. Мысалы, ережелер мыналар болып табылады: # cat ruleset.nft table ip x { chain y { type сүзгі ілгегі кіріс басымдылық сүзгісі; саясаттың төмендеуі; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 қабылдаңыз meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 қабылданыңыз meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0.i қабылданыңыз ipad ipad 24.i. .1 ip daddr 1.1.1.2-2.2.4.0 қабылдау мета iifname eth2.2.4.10 ip saddr 2 ip daddr 1.1.1.3 қабылдау } } кейін "nft -o -c -f ruleset.nft" келесіге түрлендіріледі: ережелер жинағы. nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 accept ruleset.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.2 ережелер жинағы.nft қабылдау 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 accept ruleset.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2-2.2.4.0. ruleset.nft:2.2.4.10:8-17: meta iifname eth74 ip saddr 2 ip daddr 1.1.1.3 қабылдаңыз: iifname . ip saddr. ip daddr {eth2.2.2.5. 1. 1.1.1.1, eth2.2.2.3 . 1. 1.1.1.2, eth2.2.2.4 . 1. 1.1.1.2/2.2.3.0, eth24 . 1. 1.1.1.2-2.2.4.0, eth2.2.4.10 . 2. 1.1.1.3 } қабылдау
  • Оңтайландырушы қарапайым жиынтық тізімдерін бұрыннан пайдаланатын ережелерді ықшам пішінге қысқарта алады, мысалы: # cat ruleset.nft table ip filter { chain input { type сүзгі ілмек кірісінің басымдылық сүзгісі; саясаттың төмендеуі; IIfName «LO» құрылған CT-ді қабылдайды, «ENP0S31F6» IP-дің «enp209.115.181.102s216.197.228.230f10.0.0.149» eNP123S32768F65535 «IP Sadd [0} IP Daddr 31 UDP Sport 6 UDP Sport 64.59.144.17-64.59.150.133 iifname "enp10.0.0.149s53f32768" ip saddr { 65535, 6 } ip daddr 22 udp sport 149 udp dport 0-31 қабылданады } -} - пакет іске қосылғаннан кейін ережелер "nftc" сияқты болады. : ruleset.nft:6:209.115.181.102-216.197.228.230: iifname "enp10.0.0.149s123f32768" ip saddr {65535, 7 } ip daddr 22 udp спорт 143 ережелері udp0s31f6: d64.59.144.17: қабылдау -64.59.150.133 10.0.0.149 : iifname "enp53s32768f65535" ip saddr {0, 31 } ip daddr 6 udp спорт 209.115.181.102 udp dport 10.0.0.149-123 қабылдау: iifname. ip saddr. ip Daddr. udp спорт. udp dport {enp32768s65535f0. 31. 6. 216.197.228.230. 10.0.0.149-123, enp32768s65535f0 . 31. 6. 64.59.144.17. 10.0.0.149-53, enp32768s65535f0 . 31. 6. 64.59.150.133 . 10.0.0.149-53, enp32768s65535fXNUMX . XNUMX. XNUMX. XNUMX . XNUMX-XNUMX } қабылдаңыз
  • IPv4 (желілік индиан) және мета белгісі (жүйе индианиясы) сияқты әртүрлі индианциясы бар түрлерді пайдаланатын аралықтарды біріктіру үшін байт-кодты құру мәселесі шешілді. кесте IP x {карта w { typeof IP saddr. мета белгісі: үкім жалаулары аралығы қарсы элементтері = {127.0.0.1-127.0.0.4. 0x123434-0xb00122 : қабылдау, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : қабылдау, } } тізбек k {түрі сүзгі ілмегі кіріс басымдылығы сүзгісі; саясаттың төмендеуі; ip saddr. мета белгісі vmap @w } }
  • Шикі өрнектерді пайдаланған кезде жақсартылған сирек протокол салыстырулары, мысалы: meta l4proto 91 @th,400,16 0x0 қабылданады
  • Ережелерді аралықпен қосуға қатысты түзетілген мәселелер: кірістіру ережесі xy tcp sport {3478-3497, 16384-16387 } санауыш қабылдау
  • JSON API жиынтық және карта тізімдеріндегі өрнектерді қолдау үшін жақсартылды.
  • nftables python кітапханасының кеңейтімдерінде ережелер жиынын тексеру режимінде («-c») өңдеу үшін жүктеуге рұқсат етіледі және сыртқы айнымалы анықтамасына қолдау қосылды.
  • Пікірлерді қосу жиын тізімдерінің элементтерінде рұқсат етіледі.
  • Байт жылдамдығы шегінде нөлдік мәнді көрсетуге рұқсат етіледі.

Ақпарат көзі: opennet.ru

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster