nftables பாக்கெட் வடிகட்டி வெளியீடு 0.9.1

ஒரு வருட வளர்ச்சிக்குப் பிறகு வழங்கப்பட்டது பாக்கெட் வடிகட்டி வெளியீடு nftables 0.9.1, IPv6, IPv4, ARP மற்றும் நெட்வொர்க் பிரிட்ஜ்களுக்கான பாக்கெட் வடிகட்டுதல் இடைமுகங்களை ஒன்றிணைப்பதன் மூலம் iptables, ip6table, arptables மற்றும் ebtables ஆகியவற்றிற்கு மாற்றாக உருவாகிறது. nftables தொகுப்பில் பயனர் இடத்தில் இயங்கும் பாக்கெட் வடிகட்டி கூறுகள் உள்ளன, அதே சமயம் கர்னல்-நிலை வேலை nf_tables துணை அமைப்பால் வழங்கப்படுகிறது, இது 3.13 வெளியீட்டில் இருந்து லினக்ஸ் கர்னலின் ஒரு பகுதியாக உள்ளது.

கர்னல் நிலை ஒரு பொதுவான நெறிமுறை-சுயாதீன இடைமுகத்தை மட்டுமே வழங்குகிறது, இது பாக்கெட்டுகளிலிருந்து தரவைப் பிரித்தெடுப்பதற்கும், தரவு செயல்பாடுகளைச் செய்வதற்கும் மற்றும் ஓட்டக் கட்டுப்பாடுக்கும் அடிப்படை செயல்பாடுகளை வழங்குகிறது.
வடிகட்டுதல் தர்க்கம் மற்றும் நெறிமுறை-குறிப்பிட்ட ஹேண்ட்லர்கள் பயனர் இடத்தில் பைட்கோடாக தொகுக்கப்படுகின்றன, அதன் பிறகு இந்த பைட்கோடு நெட்லிங்க் இடைமுகத்தைப் பயன்படுத்தி கர்னலில் ஏற்றப்பட்டு, பிபிஎஃப் (பெர்க்லி பாக்கெட் வடிகட்டிகள்) நினைவூட்டும் சிறப்பு மெய்நிகர் இயந்திரத்தில் செயல்படுத்தப்படுகிறது. இந்த அணுகுமுறை கர்னல் மட்டத்தில் இயங்கும் வடிகட்டுதல் குறியீட்டின் அளவைக் கணிசமாகக் குறைக்கவும், நெறிமுறைகளுடன் பணிபுரியும் நெறிமுறைகளைப் பாகுபடுத்தும் அனைத்து செயல்பாடுகளையும் பயனர் இடத்திற்கு நகர்த்தவும் உங்களை அனுமதிக்கிறது.

