nftables рдкреИрдХреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ 0.9.3 рд░рд┐рд▓реАрдЬрд╝

рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреИрдХреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рд░рд┐рд▓реАрдЬ рдПрдирдПрдлрдЯреЗрдмрд▓реНрд╕ 0.9.3, IPv6, IPv4, ARP рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд┐рдЬ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдХреЗ iptables, ip6table, arptables рдФрд░ ebtables рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ред nftables рдкреИрдХреЗрдЬ рдореЗрдВ рдкреИрдХреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХрд░реНрдиреЗрд▓-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдп nf_tables рд╕рдмрд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд░рд┐рд▓реАрдЬрд╝ 3.13 рдХреЗ рдмрд╛рдж рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд░рд╣рд╛ рд╣реИред nftables 0.9.3 рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдЖрдЧрд╛рдореА Linux 5.5 рдХрд░реНрдиреЗрд▓ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╕реНрд╡рддрдВрддреНрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреИрдХреЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ, рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдиреЗрдЯрд▓рд┐рдВрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмреАрдкреАрдПрдл (рдмрд░реНрдХрд▓реЗ рдкреИрдХреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░) рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрдо рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдФрд░ рддрд░реНрдХ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░:

  • рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреИрдХреЗрдЯ рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЖрдк рд╕рдордп рдФрд░ рджрд┐рдирд╛рдВрдХ рд╕реАрдорд╛ рджреЛрдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдпрдо рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рдиреЛрдВ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреБрдЧрд╛рдиреНрддрд░ рдХреЛ рд╕реЗрдХрдВрдбреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк "-T" рднреА тАЛтАЛрдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

    рдореЗрдЯрд╛ рдЯрд╛рдЗрдо \"2019-12-24 16:00\" тАФ \"2020-01-02 7:00\"
    рдореЗрдЯрд╛ рдШрдВрдЯрд╛ \"17:00\" - "19:00\"
    рдореЗрдЯрд╛ рджрд┐рд╡рд╕ "рд╢реБрдХреНрд░рд╡рд╛рд░"

  • SELinux рдорд╛рд░реНрдХреНрд╕ (рд╕реЗрдХрдорд╛рд░реНрдХ) рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

    рд╕реАрдЯреА рд╕реЗрдХрдорд╛рд░реНрдХ рд╕реЗрдЯ рдореЗрдЯрд╛ рд╕реЗрдХрдорд╛рд░реНрдХ
    рдореЗрдЯрд╛ рд╕реЗрдХрдорд╛рд░реНрдХ рд╕реЗрдЯ рд╕реАрдЯреА рд╕реЗрдХрдорд╛рд░реНрдХ

  • рд╕рд┐рдирдкреНрд░реЙрдХреНрд╕реА рдорд╛рдирдЪрд┐рддреНрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рдмреИрдХрдПрдВрдб рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рдпрдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

    рдЯреЗрдмрд▓ рдЖрдИрдкреА рдлреВ {
    рд╕рд┐рдирдкреНрд░реЙрдХреНрд╕реА https-рд╕рд┐рдВрдкреНрд░реЙрдХреНрд╕реА {
    рдПрдордПрд╕ 1460
    рдбрдмреНрд▓реНрдпреВрд╕реНрдХреЗрд▓ 7
    рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдмреЛрд░реА-рдкрд░реНрдо
    }

    рд╕рд┐рдирдкреНрд░реЙрдХреНрд╕реА рдЕрдиреНрдп-рд╕рд┐рдирдкреНрд░реЙрдХреНрд╕реА {
    рдПрдордПрд╕ 1460
    рдбрдмреНрд▓реНрдпреВрд╕реНрдХреЗрд▓ 5
    }

    рдЪреЗрди рдкреНрд░реА {
    рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрдЪреНрдЪрд╛ рдЯрд╛рдЗрдк рдХрд░реЗрдВ; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ;
    рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ 8888 рдЯреАрд╕реАрдкреА рдлрд╝реНрд▓реИрдЧреНрд╕ рд╕рд┐рди рдиреЙрдЯреНрд░реИрдХ
    }

    рдЪреЗрди рдмрд╛рд░ {
    рдЯрд╛рдЗрдк рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдлреЙрд░рд╡рд░реНрдб рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд╝рд┐рд▓реНрдЯрд░; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ;
    рд╕реАрдЯреА рд╕реНрдерд┐рддрд┐ рдЕрдорд╛рдиреНрдп, рдЯреНрд░реИрдХ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд┐рдВрдкреНрд░реЙрдХреНрд╕реА рдирд╛рдо рдЖрдИрдкреА рд╕реИрдбрд░ рдореИрдк { 192.168.1.0/24 : тАЬhttps-synproxyтАЭ, 192.168.2.0/24 : тАЬрдЕрдиреНрдп-рд╕рд┐рдирдкреНрд░реЙрдХреНрд╕реАтАЭ }
    }
    }

  • рдкреИрдХреЗрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдореЛрдВ рд╕реЗ рд╕реЗрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

    рдПрдирдПрдлрдЯреА рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ...@set5 рд╣рдЯрд╛рдПрдВ {рдЖрдИрдкреА6 рд╕реИрдбрд░ред рдЖрдИрдкреА6 рджрд╛рджрд░}

  • рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд┐рдЬ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрдИрдбреА рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рд╡реАрдПрд▓рдПрдПрди рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;

    рдореЗрдЯрд╛ рдЖрдИрдмреАрдЖрд░рдкреАрд╡реАрдЖрдИрдбреА тАЛтАЛ100
    рдореЗрдЯрд╛ рдЖрдИрдмреАрдЖрд░рд╡реАрдкреНрд░реЛрдЯреЛ рд╡реАрдПрд▓рдПрдПрди

  • рдирд┐рдпрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реЗрдЯ рд╕реЗрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк "-t" ("--terse")ред "nft -t рд╕реВрдЪреА рдирд┐рдпрдорд╕реЗрдЯ" рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓реЗрдЧрд╛:

    рдЯреЗрдмрд▓ рдЖрдИрдкреА рдПрдХреНрд╕ {
    рд╕реЗрдЯ рдп {
    ipv4_addr рдЯрд╛рдЗрдк рдХрд░реЗрдВ
    }
    }

    рдФрд░ тАЬрдПрдирдПрдлрдЯреА рд╕реВрдЪреА рдирд┐рдпрдо рд╕реЗрдЯтАЭ рдХреЗ рд╕рд╛рде

    рдЯреЗрдмрд▓ рдЖрдИрдкреА рдПрдХреНрд╕ {
    рд╕реЗрдЯ рдп {
    ipv4_addr рдЯрд╛рдЗрдк рдХрд░реЗрдВ
    рддрддреНрд╡ = {192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрджреЗрд╡ рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдХреЗрд╡рд▓ рдХрд░реНрдиреЗрд▓ 5.5 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ)ред

    рддрд╛рд▓рд┐рдХрд╛ рдиреЗрдЯрджреЗрд╡ x рдЬреЛрдбрд╝реЗрдВ
    рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬреЛрдбрд╝реЗрдВ рдиреЗрдЯрдбреЗрд╡ xy { \
    рдЯрд╛рдЗрдк рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдЗрдирдЧреНрд░реЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ = { eth0, eth1 } рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 0;
    }

  • рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛.

    # nft ipv4_addr рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
    рдбреЗрдЯрд╛рдЯрд╛рдЗрдк ipv4_addr (IPv4 рдкрддрд╛) (рдмреЗрд╕рдЯрд╛рдЗрдк рдкреВрд░реНрдгрд╛рдВрдХ), 32 рдмрд┐рдЯреНрд╕

  • рд▓рд┐рдмреНрд░реЗрдбрд▓рд╛рдЗрди рдХреЗ рдмрдЬрд╛рдп рд▓рд╛рдЗрдирдиреЛрдЗрдЬрд╝ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

    ./configure --with-cli=linenoise

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