nftables paket filtri 1.0.7 buraxılışı

IPv1.0.7, IPv4, ARP və şəbəkə körpüləri (iptables, ip6table, arptables və ebtables əvəz etmək məqsədi daşıyır) üçün paket filtrləmə interfeyslərini birləşdirən nftables 6 paket filtri buraxılışı nəşr edilmişdir. Nftables paketinə istifadəçi məkanında işləyən paket filtri komponentləri daxildir, nüvə səviyyəsi isə 3.13 buraxılışından bəri Linux nüvəsinin bir hissəsi olan nf_tables alt sistemi tərəfindən təmin edilir. Kernel səviyyəsində paketlərdən məlumatların çıxarılması, verilənlər üzərində əməliyyatların yerinə yetirilməsi və axının idarə edilməsi üçün əsas funksiyaları təmin edən yalnız ümumi protokoldan asılı olmayan interfeys təmin edilir.

Filtrləmə qaydalarının özləri və protokola xas işləyicilər istifadəçi məkanı bayt koduna tərtib edilir, bundan sonra bu bayt kodu Netlink interfeysindən istifadə edərək nüvəyə yüklənir və BPF-ə (Berkeley Paket Filtrləri) bənzəyən xüsusi virtual maşında nüvədə icra olunur. Bu yanaşma nüvə səviyyəsində işləyən filtrləmə kodunun ölçüsünü əhəmiyyətli dərəcədə azaltmağa və təhlil qaydaları və protokollarla işləmək məntiqinin bütün funksiyalarını istifadəçi sahəsinə köçürməyə imkan verir.

