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

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

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

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

  • IPsec рд╕рдорд░реНрдерди, рдкреИрдХреЗрдЯ, IPsec рдЕрдиреБрд░реЛрдз рдЖрдИрдбреА рдФрд░ SPI (рд╕реБрд░рдХреНрд╖рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕) рдЯреИрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реБрд░рдВрдЧ рдкрддреЗ рдХреЗ рдорд┐рд▓рд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,

    ...рдЖрдИрдкреАрдПрд╕рдИрд╕реА рдЖрдИрдкреА рдПрд╕рдбреАрдЖрд░ 192.168.1.0/24 рдореЗрдВ
    ...рдЖрдИрдкреАрдПрд╕рдИрд╕реА рдПрд╕рдкреАрдЖрдИ 1-65536 рдореЗрдВ

    рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рдорд╛рд░реНрдЧ IPsec рд╕реБрд░рдВрдЧ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ IPSec рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

    ... рдлрд╝рд┐рд▓реНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдЖрд░рдЯреА рдЖрдИрдкреАрдПрд╕рд╕реА рдЧрд╛рдпрдм рдбреНрд░реЙрдк

  • рдЖрдИрдЬреАрдПрдордкреА (рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рдореВрд╣ рдкреНрд░рдмрдВрдзрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЖрдИрдЬреАрдПрдордкреА рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

    рдПрдирдПрдлрдЯреА рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ рдиреЗрдЯрджреЗрд╡ рдлреВ рдмрд╛рд░ рдЖрдИрдЬреАрдПрдордкреА рдкреНрд░рдХрд╛рд░ рд╕рджрд╕реНрдпрддрд╛-рдХреНрд╡реЗрд░реА рдХрд╛рдЙрдВрдЯрд░ рдбреНрд░реЙрдк

  • рд╕рдВрдХреНрд░рдордг рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ (рдХреВрдж/рдЧреЛрдЯреЛ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    рдирд┐рдпрддрд┐ = рдмреЗрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
    рдирд┐рдпрдо рдЖрдИрдкреА рдлреВ рдмрд╛рд░ рдЬрдореНрдк $dest рдЬреЛрдбрд╝реЗрдВ

  • рд╣реЗрдбрд░ рдореЗрдВ рдЯреАрдЯреАрдПрд▓ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдУрдПрд╕ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ) рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рдХрд╛ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЗрд╖рдХ рдУрдПрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреИрдХреЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    ... рдореЗрдЯрд╛ рдорд╛рд░реНрдХ рд╕реЗрдЯ рдУрдПрд╕рдПрдл рдЯреАрдЯреАрдПрд▓ рд╕реНрдХрд┐рдк рдиреЗрдо рдореИрдк { "рд▓рд┐рдирдХреНрд╕" : 0x1,
    "рд╡рд┐рдВрдбреЛрдЬрд╝": 0x2,
    "рдореИрдХрдУрдПрд╕": 0x3,
    "рдЕрдЬреНрдЮрд╛рдд" : 0x0 }
    ...рдУрдПрд╕рдПрдл рдЯреАрдЯреАрдПрд▓ рд╕реНрдХрд┐рдк рд╕рдВрд╕реНрдХрд░рдг "рд▓рд┐рдирдХреНрд╕:4.20"

  • рдкреНрд░реЗрд╖рдХ рдХреЗ ARP рдкрддреЗ рдФрд░ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ IPv4 рдкрддреЗ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрддреЗ 192.168.2.1 рд╕реЗ рднреЗрдЬреЗ рдЧрдП ARP рдкреИрдХреЗрдЯ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    рдЯреЗрдмрд▓ рдПрдЖрд░рдкреА рдПрдХреНрд╕ {
    рд╢реНрд░реГрдВрдЦрд▓рд╛ рдп {
    рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдЯрд╛рдЗрдк рдХрд░реЗрдВ; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ;
    рдПрдЖрд░рдкреА рд╕реИрдбреНрд░ рдЖрдИрдкреА 192.168.2.1 рдХрд╛рдЙрдВрдЯрд░ рдкреИрдХреЗрдЯ 1 рдмрд╛рдЗрдЯреНрд╕ 46
    }
    }

  • рдкреНрд░реЙрдХреНрд╕реА (tproxy) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд░реНрдЯ 80 рдкрд░ рдХреЙрд▓ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдкреЛрд░реНрдЯ 8080 рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

    рдЯреЗрдмрд▓ рдЖрдИрдкреА рдПрдХреНрд╕ {
    рд╢реНрд░реГрдВрдЦрд▓рд╛ рдп {
    рдЯрд╛рдЗрдк рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ -150; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ;
    рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ 80 рдЯреАрдкреНрд░реЙрдХреНрд╕реА рд╕реЗ :8080
    }
    }

  • SO_MARK рдореЛрдб рдореЗрдВ setockopt() рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдорд╛рд░реНрдХ рдХреЛ рдЖрдЧреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╕реЙрдХреЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    рддрд╛рд▓рд┐рдХрд╛ inet x {
    рд╢реНрд░реГрдВрдЦрд▓рд╛ рдп {
    рдЯрд╛рдЗрдк рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ -150; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ;
    рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ 8080 рдорд╛рд░реНрдХ рд╕реЗрдЯ рд╕реЙрдХреЗрдЯ рдорд╛рд░реНрдХ
    }
    }

  • рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд╛рда рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    рдПрдирдПрдлрдЯреА рдРрдб рдЪреЗрди рдЖрдИрдкреА рдПрдХреНрд╕ рд░реЙ {рдЯрд╛рдЗрдк рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд░реЙ; }
    рдПрдирдПрдлрдЯреА рдРрдб рдЪреЗрди рдЖрдИрдкреА рдПрдХреНрд╕ рдлрд┐рд▓реНрдЯрд░ {рдЯрд╛рдЗрдк рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд┐рд▓реНрдЯрд░; }
    рдПрдирдПрдлрдЯреА рдРрдб рдЪреЗрди рдЖрдИрдкреА рдПрдХреНрд╕ рдлрд┐рд▓реНрдЯрд░_рд▓реЗрдЯрд░ { рдЯрд╛рдЗрдк рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд┐рд▓реНрдЯрд░ + 10; }

  • SELinux рдЯреИрдЧ (рд╕реЗрдХрдорд╛рд░реНрдХ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SELinux рд╕рдВрджрд░реНрдн рдореЗрдВ "sshtag" рдЯреИрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

    nft рдореЗрдВ secmark inet рдлрд╝рд┐рд▓реНрдЯрд░ sshtag рдЬреЛрдбрд╝реЗрдВ "system_u:object_r:ssh_server_packet_t:s0"

    рдФрд░ рдлрд┐рд░ рдирд┐рдпрдореЛрдВ рдореЗрдВ рдЗрд╕ рд▓реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

    рдПрдирдПрдлрдЯреА рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ рдЖрдИрдиреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдЗрдирдкреБрдЯ рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ 22 рдореЗрдЯрд╛ рд╕реЗрдХрдорд╛рд░реНрдХ рд╕реЗрдЯ "рдПрд╕рдПрд╕рдПрдЪрдЯреАрдПрдЬреА"

    nft рдореИрдк рдЬреЛрдбрд╝реЗрдВ inet рдлрд╝рд┐рд▓реНрдЯрд░ secmapping { рдкреНрд░рдХрд╛рд░ inet_service : secmark; }
    nft рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ inet рдлрд╝рд┐рд▓реНрдЯрд░ secmapping { 22 : "sshtag" }
    рдПрдирдПрдлрдЯреА рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ рдЗрдиреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рдЗрдирдкреБрдЯ рдореЗрдЯрд╛ рд╕реЗрдХрдорд╛рд░реНрдХ рд╕реЗрдЯ рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ рдореИрдк @рд╕реЗрдХрдореИрдкрд┐рдВрдЧ

  • рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ /etc/services рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    рдПрдирдПрдлрдЯреА рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ xy рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ "рдПрд╕рдПрд╕рдПрдЪ"
    рдПрдирдПрдлрдЯреА рд╕реВрдЪреА рдирд┐рдпрдо-рдПрд▓
    рддрд╛рд▓рд┐рдХрд╛ x {
    рд╢реНрд░реГрдВрдЦрд▓рд╛ рдп {
    ...
    рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ "рдПрд╕рдПрд╕рдПрдЪ"
    }
    }

  • рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ inet рд░реЙ рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ рдореЗрдЯрд╛ iifkind "vrf" рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ

  • "рдЧрддрд┐рд╢реАрд▓" рдзреНрд╡рдЬ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╕реЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдкрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ "рдПрд╕" рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рдпрджрд┐ 30 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреИрдХреЗрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛:

    рддрд╛рд▓рд┐рдХрд╛ x рдЬреЛрдбрд╝реЗрдВ
    рд╕реЗрдЯ xs рдЬреЛрдбрд╝реЗрдВ { рдкреНрд░рдХрд╛рд░ ipv4_addr; рдЖрдХрд╛рд░ 128; рдЯрд╛рдЗрдордЖрдЙрдЯ 30s; рдЭрдВрдбреЗ рдЧрддрд┐рд╢реАрд▓; }
    рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬреЛрдбрд╝реЗрдВ xy { рдкреНрд░рдХрд╛рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реБрдХ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 0; }
    рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ xy рдЕрдкрдбреЗрдЯ @s { ip saddr }

  • рдПрдХ рдЕрд▓рдЧ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╢рд░реНрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд░реНрдЯ 8888 рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    рдЯреЗрдмрд▓ рдЖрдИрдкреА рдлрд╝рд┐рд▓реНрдЯрд░ {
    рд╕реАрдЯреА рдЯрд╛рдЗрдордЖрдЙрдЯ рдЖрдХреНрд░рд╛рдордХ-рдЯреАрд╕реАрдкреА {
    рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЯреАрд╕реАрдкреА;
    рдПрд▓3рдкреНрд░реЛрдЯреЛ рдЖрдИрдкреА;
    рдиреАрддрд┐ = {рд╕реНрдерд╛рдкрд┐рдд: 100, рдХреНрд▓реЛрдЬрд╝_рд╡реЗрдЯ: 4, рдХреНрд▓реЛрдЬрд╝: 4}
    }
    рдЪреЗрди рдЖрдЙрдЯрдкреБрдЯ {
    ...
    рдЯреАрд╕реАрдкреА рдбреАрдкреЛрд░реНрдЯ 8888 рд╕реАрдЯреА рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ "рдЖрдХреНрд░рд╛рдордХ-рдЯреАрд╕реАрдкреА"
    }
    }

  • рдЗрдирд╕реЗрдЯ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП NAT рд╕рдорд░реНрдерди:

    рдЯреЗрдмрд▓ рдЗрдиреИрдЯ рдиреЗрдЯ {
    ...
    рдЖрдИрдкреА6 рдбреИрдбреНрд░ рдбреЗрдб::2::1 рдбреАрдПрдирдПрдЯ рд╕реЗ рдбреЗрдб:2::99
    }

  • рдмреЗрд╣рддрд░ рдЯрд╛рдЗрдкреЛ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ:

    рдПрдирдПрдлрдЯреА рдРрдб рдЪреЗрди рдлрд┐рд▓реНрдЯрд░ рдЯреЗрд╕реНрдЯ

    рддреНрд░реБрдЯрд┐: рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ; рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдкрд╛рд░рд┐рд╡рд╛рд░рд┐рдХ рдЖрдИрдкреА рдореЗрдВ рдЯреЗрдмрд▓ "рдлрд╝рд┐рд▓реНрдЯрд░" рд╕реЗ рдерд╛?
    рдЪреЗрди рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВ
    ^^^^^^

  • рд╕реЗрдЯ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛:

    рдПрд╕рд╕реА рд╕реЗрдЯ рдХрд░реЗрдВ {
    inet_service рдЯрд╛рдЗрдк рдХрд░реЗрдВред ifname
    рддрддреНрд╡ = { "рдПрд╕рдПрд╕рдПрдЪ"ред "eth0" }
    }

  • рдЕрджреНрдпрддрди рдкреНрд░рд╡рд╛рд╣ рдпреЛрдЧреНрдп рдирд┐рдпрдо рд╕рд┐рдВрдЯреИрдХреНрд╕:

    nft рддрд╛рд▓рд┐рдХрд╛ x рдЬреЛрдбрд╝реЗрдВ
    рдПрдирдПрдлрдЯреА рдлреНрд▓реЛрдЯреЗрдмрд▓ рдПрдХреНрд╕ рдлреАрдЯ рдЬреЛрдбрд╝реЗрдВ { рд╣реБрдХ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 0; рдбрд┐рд╡рд╛рдЗрд╕ = { eth0, wlan0 }; }
    ...
    рдПрдирдПрдлрдЯреА рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ рдПрдХреНрд╕ рдлреЙрд░рд╡рд░реНрдб рдЖрдИрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ { рдЯреАрд╕реАрдкреА, рдпреВрдбреАрдкреА } рдкреНрд░рд╡рд╛рд╣ @ рдлреАрдЯ рдЬреЛрдбрд╝реЗрдВ

  • рдмреЗрд╣рддрд░ JSON рд╕рдорд░реНрдерди.

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

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