nftables ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ 1.0.7 ಬಿಡುಗಡೆ

ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ nftables 1.0.7 ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ, IPv4, IPv6, ARP ಮತ್ತು ನೆಟ್‌ವರ್ಕ್ ಸೇತುವೆಗಳಿಗಾಗಿ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರಿಂಗ್ ಇಂಟರ್‌ಫೇಸ್‌ಗಳನ್ನು ಏಕೀಕರಿಸುತ್ತದೆ (iptables, ip6table, arptables ಮತ್ತು ebtables ಅನ್ನು ಬದಲಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ). nftables ಪ್ಯಾಕೇಜ್ ಬಳಕೆದಾರರ ಜಾಗದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಆದರೆ ಕರ್ನಲ್-ಮಟ್ಟದ ಕೆಲಸವನ್ನು nf_tables ಉಪವ್ಯವಸ್ಥೆಯಿಂದ ಒದಗಿಸಲಾಗುತ್ತದೆ, ಇದು ಬಿಡುಗಡೆಯಾದ 3.13 ರಿಂದ ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನ ಭಾಗವಾಗಿದೆ. ಕರ್ನಲ್ ಮಟ್ಟವು ಪ್ಯಾಕೆಟ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು, ಡೇಟಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಹರಿವಿನ ನಿಯಂತ್ರಣಕ್ಕೆ ಮೂಲಭೂತ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುವ ಸಾಮಾನ್ಯ ಪ್ರೋಟೋಕಾಲ್-ಸ್ವತಂತ್ರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ.

