nftables เจชเฉˆเจ•เฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ 0.9.1 เจฐเฉ€เจฒเฉ€เจœเจผ

เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจพเจฒ เจฌเจพเจ…เจฆ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจชเฉˆเจ•เฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ nftables 0.9.1, IPv6, IPv4, ARP เจ…เจคเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจฌเฉเจฐเจฟเจœเจพเจ‚ เจฒเจˆ เจชเฉˆเจ•เฉ‡เจŸ เจซเจฟเจฒเจŸเจฐเจฟเฉฐเจ— เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธเจพเจ‚ เจจเฉ‚เฉฐ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจ•เจฐเจ•เฉ‡ iptables, ip6table, arptables เจ…เจคเฉ‡ ebtables เจฆเฉ‡ เจฌเจฆเจฒ เจตเจœเฉ‹เจ‚ เจตเจฟเจ•เจธเจค เจ•เจฐเจจเจพเฅค nftables เจชเฉˆเจ•เฉ‡เจœ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ เจญเจพเจ— เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจฏเฉ‚เจœเจผเจฐ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฆเฉ‡ เจนเจจ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจ•เจฐเจจเจฒ-เจชเฉฑเจงเจฐ เจฆเจพ เจ•เฉฐเจฎ nf_tables เจธเจฌ-เจธเจฟเจธเจŸเจฎ เจฆเฉเจ†เจฐเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ 3.13 เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจ•เจฐเจจเจฒ เจชเฉฑเจงเจฐ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ†เจฎ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ-เจธเฉเจคเฉฐเจคเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจ•เฉฑเจขเจฃ, เจกเฉ‡เจŸเจพ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ•เจฐเจจ, เจ…เจคเฉ‡ เจชเฉเจฐเจตเจพเจน เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจฒเจˆ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจซเฉฐเจ•เจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจซเจฟเจฒเจŸเจฐเจฟเฉฐเจ— เจคเจฐเจ• เจ–เฉเจฆ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ-เจตเจฟเจธเจผเฉ‡เจธเจผ เจนเฉˆเจ‚เจกเจฒเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‡เจธ เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจจเฉ‚เฉฐ เจจเฉˆเฉฑเจŸเจฒเจฟเฉฐเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ BPF (เจฌเจฐเจ•เจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ) เจฆเฉ€ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‰เจ‚เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจชเจนเฉเฉฐเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจซเจฟเจฒเจŸเจฐเจฟเฉฐเจ— เจ•เฉ‹เจก เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจคเฉŒเจฐ 'เจคเฉ‡ เจ˜เจŸเจพเจ‰เจฃ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจชเจพเจฐเจธเจฟเฉฐเจ— เจจเจฟเจฏเจฎเจพเจ‚ เจ…เจคเฉ‡ เจคเจฐเจ• เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจฒเจฟเจœเจพเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจฎเฉเฉฑเจ– เจจเจตเฉ€เจจเจคเจพเจตเจพเจ‚:

  • IPsec เจธเจฎเจฐเจฅเจจ, เจชเฉˆเจ•เฉ‡เจŸ, IPsec เจฌเฉ‡เจจเจคเฉ€ ID, เจ…เจคเฉ‡ SPI (เจธเฉเจฐเฉฑเจ–เจฟเจ† เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจธเฉ‚เจšเจ•เจพเจ‚เจ•) เจŸเฉˆเจ— เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจธเฉเจฐเฉฐเจ— เจชเจคเจฟเจ†เจ‚ เจฆเฉ‡ เจฎเฉ‡เจฒ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ,

    ... เจ†เจˆเจชเฉ€ เจธเจฆเจฐ 192.168.1.0/24 เจตเจฟเฉฑเจš ipsec
    ... ipsec in spi 1-65536

    เจ‡เจน เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจตเฉ€ เจธเฉฐเจญเจต เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจ•เฉ‹เจˆ เจฐเจธเจคเจพ IPsec เจธเฉเจฐเฉฐเจ— เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฆเจพ เจนเฉˆ เจœเจพเจ‚ เจจเจนเฉ€เจ‚เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฃ เจฒเจˆ IPSec เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚:

    โ€ฆ เจซเจฟเจฒเจŸเจฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ rt ipsec เจ—เฉเฉฐเจฎ เจฌเฉ‚เฉฐเจฆ

  • IGMP (เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจ—เจฐเฉเฉฑเจช เจฎเฉˆเจจเฉ‡เจœเจฎเฉˆเจ‚เจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ) เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ IGMP เจธเจฎเฉ‚เจน เจฎเฉˆเจ‚เจฌเจฐเจธเจผเจฟเจช เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฐเฉฑเจฆ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹

    nft เจจเจฟเจฏเจฎ เจœเฉ‹เฉœเฉ‹ netdev foo เจฌเจพเจฐ igmp เจ•เจฟเจธเจฎ เจฎเฉˆเจ‚เจฌเจฐเจธเจผเจฟเจช-เจ•เจตเฉ‡เจฐเฉ€ เจ•เจพเจŠเจ‚เจŸเจฐ เจกเจฐเจพเจช

  • เจชเจฐเจฟเจตเจฐเจคเจจ เจšเฉ‡เจจเจพเจ‚ (เจœเฉฐเจช / เจ—เฉ‹เจŸเฉ‹) เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ:

    dest = ber เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเฉ‹
    เจจเจฟเจฏเจฎ ip foo เจฌเจพเจฐ เจœเฉฐเจช $dest เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

  • เจธเจฟเจฐเจฒเฉ‡เจ– เจตเจฟเฉฑเจš TTL เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ (OS เจซเจฟเฉฐเจ—เจฐเจชเฉเจฐเจฟเฉฐเจŸ) เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเจจ เจฒเจˆ เจฎเจพเจธเจ• เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจญเฉ‡เจœเจฃ เจตเจพเจฒเฉ‡ OS เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจฐเจ• เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

    ... เจฎเฉˆเจŸเจพ เจฎเจพเจฐเจ• เจธเฉˆเฉฑเจŸ osf ttl เจ›เฉฑเจกเฉ‹ เจจเจพเจฎ เจจเจ•เจธเจผเจพ { "เจฒเฉ€เจจเจ•เจธ" : 0x1,
    "เจตเจฟเฉฐเจกเฉ‹เจœเจผ": 0x2,
    "MacOS": 0x3,
    "เจ…เจฃเจœเจพเจฃ" : 0x0 }
    ... osf ttl เจ›เฉฑเจกเฉ‹ เจตเจฐเจœเจจ "เจฒเฉ€เจจเจ•เจธ: 4.20"

  • เจญเฉ‡เจœเจฃ เจตเจพเจฒเฉ‡ เจฆเฉ‡ เจเจ†เจฐเจชเฉ€ เจชเจคเฉ‡ เจ…เจคเฉ‡ เจŸเจพเจฐเจ—เฉ‡เจŸ เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ IPv4 เจชเจคเฉ‡ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, 192.168.2.1 เจชเจคเฉ‡ เจคเฉ‹เจ‚ เจญเฉ‡เจœเฉ‡ เจ—เจ ARP เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ‡ เจ•เจพเจŠเจ‚เจŸเจฐ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจจเจฟเจฏเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

    เจธเจพเจฐเจฃเฉ€ arp x {
    เจšเฉ‡เจจ y {
    เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• เจ‡เฉฐเจชเฉเฉฑเจŸ เจคเจฐเจœเฉ€เจน เจซเจฟเจฒเจŸเจฐ; เจจเฉ€เจคเฉ€ เจธเจตเฉ€เจ•เจพเจฐ;
    เจเจ†เจฐเจชเฉ€ เจธเฉˆเจกเจฐ เจ†เจˆเจชเฉ€ 192.168.2.1 เจ•เจพเจŠเจ‚เจŸเจฐ เจชเฉˆเจ•เฉ‡เจŸ 1 เจฌเจพเจˆเจŸ 46
    }
    }

  • เจชเฉเจฐเฉŒเจ•เจธเฉ€ (tproxy) เจฐเจพเจนเฉ€เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจชเจพเจฐเจฆเจฐเจธเจผเฉ€ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃ เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‹เจฐเจŸ 80 เจคเฉ‹เจ‚ เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจชเฉ‹เจฐเจŸ 8080 'เจคเฉ‡ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ:

    เจธเจพเจฐเจฃเฉ€ ip x {
    เจšเฉ‡เจจ y {
    เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• เจชเฉเจฐเฉ€เจฐเฉ‚เจŸเจฟเฉฐเจ— เจคเจฐเจœเฉ€เจน -150; เจจเฉ€เจคเฉ€ เจธเจตเฉ€เจ•เจพเจฐ;
    tcp dport 80 tproxy to :8080
    }
    }

  • SO_MARK เจฎเฉ‹เจก เจตเจฟเฉฑเจš setsockopt() เจฆเฉเจ†เจฐเจพ เจธเฉˆเฉฑเจŸ เจฎเจพเจฐเจ• เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจตเจพเจฒเฉ‡ เจธเจพเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจฐเจ•เจฟเฉฐเจ— เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ:

    เจŸเฉ‡เจฌเจฒ inet x {
    เจšเฉ‡เจจ y {
    เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• เจชเฉเจฐเฉ€เจฐเฉ‚เจŸเจฟเฉฐเจ— เจคเจฐเจœเฉ€เจน -150; เจจเฉ€เจคเฉ€ เจธเจตเฉ€เจ•เจพเจฐ;
    tcp dport 8080 เจฎเจพเจฐเจ• เจธเฉˆเฉฑเจŸ เจธเจพเจ•เจŸ เจฎเจพเจฐเจ•
    }
    }

  • เจšเฉ‡เจจเจพเจ‚ เจฒเจˆ เจคเจฐเจœเฉ€เจนเฉ€ เจŸเฉˆเจ•เจธเจŸ เจจเจพเจฎ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ:

    nft เจœเฉ‹เฉœเฉ‹ เจšเฉ‡เจจ ip x raw { เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• prerouting priority raw; }
    nft เจšเฉ‡เจจ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ ip x เจซเจฟเจฒเจŸเจฐ { เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• เจชเฉเจฐเฉ€เจฐเฉ‚เจŸเจฟเฉฐเจ— เจคเจฐเจœเฉ€เจน เจซเจฟเจฒเจŸเจฐ; }
    nft เจšเฉ‡เจจ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ ip x filter_later { เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• เจชเฉเจฐเฉ€เจฐเฉ‚เจŸเจฟเฉฐเจ— เจคเจฐเจœเฉ€เจน เจซเจฟเจฒเจŸเจฐ + 10; }

  • SELinux เจŸเฉˆเจ—เจธ (เจธเฉ‡เจ•เจฎเจพเจฐเจ•) เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, SELinux เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš "sshtag" เจŸเฉˆเจ— เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

    nft secmark inet เจซเจฟเจฒเจŸเจฐ sshtag "system_u:object_r:ssh_server_packet_t:s0" เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

    เจ…เจคเฉ‡ เจซเจฟเจฐ เจจเจฟเจฏเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจธ เจฒเฉ‡เจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹:

    nft เจจเจฟเจฏเจฎ เจ‡เจจเฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ เจ‡เจจเจชเฉเจŸ tcp dport 22 เจฎเฉˆเจŸเจพ เจธเฉˆเจ•เจฎเจพเจฐเจ• เจธเฉˆเฉฑเจŸ โ€œsshtagโ€ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

    nft เจฎเฉˆเจช เจ‡เจจเฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ เจธเฉ‡เจ•เจฎเฉˆเจชเจฟเฉฐเจ— เจœเฉ‹เฉœเฉ‹ { เจŸเจพเจˆเจช inet_service : secmark; }
    nft เจเจฒเฉ€เจฎเฉˆเจ‚เจŸ เจ‡เจจเฉ‡เจŸ เจซเจฟเจฒเจŸเจฐ เจธเฉ‡เจ•เจฎเฉˆเจชเจฟเฉฐเจ— เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ {22 : "sshtag" }
    nft เจจเจฟเจฏเจฎ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ inet เจซเจฟเจฒเจŸเจฐ เจ‡เจจเจชเฉเจŸ เจฎเฉˆเจŸเจพ เจธเฉˆเจ•เจฎเจพเจฐเจ• เจธเฉˆเจŸ tcp dport เจจเจ•เจธเจผเจพ @secmapping

  • เจŸเฉˆเจ•เจธเจŸ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจชเฉ‹เจฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ /etc/services เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ:

    nft เจจเจฟเจฏเจฎ xy tcp dport "ssh" เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹
    nft เจธเฉ‚เจšเฉ€ เจจเจฟเจฏเจฎ-เจเจฒ
    เจธเจพเจฐเจฃเฉ€ x {
    เจšเฉ‡เจจ y {
    ...
    tcp dport "ssh"
    }
    }

  • เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ. เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ:

    เจจเจฟเจฏเจฎ inet raw prerouting meta iifkind "vrf" เจธเจตเฉ€เจ•เจพเจฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

  • "เจกเจพเจ‡เจจเจพเจฎเจฟเจ•" เจซเจฒเฉˆเจ— เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจ•เฉ‡ เจธเฉˆเฉฑเจŸเจพเจ‚ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฒเจˆ เจธเฉเจงเจพเจฐเจฟเจ† เจธเจฎเจฐเจฅเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจฐเฉ‹เจค เจชเจคเฉ‡ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจธเฉˆเฉฑเจŸ "s" เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจ…เจคเฉ‡ 30 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจฒเจˆ เจ•เฉ‹เจˆ เจชเฉˆเจ•เฉ‡เจŸ เจจเจพ เจนเฉ‹เจฃ 'เจคเฉ‡ เจเจ‚เจŸเจฐเฉ€ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฐเจจ เจฒเจˆ:

    เจŸเฉ‡เจฌเจฒ x เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹
    เจธเฉˆเฉฑเจŸ xs เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ {เจŸเจพเจˆเจช ipv4_addr; เจ†เจ•เจพเจฐ 128; เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจค 30s; เจเฉฐเจกเฉ‡ เจ—เจคเฉ€เจธเจผเฉ€เจฒ; }
    เจšเฉ‡เจจ xy เจœเฉ‹เฉœเฉ‹ { เจŸเจพเจˆเจช เจซเจฟเจฒเจŸเจฐ เจนเฉเฉฑเจ• เจ‡เฉฐเจชเฉเฉฑเจŸ เจคเจฐเจœเฉ€เจน 0; }
    เจจเจฟเจฏเจฎ xy เจ…เฉฑเจชเจกเฉ‡เจŸ @s { ip saddr } เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

  • เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจคเฉ€ เจธเจฅเจฟเจคเฉ€ เจธเฉˆเจŸ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉ‹เจฐเจŸ 8888 'เจคเฉ‡ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฒเจˆ เจกเจฟเจซเฉŒเจฒเจŸ เจŸเจพเจˆเจฎเจ†เจ‰เจŸ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

    เจŸเฉ‡เจฌเจฒ เจ†เจˆเจชเฉ€ เจซเจฟเจฒเจŸเจฐ {
    ct เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจค เจนเจฎเจฒเจพเจตเจฐ-tcp {
    เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ tcp;
    l3proto ip;
    เจจเฉ€เจคเฉ€ = {เจธเจฅเจพเจชเจฟเจค: 100, เจฌเฉฐเจฆ_เจ‰เจกเฉ€เจ•: 4, เจฌเฉฐเจฆ เจ•เจฐเฉ‹: 4}
    }
    เจšเฉ‡เจจ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ {
    ...
    tcp dport 8888 ct เจŸเจพเจˆเจฎเจ†เจ‰เจŸ เจธเฉˆเฉฑเจŸ "เจ…เจ—เจฐเฉˆเจธเจฟเจต-เจŸเฉ€เจธเฉ€เจชเฉ€"
    }
    }

  • เจ‡เจจเฉ‡เจŸ เจชเจฐเจฟเจตเจพเจฐ เจฒเจˆ NAT เจธเจนเจพเจ‡เจคเจพ:

    เจŸเฉ‡เจฌเจฒ inet nat {
    ...
    ip6 daddr dead::2::1 dnat to dead:2::99
    }

  • เจธเฉเจงเจพเจฐเฉ€ เจนเฉ‹เจˆ เจŸเจพเจˆเจชเฉ‹ เจ—เจฒเจคเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—:

    nft เจšเฉ‡เจจ เจซเจฟเจฒเจŸเจฐ เจŸเฉˆเจธเจŸ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

    เจ—เจฒเจคเฉ€: เจ…เจœเจฟเจนเฉ€ เจ•เฉ‹เจˆ เจซเจพเจˆเจฒ เจœเจพเจ‚ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเจนเฉ€เจ‚; เจ•เฉ€ เจคเฉเจนเจพเจกเจพ เจฎเจคเจฒเจฌ เจซเฉˆเจฎเจฟเจฒเฉ€ เจ†เจˆเจชเฉ€ เจตเจฟเฉฑเจš เจŸเฉ‡เจฌเจฒ "เจซเจฟเจฒเจŸเจฐ" เจนเฉˆ?
    เจšเฉ‡เจจ เจซเจฟเจฒเจŸเจฐ เจŸเฉˆเจธเจŸ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹
    ^^^^^^

  • เจธเฉˆเฉฑเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเจพเจฎ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ:

    เจธเฉˆเฉฑเจŸ sc {
    inet_service เจŸเจพเจˆเจช เจ•เจฐเฉ‹เฅค ifname
    เจคเฉฑเจค = { "ssh" . "eth0" }
    }

  • เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เฉ€เจคเจพ เจซเจฒเฉ‹เจŸเฉ‡เจฌเจฒ เจจเจฟเจฏเจฎ เจธเฉฐเจŸเฉˆเจ•เจธ:

    nft เจŸเฉ‡เจฌเจฒ เจเจ•เจธ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹
    nft เจเจก เจซเจฒเฉ‹เจŸเฉ‡เจฌเจฒ x ft { เจนเฉเฉฑเจ• เจ‡เฉฐเจ—เฉเจฐเฉ‡เจธ เจชเฉเจฐเจพเจฅเจฎเจฟเจ•เจคเจพ 0; เจกเจฟเจตเจพเจˆเจธเจพเจ‚ = {eth0, wlan0 }; }
    ...
    nft เจจเจฟเจฏเจฎ x เจซเจพเจฐเจตเจฐเจก เจ†เจˆเจชเฉ€ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ { tcp, udp } เจซเจฒเฉ‹ เจเจก @ft

  • เจธเฉเจงเจพเจฐเจฟเจ† เจ—เจฟเจ† JSON เจธเจฎเจฐเจฅเจจเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