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

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

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

ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • ಸೇರ್ಪಡೆಗಳಲ್ಲಿನ ಶ್ರೇಣಿಗಳಿಗೆ ಬೆಂಬಲ (ಸಂಘಟನೆ, ವಿಳಾಸಗಳ ಕೆಲವು ಬೈಂಡಿಂಗ್‌ಗಳು ಮತ್ತು ಹೊಂದಾಣಿಕೆಯನ್ನು ಸರಳಗೊಳಿಸುವ ಪೋರ್ಟ್‌ಗಳು). ಉದಾಹರಣೆಗೆ, ಲಗತ್ತಿಸಲಾದ ಅಂಶಗಳನ್ನು ಹೊಂದಿರುವ "ಶ್ವೇತಪಟ್ಟಿ" ಸೆಟ್‌ಗಾಗಿ, "ಮಧ್ಯಂತರ" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದರಿಂದ ಸೆಟ್ ಲಗತ್ತಿನಲ್ಲಿ ಶ್ರೇಣಿಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ ("ipv4_addr . ipv4_addr . inet_service" ಲಗತ್ತಿಗೆ ಈ ಹಿಂದೆ ನಿಖರವಾಗಿ ಪಟ್ಟಿ ಮಾಡಲು ಸಾಧ್ಯವಾಯಿತು "192.168.10.35. 192.68.11.123" ನಂತಹ ಹೊಂದಾಣಿಕೆಗಳು, ಮತ್ತು ಈಗ ನೀವು ವಿಳಾಸಗಳ ಗುಂಪುಗಳನ್ನು "80-192.168.10.35-192.168.10.40):192.68.11.123

    ಟೇಬಲ್ ಐಪಿ ಫೂ {
    ಶ್ವೇತಪಟ್ಟಿ ಹೊಂದಿಸಿ {
    ipv4_addr ಎಂದು ಟೈಪ್ ಮಾಡಿ. ipv4_addr inet_service
    ಧ್ವಜಗಳ ಮಧ್ಯಂತರ
    ಅಂಶಗಳು = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125 80}
    }

    ಚೈನ್ ಬಾರ್ {
    ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಪ್ರಿರೂಟಿಂಗ್ ಆದ್ಯತೆಯ ಫಿಲ್ಟರ್; ನೀತಿ ಡ್ರಾಪ್;
    ip saddr. ಐಪಿ ತಂದೆ. tcp dport@whitelist ಸ್ವೀಕರಿಸಿ
    }
    }

  • ಸೆಟ್‌ಗಳು ಮತ್ತು ನಕ್ಷೆ-ಪಟ್ಟಿಗಳಲ್ಲಿ, "ಟೈಪ್" ನಿರ್ದೇಶನವನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಿದೆ, ಇದು ಮ್ಯಾಪಿಂಗ್ ಮಾಡುವಾಗ ಅಂಶದ ಸ್ವರೂಪವನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
    ಉದಾಹರಣೆಗೆ:

    ಟೇಬಲ್ ಐಪಿ ಫೂ {
    ಶ್ವೇತಪಟ್ಟಿ ಹೊಂದಿಸಿ {
    ಐಪಿ ಸ್ಯಾಡ್ಆರ್ ಪ್ರಕಾರ
    ಅಂಶಗಳು = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    ಚೈನ್ ಬಾರ್ {
    ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಪ್ರಿರೂಟಿಂಗ್ ಆದ್ಯತೆಯ ಫಿಲ್ಟರ್; ನೀತಿ ಡ್ರಾಪ್;
    ip daddr @ ಶ್ವೇತಪಟ್ಟಿ ಸ್ವೀಕರಿಸಿ
    }
    }

    ಟೇಬಲ್ ಐಪಿ ಫೂ {
    ನಕ್ಷೆ addr2mark {
    ಐಪಿ ಸ್ಯಾಡ್‌ಆರ್ ಪ್ರಕಾರ: ಮೆಟಾ ಮಾರ್ಕ್
    ಅಂಶಗಳು = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • NAT ಬೈಂಡಿಂಗ್‌ಗಳಲ್ಲಿ ಲಗತ್ತುಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ನಕ್ಷೆ ಪಟ್ಟಿಗಳು ಅಥವಾ ಹೆಸರಿನ ಸೆಟ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ NAT ಅನುವಾದಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವಾಗ ವಿಳಾಸ ಮತ್ತು ಪೋರ್ಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:

    nft ಆಡ್ ರೂಲ್ ip nat pre dnat ip addr. ಪೋರ್ಟ್ ಟು ip saddr ನಕ್ಷೆ { 1.1.1.1 : 2.2.2.2 . ಮೂವತ್ತು }

    nft ನಕ್ಷೆಯನ್ನು ಸೇರಿಸಿ ip ನ್ಯಾಟ್ ಗಮ್ಯಸ್ಥಾನಗಳು {ಟೈಪ್ ipv4_addr . inet_service: ipv4_addr. inet_service\\; }
    nft ಆಡ್ ರೂಲ್ ip nat pre dnat ip addr. ಐಪಿ ಸ್ಯಾಡ್‌ಆರ್‌ಗೆ ಬಂದರು. tcp dport ನಕ್ಷೆ @ಗಮ್ಯಸ್ಥಾನಗಳು

  • ನೆಟ್ವರ್ಕ್ ಕಾರ್ಡ್ನ ಭುಜಗಳ ಮೇಲೆ ಕೆಲವು ಫಿಲ್ಟರಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದರೊಂದಿಗೆ ಹಾರ್ಡ್ವೇರ್ ವೇಗವರ್ಧನೆಗೆ ಬೆಂಬಲ. ಎಥೂಲ್ ಉಪಯುಕ್ತತೆಯ ಮೂಲಕ ವೇಗವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ ("ethtool -K eth0 hw-tc-offload on"), ಅದರ ನಂತರ "ಆಫ್‌ಲೋಡ್" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಮುಖ್ಯ ಸರಪಳಿಗಾಗಿ nftables ನಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. Linux 5.6 ಕರ್ನಲ್ ಅನ್ನು ಬಳಸುವಾಗ, ಹೆಡರ್ ಫೀಲ್ಡ್ ಮ್ಯಾಚಿಂಗ್ ಮತ್ತು ಒಳಬರುವ ಇಂಟರ್ಫೇಸ್ ತಪಾಸಣೆಗಾಗಿ ಹಾರ್ಡ್‌ವೇರ್ ವೇಗವರ್ಧನೆಯು ಬೆಂಬಲಿತವಾಗಿದೆ, ಜೊತೆಗೆ ಸ್ವೀಕರಿಸುವುದು, ಬಿಡುವುದು, ನಕಲು ಮಾಡುವುದು (ಡಪ್), ಮತ್ತು ಫಾರ್ವರ್ಡ್ ಮಾಡುವ (fwd) ಪ್ಯಾಕೆಟ್‌ಗಳು. ಕೆಳಗಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, 192.168.30.20 ವಿಳಾಸದಿಂದ ಬರುವ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಬೀಳಿಸುವ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಕರ್ನಲ್‌ಗೆ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ರವಾನಿಸದೆ, ನೆಟ್‌ವರ್ಕ್ ಕಾರ್ಡ್ ಮಟ್ಟದಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ:

    # cat file.nft
    ಟೇಬಲ್ netdev x {
    ಚೈನ್ y {
    ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಪ್ರವೇಶ ಸಾಧನ eth0 ಆದ್ಯತೆ 10; ಧ್ವಜಗಳು ಆಫ್ಲೋಡ್;
    ip saddr 192.168.30.20 ಡ್ರಾಪ್
    }
    }
    # nft -f file.nft

  • ನಿಯಮಗಳಲ್ಲಿನ ದೋಷದ ಸ್ಥಳದ ಬಗ್ಗೆ ಸುಧಾರಿತ ಮಾಹಿತಿ.

    # nft ಅಳಿಸಿ ನಿಯಮ ip yz ಹ್ಯಾಂಡಲ್ 7
    ದೋಷ: ನಿಯಮವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ: ಅಂತಹ ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿ ಇಲ್ಲ
    IP yz ಹ್ಯಾಂಡಲ್ 7 ನಿಯಮವನ್ನು ಅಳಿಸಿ
    ^

    # nft ಅಳಿಸಿ ನಿಯಮ ip xx ಹ್ಯಾಂಡಲ್ 7
    ದೋಷ: ನಿಯಮವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ: ಅಂತಹ ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿ ಇಲ್ಲ
    ಐಪಿ xx ಹ್ಯಾಂಡಲ್ 7 ಅನ್ನು ಅಳಿಸಿ
    ^

    # nft ಟೇಬಲ್ twst ಅನ್ನು ಅಳಿಸಿ
    ದೋಷ: ಅಂತಹ ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿ ಇಲ್ಲ; ಫ್ಯಾಮಿಲಿ ಐಪಿಯಲ್ಲಿ ಟೇಬಲ್ 'ಪರೀಕ್ಷೆ' ಎಂದರ್ಥವೇ?
    ಟೇಬಲ್ ಟ್ವಿಸ್ಟ್ ಅನ್ನು ಅಳಿಸಿ
    ^^^^

    ಮೊದಲ ಉದಾಹರಣೆಯು ಸಿಸ್ಟಂನಲ್ಲಿ ಟೇಬಲ್ 'y' ಇಲ್ಲ ಎಂದು ತೋರಿಸುತ್ತದೆ, ಎರಡನೆಯದು '7' ಹ್ಯಾಂಡ್ಲರ್ ಕಾಣೆಯಾಗಿದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ಮೂರನೆಯದು ಟೇಬಲ್ ಹೆಸರನ್ನು ಟೈಪ್ ಮಾಡುವಾಗ ಮುದ್ರಣದೋಷದ ಸುಳಿವು ತೋರಿಸುತ್ತದೆ.

  • "meta sdif" ಅಥವಾ "meta sdifname" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಸ್ಲೇವ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ:

    … ಮೆಟಾ sdifname vrf1…

  • ಶಿಫ್ಟ್ ಬಲ ಅಥವಾ ಎಡ ಕಾರ್ಯಾಚರಣೆಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ಯಾಕೆಟ್ ಲೇಬಲ್ ಅನ್ನು 1 ಬಿಟ್‌ನಿಂದ ಎಡಕ್ಕೆ ವರ್ಗಾಯಿಸಲು ಮತ್ತು ಕೆಳಗಿನ ಬಿಟ್ ಅನ್ನು 1 ಗೆ ಹೊಂದಿಸಿ:

    … ಮೆಟಾ ಮಾರ್ಕ್ ಸೆಟ್ ಮೆಟಾ ಮಾರ್ಕ್ lshift 1 ಅಥವಾ 0x1 …

  • ವಿಸ್ತೃತ ಆವೃತ್ತಿಯ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು "-V" ಆಯ್ಕೆಯನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.

    #ಎನ್ಎಫ್ಟಿ -ವಿ
    nftables v0.9.4 (ಜೈವ್ ಅಟ್ ಫೈವ್)
    cli:ರೀಡ್‌ಲೈನ್
    json: ಹೌದು
    minigmp:ಸಂ
    libxtables: ಹೌದು

  • ಕಮಾಂಡ್ ಲೈನ್ ಆಯ್ಕೆಗಳನ್ನು ಈಗ ಆಜ್ಞೆಗಳ ಮೊದಲು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ಉದಾಹರಣೆಗೆ, ನೀವು "nft -a list ruleset" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು ಮತ್ತು "nft list ruleset -a" ಅನ್ನು ಚಲಾಯಿಸುವುದರಿಂದ ದೋಷ ಉಂಟಾಗುತ್ತದೆ.

    ಮೂಲ: opennet.ru

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