ಫಿಲ್ಟರಿಂಗ್ ನಿಯಮಗಳು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್-ನಿರ್ದಿಷ್ಟ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಯೂಸರ್-ಸ್ಪೇಸ್ ಬೈಟ್‌ಕೋಡ್‌ಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ, ನಂತರ ಈ ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ನೆಟ್‌ಲಿಂಕ್ ಇಂಟರ್ಫೇಸ್ ಬಳಸಿ ಕರ್ನಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಬಿಪಿಎಫ್ (ಬರ್ಕ್ಲಿ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್‌ಗಳು) ಹೋಲುವ ವಿಶೇಷ ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ ಕರ್ನಲ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ವಿಧಾನವು ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಫಿಲ್ಟರಿಂಗ್ ಕೋಡ್‌ನ ಗಾತ್ರವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ನಿಯಮಗಳ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ತರ್ಕವನ್ನು ಬಳಕೆದಾರರ ಜಾಗಕ್ಕೆ ಸರಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.

ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • Linux ಕರ್ನಲ್ 6.2+ ಚಾಲನೆಯಲ್ಲಿರುವ ಸಿಸ್ಟಂಗಳಿಗಾಗಿ, vxlan, geneve, gre, ಮತ್ತು gretap ಪ್ರೋಟೋಕಾಲ್ ಮ್ಯಾಪಿಂಗ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಸುತ್ತುವರಿದ ಪ್ಯಾಕೆಟ್‌ಗಳಲ್ಲಿ ಹೆಡರ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸರಳ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, VxLAN ನಿಂದ ನೆಸ್ಟೆಡ್ ಪ್ಯಾಕೆಟ್‌ನ ಹೆಡರ್‌ನಲ್ಲಿ IP ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲು, ನೀವು ಈಗ ನಿಯಮಗಳನ್ನು ಬಳಸಬಹುದು (ಮೊದಲು VxLAN ಹೆಡರ್ ಅನ್ನು ಡಿ-ಎನ್‌ಕ್ಯಾಪ್ಸುಲೇಟ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೇ ಮತ್ತು vxlan0 ಇಂಟರ್ಫೇಸ್‌ಗೆ ಫಿಲ್ಟರ್ ಅನ್ನು ಬೈಂಡ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ): ... udp dport 4789 vxlan ip ಪ್ರೋಟೋಕಾಲ್ udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip daddr { 4.3.2.1 . XNUMX}
  • ಸೆಟ್-ಲಿಸ್ಟ್ ಅಂಶದ ಭಾಗಶಃ ಅಳಿಸುವಿಕೆಯ ನಂತರ ಉಳಿದವುಗಳ ಸ್ವಯಂಚಾಲಿತ ವಿಲೀನಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಶ್ರೇಣಿಯಿಂದ ಒಂದು ಅಂಶ ಅಥವಾ ವ್ಯಾಪ್ತಿಯ ಭಾಗವನ್ನು ಅಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಹಿಂದೆ, ಶ್ರೇಣಿಯನ್ನು ಮಾತ್ರ ಸಂಪೂರ್ಣವಾಗಿ ಅಳಿಸಬಹುದು). ಉದಾಹರಣೆಗೆ, 25-24 ಮತ್ತು 30-40 ಶ್ರೇಣಿಗಳೊಂದಿಗೆ ಸೆಟ್ ಪಟ್ಟಿಯಿಂದ ಅಂಶ 50 ಅನ್ನು ತೆಗೆದುಹಾಕಿದ ನಂತರ, ಪಟ್ಟಿಯು 24, 26-30 ಮತ್ತು 40-50 ಆಗಿ ಉಳಿಯುತ್ತದೆ. 5.10+ ಕರ್ನಲ್‌ನ ಸ್ಥಿರ ಶಾಖೆಗಳ ನಿರ್ವಹಣಾ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಆಟೋಮರ್ಜಿಂಗ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಪರಿಹಾರಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ. # nft ಲಿಸ್ಟ್ ರೂಲ್‌ಸೆಟ್ ಟೇಬಲ್ ip x {set y {typeof tcp dport ಫ್ಲ್ಯಾಗ್‌ಗಳ ಮಧ್ಯಂತರ ಸ್ವಯಂ-ವಿಲೀನ ಅಂಶಗಳು = { 24-30, 40-50 } } } # nft ಡಿಲೀಟ್ ಎಲಿಮೆಂಟ್ ip xy { 25 } # nft ಲಿಸ್ಟ್ ರೂಲ್‌ಸೆಟ್ ಟೇಬಲ್ ip x { ಸೆಟ್ y {ಟೈಪ್ ಆಫ್ ಟಿಸಿಪಿ ಡಿಪೋರ್ಟ್ ಫ್ಲ್ಯಾಗ್‌ಗಳ ಮಧ್ಯಂತರ ಸ್ವಯಂ-ವಿಲೀನ ಅಂಶಗಳು = { 24, 26-30, 40-50 }} }
  • ವಿಳಾಸ ಅನುವಾದವನ್ನು ಮ್ಯಾಪಿಂಗ್ ಮಾಡುವಾಗ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಶ್ರೇಣಿಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ (NAT). ಟೇಬಲ್ ಐಪಿ ನ್ಯಾಟ್ { ಚೈನ್ ಪ್ರಿರೌಟಿಂಗ್ {ಟೈಪ್ ನ್ಯಾಟ್ ಹುಕ್ ಪ್ರಿರೌಟಿಂಗ್ ಆದ್ಯತೆ ಡಿಎಸ್‌ಟಿನಾಟ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ; dnat to ip daddr. tcp dport ನಕ್ಷೆ {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 } ನಿರಂತರ } }
  • "ಕೊನೆಯ" ಅಭಿವ್ಯಕ್ತಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ನಿಯಮ ಅಂಶ ಅಥವಾ ಸೆಟ್ ಪಟ್ಟಿಯ ಕೊನೆಯ ಬಳಕೆಯ ಸಮಯವನ್ನು ಕಂಡುಹಿಡಿಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಲಿನಕ್ಸ್ ಕರ್ನಲ್ 5.14 ರಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಈ ವೈಶಿಷ್ಟ್ಯವು ಬೆಂಬಲಿತವಾಗಿದೆ. ಟೇಬಲ್ ಐಪಿ ಎಕ್ಸ್ { ಸೆಟ್ ವೈ { ಐಪಿ ಡ್ಯಾಡ್ರ್ ಪ್ರಕಾರ tcp dport ಗಾತ್ರ 65535 ಫ್ಲ್ಯಾಗ್‌ಗಳು ಡೈನಾಮಿಕ್, ಟೈಮ್‌ಔಟ್ ಕೊನೆಯ ಸಮಯ ಮೀರಿದೆ 1h } ಚೈನ್ z {ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಔಟ್‌ಪುಟ್ ಆದ್ಯತಾ ಫಿಲ್ಟರ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ; @y { ip daddr ಅನ್ನು ನವೀಕರಿಸಿ. tcp dport } } } # nft ಪಟ್ಟಿ ಸೆಟ್ ip xy ಟೇಬಲ್ ip x { set y { typeof ip daddr . tcp dport ಗಾತ್ರ 65535 ಫ್ಲ್ಯಾಗ್‌ಗಳು ಡೈನಾಮಿಕ್, ಟೈಮ್‌ಔಟ್ ಕೊನೆಯ ಸಮಯ ಮೀರಿದೆ 1h ಅಂಶಗಳು = { 172.217.17.14 . 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 1s591ms ಸಮಯ ಮೀರಿದೆ 1h 59m58s409ms, 172.67.69.19 ಕ್ಕೆ ಮುಕ್ತಾಯವಾಗುತ್ತದೆ. 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 4s636ms ಸಮಯ ಮೀರಿದೆ 1h 59m55s364ms, 142.250.201.72 . 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 4s748ms ಸಮಯ ಮೀರಿದೆ 1h 59m55s252ms, 172.67.70.134 . 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 4s688ms ಸಮಯ ಮೀರಿದೆ 1h 59m55s312ms, 35.241.9.150 ಕ್ಕೆ ಮುಕ್ತಾಯವಾಗುತ್ತದೆ. 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 5s204ms ಅವಧಿ ಮೀರಿದೆ 1h 59m54s796ms, 138.201.122.174 . 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 4s537ms ಸಮಯ ಮೀರಿದೆ 1h 59m55s463ms, 34.160.144.191 ಕ್ಕೆ ಮುಕ್ತಾಯವಾಗುತ್ತದೆ. 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 5s205ms ಅವಧಿ ಮೀರಿದೆ 1h 59m54s795ms, 130.211.23.194 . 443 ಕೊನೆಯದಾಗಿ ಬಳಸಿದ 4s436ms ಅವಧಿ ಮೀರಿದೆ 1ಗಂ 59m55s564ms }}}
  • ಸೆಟ್ ಪಟ್ಟಿಗಳಲ್ಲಿ ಕೋಟಾಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಪ್ರತಿ ಗುರಿ IP ವಿಳಾಸಕ್ಕಾಗಿ ಟ್ರಾಫಿಕ್ ಕೋಟಾವನ್ನು ನಿರ್ಧರಿಸಲು, ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು: ಟೇಬಲ್ netdev x {set y { typeof ip daddr size 65535 quota over 10000 mbytes } chain y { type filter hook egress device "eth0" priority filter; ನೀತಿ ಸ್ವೀಕರಿಸಿ; ip daddr @y drop } } # nft ಆಡ್ ಎಲಿಮೆಂಟ್ inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft ಲಿಸ್ಟ್ ರೂಲ್‌ಸೆಟ್ ಟೇಬಲ್ netdev x {set y {ಟೈಪ್ ipv4_addr ಗಾತ್ರ 65535 ಕೋಟಾ ಮೇಲೆ 10000 mbytes ಮೂಲಾಂಶಗಳು = 8.8.8.8 mbytes 10000 ಕೋಟಾ 196 ಬೈಟ್‌ಗಳಿಗಿಂತ ಹೆಚ್ಚು ಬಳಸಲಾಗಿದೆ 0 ಬೈಟ್‌ಗಳು } } ಚೈನ್ y {ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಎಗ್ರೆಸ್ ಡಿವೈಸ್ “ethXNUMX” ಆದ್ಯತಾ ಫಿಲ್ಟರ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ; ip daddr @y drop } }
  • ಸೆಟ್ ಪಟ್ಟಿಗಳಲ್ಲಿ ಸ್ಥಿರಾಂಕಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಗಮ್ಯಸ್ಥಾನದ ವಿಳಾಸ ಮತ್ತು VLAN ID ಅನ್ನು ಪಟ್ಟಿ ಕೀಲಿಯಾಗಿ ಬಳಸುವಾಗ, ನೀವು ನೇರವಾಗಿ VLAN ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು (daddr . 123): ಟೇಬಲ್ netdev t {set s { typeof ether saddr . vlan id ಗಾತ್ರ 2048 ಫ್ಲ್ಯಾಗ್‌ಗಳು ಡೈನಾಮಿಕ್, ಟೈಮ್‌ಔಟ್ ಟೈಮ್‌ಔಟ್ 1m } ಚೈನ್ ಸಿ {ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಪ್ರವೇಶ ಸಾಧನ eth0 ಆದ್ಯತೆ 0; ನೀತಿ ಸ್ವೀಕರಿಸಿ; ಈಥರ್ ಪ್ರಕಾರ != 8021q ನವೀಕರಣ @s { ಈಥರ್ ಡ್ಯಾಡ್ರ್ . 123 } ಕೌಂಟರ್ } }
  • ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ಬೇಷರತ್ತಾಗಿ ಅಳಿಸಲು ಹೊಸ "ನಾಶ" ಆಜ್ಞೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಅಳಿಸುವಿಕೆಯ ಆದೇಶದಂತೆ, ಕಾಣೆಯಾದ ವಸ್ತುವನ್ನು ಅಳಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ ಅದು ENOENT ಅನ್ನು ರಚಿಸುವುದಿಲ್ಲ). ಕೆಲಸ ಮಾಡಲು ಕನಿಷ್ಠ Linux ಕರ್ನಲ್ 6.3-rc ಅಗತ್ಯವಿದೆ. ಟೇಬಲ್ ಐಪಿ ಫಿಲ್ಟರ್ ಅನ್ನು ನಾಶಮಾಡಿ

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