முக்கிய கண்டுபிடிப்புகள்:

  • IPsec ஆதரவு, பாக்கெட், IPsec கோரிக்கை ஐடி மற்றும் SPI (பாதுகாப்பு அளவுரு குறியீட்டு) குறிச்சொல்லின் அடிப்படையில் சுரங்கப்பாதை முகவரிகளை பொருத்த அனுமதிக்கிறது. உதாரணத்திற்கு,

    ... ipsec in ip saddr 192.168.1.0/24
    ... ipsec in spi 1-65536

    ஒரு பாதை IPsec சுரங்கப்பாதை வழியாக செல்கிறதா என்பதையும் சரிபார்க்க முடியும். எடுத்துக்காட்டாக, IPSec வழியாக அல்லாமல் போக்குவரத்தைத் தடுக்க:

    … வடிகட்டி வெளியீடு rt ipsec கைவிடப்பட்டது

  • IGMPக்கான ஆதரவு (இன்டர்நெட் குரூப் மேனேஜ்மென்ட் புரோட்டோகால்). எடுத்துக்காட்டாக, உள்வரும் IGMP குழு உறுப்பினர் கோரிக்கைகளை நிராகரிக்க நீங்கள் ஒரு விதியைப் பயன்படுத்தலாம்

    nft சேர் விதி netdev foo bar igmp வகை உறுப்பினர்-வினவல் எதிர் வீழ்ச்சி

  • மாறுதல் சங்கிலிகளை வரையறுக்க மாறிகளைப் பயன்படுத்துவதற்கான சாத்தியம் (ஜம்ப் / கோட்டோ). உதாரணத்திற்கு:

    டெஸ்ட் = பெர் வரையறுக்க
    விதி ip foo bar ஜம்ப் $dest ஐச் சேர்க்கவும்

  • தலைப்பில் உள்ள TTL மதிப்புகளின் அடிப்படையில் இயக்க முறைமைகளை (OS கைரேகை) அடையாளம் காண முகமூடிகளுக்கான ஆதரவு. எடுத்துக்காட்டாக, அனுப்புநர் OS அடிப்படையில் பாக்கெட்டுகளைக் குறிக்க, நீங்கள் கட்டளையைப் பயன்படுத்தலாம்:

    ... meta mark set osf ttl தவிர் பெயர் வரைபடத்தை { "Linux" : 0x1,
    "விண்டோஸ்": 0x2,
    "MacOS": 0x3,
    "தெரியாது" : 0x0}
    ... osf ttl "Linux:4.20" பதிப்பைத் தவிர்க்கவும்

  • அனுப்புநரின் ARP முகவரி மற்றும் இலக்கு அமைப்பின் IPv4 முகவரி ஆகியவற்றைப் பொருத்தும் திறன். எடுத்துக்காட்டாக, 192.168.2.1 முகவரியிலிருந்து அனுப்பப்பட்ட ARP பாக்கெட்டுகளின் கவுண்டரை அதிகரிக்க, நீங்கள் பின்வரும் விதியைப் பயன்படுத்தலாம்:

    அட்டவணை ஆர்ப் x {
    சங்கிலி y {
    வகை வடிகட்டி ஹூக் உள்ளீடு முன்னுரிமை வடிகட்டி; கொள்கை ஏற்றுக்கொள்வது;
    arp saddr ip 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 { type filter hook prerouting priority raw; }
    nft சேர் செயின் ip x வடிகட்டி {வகை வடிகட்டி ஹூக் முன்னோட்டம் முன்னுரிமை வடிகட்டி; }
    nft சேர் செயின் ip x filter_later { type filter hook prerouting priority filter + 10; }

  • SELinux குறிச்சொற்களுக்கான ஆதரவு (Secmark). எடுத்துக்காட்டாக, SELinux சூழலில் "sshtag" குறிச்சொல்லை வரையறுக்க, நீங்கள் இயக்கலாம்:

    nft சேர் secmark inet வடிகட்டி sshtag "system_u:object_r:ssh_server_packet_t:s0"

    பின்னர் விதிகளில் இந்த லேபிளைப் பயன்படுத்தவும்:

    nft add rule inet filter input tcp dport 22 meta secmark set “sshtag”

    nft வரைபடத்தை சேர் inet வடிகட்டி secmapping { வகை inet_service : secmark; }
    nft சேர் உறுப்பு inet வடிகட்டி secmapping {22 : "sshtag"}
    nft add rule inet வடிகட்டி உள்ளீடு மெட்டா செக்மார்க் செட் tcp dport வரைபடம் @secmapping

  • நெறிமுறைகளுக்கு ஒதுக்கப்பட்ட போர்ட்களை உரை வடிவத்தில் குறிப்பிடும் திறன், அவை /etc/services கோப்பில் வரையறுக்கப்பட்டுள்ளன. உதாரணத்திற்கு:

    nft add rule xy tcp dport "ssh"
    nft பட்டியல் விதிகள் -எல்
    அட்டவணை x {
    சங்கிலி y {
    ...
    tcp dport "ssh"
    }
    }

  • பிணைய இடைமுகத்தின் வகையைச் சரிபார்க்கும் திறன். உதாரணத்திற்கு:

    சேர் விதி inet raw prerouting meta iifkind "vrf" accept

  • "டைனமிக்" கொடியை வெளிப்படையாகக் குறிப்பிடுவதன் மூலம் தொகுப்புகளின் உள்ளடக்கங்களை மாறும் வகையில் புதுப்பிப்பதற்கான மேம்படுத்தப்பட்ட ஆதரவு. எடுத்துக்காட்டாக, "s" தொகுப்பைப் புதுப்பிக்க, மூல முகவரியைச் சேர்க்க மற்றும் 30 வினாடிகளுக்கு பாக்கெட்டுகள் இல்லை என்றால் உள்ளீட்டை மீட்டமைக்கவும்:

    அட்டவணை x சேர்க்கவும்
    சேர் செட் xs { வகை ipv4_addr; அளவு 128; காலக்கெடு 30கள்; கொடிகள் மாறும்; }
    சங்கிலி xy சேர் {வகை வடிகட்டி ஹூக் உள்ளீடு முன்னுரிமை 0; }
    xy புதுப்பிப்பு @s { ip saddr } விதியைச் சேர்

  • தனியான காலக்கெடு நிபந்தனையை அமைக்கும் திறன். எடுத்துக்காட்டாக, போர்ட் 8888 இல் வரும் பாக்கெட்டுகளுக்கான இயல்புநிலை காலக்கெடுவை மீற, நீங்கள் குறிப்பிடலாம்:

    அட்டவணை ஐபி வடிகட்டி {
    ct காலக்கெடு ஆக்கிரமிப்பு-tcp {
    நெறிமுறை tcp;
    l3proto ip;
    கொள்கை = { நிறுவப்பட்டது: 100, நெருங்கி_காத்திருங்கள்: 4, மூடு: 4}
    }
    சங்கிலி வெளியீடு {
    ...
    tcp dport 8888 ct டைம்அவுட் செட் "ஆக்ரஸிவ்-டிசிபி"
    }
    }

  • inet குடும்பத்திற்கான NAT ஆதரவு:

    டேபிள் இன்ட் நாட் {
    ...
    ip6 அப்பா இறந்தவர்::2::1 டிநாட் முதல் இறந்தவர்:2::99
    }

  • மேம்படுத்தப்பட்ட எழுத்துப் பிழை அறிக்கை:

    nft சேர் சங்கிலி வடிகட்டி சோதனை

    பிழை: அத்தகைய கோப்பு அல்லது அடைவு இல்லை; குடும்ப ஐபியில் டேபிள் "வடிப்பான்" என்று சொன்னீர்களா?
    சங்கிலி வடிகட்டி சோதனையைச் சேர்க்கவும்
    ^^^^^^

  • தொகுப்புகளில் இடைமுகப் பெயர்களைக் குறிப்பிடும் திறன்:

    sc {ஐ அமைக்கவும்
    inet_service என தட்டச்சு செய்யவும். என்றால் பெயர்
    உறுப்புகள் = { "ssh" . "eth0"}
    }

  • புதுப்பிக்கப்பட்ட ஃப்ளோடேபிள் விதிகளின் தொடரியல்:

    nft சேர் அட்டவணை x
    nft add flowtable x ft { hook ingress priority 0; சாதனங்கள் = { eth0, wlan0 }; }
    ...
    nft சேர் விதி x முன்னோக்கி ஐபி நெறிமுறை { tcp, udp } ஓட்டத்தைச் சேர் @ft

  • மேம்படுத்தப்பட்ட JSON ஆதரவு.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்