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

nftables 0.9.9 пакет сүзгісі шығарылды. Ол IPv4, IPv6, ARP және желілік көпірлер үшін пакет сүзгілеу интерфейстерін біріктіреді (iptables, ip6table, arptables және ebtables ауыстыру ретінде бағытталған). nf_tables ішкі жүйесімен өзара әрекеттесу үшін төмен деңгейлі API ұсынатын libnftnl 1.2.0 кітапханасы бір уақытта шығарылды. nftables 0.9.9 үшін қажетті өзгерістер ядроға енгізілді. Linux 5.13-rc1.

nftables пакеті пайдаланушы кеңістігінде жұмыс істейтін пакет сүзгісінің компоненттерін қамтиды, ал ядро ​​деңгейіндегі жұмыс ядроның бөлігі болып табылатын nf_tables ішкі жүйесімен қамтамасыз етіледі. Linux 3.13 шығарылымынан бастап, ядро ​​​​деңгейінде тек жалпы хаттамаға тәуелсіз интерфейс қамтамасыз етілген, ол пакеттерден деректерді алу, деректер операцияларын орындау және ағынды басқару үшін негізгі функцияларды қамтамасыз етеді.

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

Негізгі инновациялар:

  • Ағымдық кестені өңдеуді желілік адаптер жағына жылжыту мүмкіндігін іске асырды, «жүктеу» жалаушасы арқылы қосылған. Flowtable – пакеттерді қайта жіберу жолын оңтайландыру механизмі, онда барлық ережелерді өңдеу тізбектерінің толық өтуі тек бірінші пакетке ғана қолданылады, ал ағындағы барлық басқа пакеттер тікелей жіберіледі. table ip global { flowtable f { ілмекке кіру басымдылығы сүзгісі + 1 құрылғылар = { lan3, lan0, wan } жалаушаларды түсіру } тізбек алға { түр сүзгі ілмек алға қарай басымдылық сүзгісі; саясатты қабылдау; ip protocol { tcp, udp } flow add @f } тізбекті пост { type nat hook postrouting priority filter; саясатты қабылдау; oifname "wan" маскарад }}
  • Процесс арқылы кестені эксклюзивті пайдалануды қамтамасыз ететін кестеге иелік жалаушаны бекітуге қолдау қосылды. Процесс аяқталғанда, байланысты кесте автоматты түрде жойылады. Процесс туралы ақпарат түсініктеме ретінде ережелер дампында көрсетіледі: table ip x { # progname nft flags иеленушінің тізбегі y { түрі сүзгі ілгегі кіріс басымдылығы сүзгісі; саясатты қабылдау; қарсы пакеттер 1 байт 309 } }
  • IEEE 802.1ad (VLAN жинақтау немесе QinQ) спецификациясына қолдау қосылды, ол бірнеше VLAN тегтерін бір Ethernet кадрына ауыстыру құралдарын анықтайды. Мысалы, сыртқы Ethernet жақтауының 8021ad түрін және vlan идентификаторы=342 түрін тексеру үшін, сыртқы Ethernet жақтау түрін 802.1ad/vlan id=1, кірістірілген 8021q/vlan id=2 және одан әрі ethernet encacket түрін тексеру үшін 802.1ad vlan идентификаторы 342 конструкциясын және одан әрі ethernet түрін пайдалана аласыз. 8021ad vlan идентификаторы 1 vlan түрі 8021q vlan идентификаторы 2 vlan түрі ip есептегіш
  • Бірыңғай cgroups v2 иерархиясы арқылы ресурстарды басқаруға қолдау қосылды. v2 және v1 топтары арасындағы негізгі айырмашылық процессор ресурстарын бөлу, жадты басқару және енгізу/шығару үшін бөлек иерархиялардың орнына барлық ресурс түрлері үшін ортақ топтар иерархиясын пайдалану болып табылады. Мысалы, cgroupv2 бірінші деңгейіндегі ұяның ата-тегінің "system.slice" маскасына сәйкес келетінін тексеру үшін келесі құрылымды пайдалануға болады: ... socket cgroupv2 1-деңгей "system.slice"
  • SCTP пакеттерінің компоненттерін тексеру мүмкіндігі қосылды (жұмыс істеу үшін қажетті функция ядрода пайда болады) Linux 5.14). Мысалы, пакетте 'data' типті және 'type' өрісі бар бөлік бар-жоғын тексеру үшін: … sctp бөлік деректері бар … sctp бөлік деректері 0 түрі
  • «-f» жалаушасын қолданатын жүктеу ережелері жылдамдығы шамамен екі есеге артты. Ережелер тізімін шығару да тездетілді.
  • Жалаушалардағы биттерді орнатуды тексерудің ықшам нысаны қарастырылған. Мысалы, snat және dnat күй биттерінің орнатылмағанын тексеру үшін мынаны көрсетуге болады: ... ct status ! snat,dnat syn битінің syn,ack бит маскасында орнатылғанын тексеру үшін: ... tcp жалаулары syn / syn,ack fin және rst биттерінің syn,ack,fin,rst бит маскасында орнатылмағанын тексеру үшін: ... tcp жалаулары != fin,rst / syn,ack,fin,rst
  • "Үкім" кілт сөзіне жиын/карта үшін typeof анықтамаларында рұқсат етілген: add map xm { typeof iifname . ip протоколы. thport: үкім;}

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

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