Əsas dəyişikliklər:

  • Linux kernel 6.2+ ilə işləyən sistemlər üçün vxlan, geneve, gre və gretap protokol xəritələri üçün dəstək əlavə edilib ki, bu da sadə ifadələrə kapsullaşdırılmış paketlərdə başlıqları yoxlamağa imkan verir. Məsələn, VxLAN-dan daxili paketin başlığında IP ünvanını yoxlamaq üçün indi qaydalardan istifadə edə bilərsiniz (əvvəlcə VxLAN başlığını de-kapsulyasiya etməyə və filtri vxlan0 interfeysinə bağlamaya ehtiyac olmadan): ... udp dport 4789 vxlan ip protokolu udp ... udp dport 4789 vxlan ip saddr 1.2.3.0/24 ... udp dport 4789 vxlan ip saddr . vxlan ip daddr {1.2.3.4. 4.3.2.1 }
  • Dəst siyahısı elementinin qismən silinməsindən sonra qalıqların avtomatik birləşməsinə dəstək tətbiq edilib ki, bu da mövcud diapazondan elementi və ya diapazonun bir hissəsini silməyə imkan verir (əvvəllər diapazon yalnız tamamilə silinə bilərdi). Məsələn, 25-24 və 30-40 diapazonlu dəst siyahısından 50-ci elementi çıxardıqdan sonra siyahı 24, 26-30 və 40-50 olaraq qalacaq. Avtomatik birləşmənin işləməsi üçün lazım olan düzəlişlər 5.10+ nüvəsinin sabit filiallarının texniki xidmət buraxılışlarında təklif olunacaq. # nft siyahısı qaydaları cədvəli ip x { set y { typeof tcp dport bayraqları intervalı avtomatik birləşmə elementləri = { 24-30, 40-50 } } } # nft element silmək ip xy { 25 } # nft siyahısı qaydaları cədvəli cədvəl ip x { set y { typeof tcp dport bayraqları intervalı avtomatik birləşmə elementləri = { 24, 26-30, 40-50 } } }
  • Ünvan tərcüməsini (NAT) xəritələyərkən kontaktlardan və diapazonlardan istifadə etməyə imkan verir. table ip nat { chain prerouting { type nat hook prerouting priority dstnat; siyasəti qəbul etmək; dnat to ip daddr. tcp dport xəritəsi {10.1.1.136. 80: 1.1.2.69. 1024, 10.1.1.10-10.1.1.20. 8888-8889: 1.1.2.69. 2048-2049 } davamlı } }
  • Bir qayda elementinin və ya dəst siyahısının son istifadə vaxtını öyrənməyə imkan verən "son" ifadəsi üçün əlavə dəstək. Funksiya Linux kernel 5.14-dən başlayaraq dəstəklənir. masa ip x { set y { typeof ip daddr . tcp dport ölçüsü 65535 bayraqlar dinamik, son vaxt aşımı 1 saat } zəncir z { növü filter çəngəl çıxış prioritet filter; siyasəti qəbul etmək; yeniləmə @y { ip daddr . tcp dport } } } # nft siyahı dəsti ip xy cədvəl ip x { set y { typeof ip daddr . tcp dport ölçüsü 65535 bayraqlar dinamik, son fasilə 1 saat elementlər = { 172.217.17.14 . 443 son istifadə 1s591ms zaman aşımı 1saat başa çatır 59m58s409ms, 172.67.69.19 . 443 son istifadə 4s636ms zaman aşımı 1saat başa çatır 59m55s364ms, 142.250.201.72 . 443 son istifadə 4s748ms fasilə 1saat bitir 59m55s252ms, 172.67.70.134 . 443 son istifadə 4s688ms zaman aşımı 1saat başa çatır 59m55s312ms, 35.241.9.150 . 443 son istifadə 5s204ms zaman aşımı 1saat başa çatır 59m54s796ms, 138.201.122.174 . 443 son istifadə 4s537ms zaman aşımı 1saat başa çatır 59m55s463ms, 34.160.144.191 . 443 son istifadə 5s205ms fasilə 1saat bitir 59m54s795ms, 130.211.23.194 . 443 son istifadə 4s436ms fasilə 1saat 59m55s564ms } } }
  • Set siyahılarında kvota müəyyən etmək imkanı əlavə edildi. Məsələn, hər bir hədəf IP ünvanı üçün trafik kvotasını müəyyən etmək üçün aşağıdakıları təyin edə bilərsiniz: cədvəl netdev x { set y { typeof ip daddr size 65535 kvota 10000 mbbyte } chain y { type filter hook egress device "eth0" prioritet filter; siyasəti qəbul etmək; ip daddr @y drop } } # nft element əlavə et inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft siyahısı qaydaları cədvəli netdev x { set y { yazın ipv4_addr ölçüsü 65535 kvota 10000 mbayt elementdən çox. = {8.8.8.8. 10000 kvota istifadə edilən 196 mbbaytdan çox 0 bayt } } zəncir y { tipli filtr qarmaqlı çıxış cihazı “ethXNUMX” prioritet filtri; siyasəti qəbul etmək; ip daddr @y drop } }
  • Set siyahılarında sabitlərin istifadəsinə icazə verilir. Məsələn, təyinat ünvanı və VLAN ID-ni siyahı açarı kimi istifadə edərkən, siz birbaşa VLAN nömrəsini təyin edə bilərsiniz (daddr . 123): table netdev t { set s { typeof ether saddr . vlan id ölçüsü 2048 bayraqlar dinamik, zaman aşımı 1m } zəncir c { növü filter qarmaq giriş cihazı eth0 prioritet 0; siyasəti qəbul etmək; efir növü != 8021q yeniləmə @s { efir daddr . 123 } sayğac } }
  • Obyektləri qeyd-şərtsiz silmək üçün yeni "məhv et" əmri əlavə edildi (silmək əmrindən fərqli olaraq, itkin obyekti silmək istəyərkən ENOENT yaratmır). İşləmək üçün ən azı Linux kernel 6.3-rc tələb olunur. masa ip filtrini məhv edin

Mənbə: opennet.ru

Добавить комментарий