د nftables پاکټ فلټر 0.9.1 خوشې کول

د یو کال پرمختګ وروسته وړاندې شوی د پاکټ فلټر خوشې کول nftables 0.9.1د IPv6، IPv4، ARP او شبکې پلونو لپاره د پیکټ فلټرینګ انٹرفیسونو متحد کولو سره د iptables، ip6table، arptables او ebtables لپاره د بدیل په توګه وده کول. د nftables کڅوړه کې د پاکټ فلټر برخې شاملې دي چې د کارونکي ځای کې پرمخ ځي، پداسې حال کې چې د کرنل کچې کار د nf_tables سب سیسټم لخوا چمتو شوی، کوم چې د 3.13 خوشې کیدو راهیسې د لینکس کرنل برخه ده.

د کرنل کچه یوازې یو عمومي پروتوکول - خپلواک انٹرفیس چمتو کوي چې د پاکټونو څخه د ډیټا ایستلو ، د معلوماتو عملیاتو ترسره کولو ، او جریان کنټرول لپاره لومړني دندې چمتو کوي.
د فلټر کولو منطق پخپله او د پروتوکول ځانګړي هینډلرونه د کارونکي ځای کې بایټ کوډ کې تنظیم شوي ، وروسته له دې چې دا بایټ کوډ د Netlink انٹرفیس په کارولو سره کرنل کې بار شوی او په ځانګړي مجازی ماشین کې اجرا کیږي چې د BPF (برکلي پاکټ فلټرونو) یادونه کوي. دا طریقه تاسو ته اجازه درکوي د فلټر کولو کوډ اندازه د پام وړ کمه کړئ چې د کرنل په کچه روان دي او د پروتوکولونو سره کار کولو لپاره د پارس کولو قواعد او منطق ټولې دندې د کارونکي ځای کې حرکت کوي.

اصلي نوښتونه:

  • د IPsec ملاتړ، د پاکټ، IPsec غوښتنې ID، او SPI (د امنیت پیرامیټر انډیکس) ټاګ پراساس د تونل پتې سره سمون ته اجازه ورکوي. د مثال په ډول،

    ... ipsec in ipsadr 192.168.1.0/24
    ... ipsec in spi 1-65536

    دا هم ممکنه ده چې وګورئ چې ایا لاره د IPsec تونل څخه تیریږي. د مثال په توګه، د ټرافیک بندولو لپاره نه د IPSec له لارې:

    … د فلټر محصول rt ipsec ورک شوی ډراپ

  • د IGMP لپاره ملاتړ (د انټرنیټ ګروپ مدیریت پروتوکول). د مثال په توګه، تاسو کولی شئ د راتلونکو IGMP ګروپ غړیتوب غوښتنې ردولو لپاره قواعد وکاروئ

    nft ضابطه اضافه کړئ netdev foo bar igmp ډول غړیتوب-پوښتنه کاونټر ډراپ

  • د لیږد زنځیرونو تعریف کولو لپاره د متغیرونو کارولو امکان (کود / ګوتو). د مثال په ډول:

    dest = ber تعریف کړئ
    ضابطه ip foo bar jump $dest اضافه کړئ

  • په سر کې د TTL ارزښتونو پراساس د عملیاتي سیسټمونو (OS فنګرپرنټ) پیژندلو لپاره د ماسکونو ملاتړ. د مثال په توګه ، د لیږونکي OS پراساس پاکټونه په نښه کولو لپاره ، تاسو کولی شئ کمانډ وکاروئ:

    ... میټا مارک سیټ osf ttl د نوم نقشه پریږدئ { "لینکس" : 0x1,
    "وینډوز": 0x2,
    "MacOS": 0x3,
    "نامعلوم" : 0x0 }
    ... د osf ttl نسخه پریږدئ "لینکس: 4.20"

  • د لیږونکي د ARP پته او د هدف سیسټم IPv4 پته سره د میچ کولو وړتیا. د مثال په توګه، د 192.168.2.1 پتې څخه لیږل شوي د ARP پاکټونو کاونټر زیاتولو لپاره، تاسو کولی شئ دا قاعده وکاروئ:

    جدول 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 {ډول فلټر هوک پریروټینګ لومړیتوب خام؛ }
    nft زنځیر اضافه کړئ ip x فلټر {ډول فلټر هوک پریروټینګ لومړیتوب فلټر؛ }
    nft زنځیر اضافه کړئ ip x filter_later {ډول فلټر هک پریروټینګ لومړیتوب فلټر + 10; }

  • د SELinux ټګونو لپاره ملاتړ (Secmark). د مثال په توګه، د 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 عنصر اضافه کړئ inet فلټر secmapping {22 : "sshtag" }
    nft ضابطه اضافه کړئ انیټ فلټر ان پټ میټا سی مارک سیټ tcp dport نقشه @secmapping

  • د متن په بڼه پروتوکولونو ته ټاکل شوي بندرونو مشخص کولو وړتیا، لکه څنګه چې دوی په /etc/services فایل کې تعریف شوي. د مثال په ډول:

    nft ضمیمه xy tcp dport "ssh" اضافه کړئ
    د nft لیست قواعد - l
    جدول x {
    زنځیر y {
    ...
    tcp dport "ssh"
    }
    }

  • د شبکې انٹرفیس ډول چیک کولو وړتیا. د مثال په ډول:

    ضمیمه inet raw prerouting meta iifkind "vrf" قبول کړئ

  • د "متحرک" بیرغ په روښانه ډول مشخص کولو سره د سیټونو مینځپانګې په متحرک ډول تازه کولو لپاره ښه ملاتړ. د مثال په توګه، د سرچینې پته اضافه کولو لپاره سیټ "s" تازه کول او د ننوتلو بیا تنظیم کول که چیرې د 30 ثانیو لپاره کڅوړې شتون نلري:

    جدول x اضافه کړئ
    سیټ xs اضافه کړئ { type ipv4_addr; اندازه 128; د وخت پای 30s؛ بیرغونه متحرک؛ }
    زنځیر xy اضافه کړئ {ډول فلټر هک ان پټ لومړیتوب 0؛ }
    ضابط xy تازه اضافه کړئ @s {ip saddr }

  • د جلا وخت پای حالت ټاکلو وړتیا. د مثال په توګه، د 8888 پورټ ته د رسیدلو پاکټونو لپاره د ډیفالټ وخت پای ته رسیدو لپاره، تاسو کولی شئ مشخص کړئ:

    جدول ip فلټر {
    ct وخت پای ته رسیدل aggressive-tcp {
    پروتوکول tcp؛
    l3proto ip;
    پالیسي = {تاسیس شوی: 100، بند_انتظار: 4، نږدې: 4}
    }
    د زنځیر محصول {
    ...
    tcp dport 8888 ct مهال ویش ټاکل شوی "جارحانه-tcp"
    }
    }

  • د انیټ کورنۍ لپاره د NAT ملاتړ:

    جدول inet nat {
    ...
    ip6 daddr مړ::2::1 dnat to dead:2::99
    }

  • د ټایپ غلطی راپور ورکول ښه شوی:

    nft د زنځیر فلټر ازموینه اضافه کړئ

    تېروتنه: داسې کومه فایل یا لارښود نشته؛ ایا تاسو په کورنۍ ip کې د میز "فلټر" معنی لرئ؟
    د زنځیر فلټر ازموینه اضافه کړئ
    ^^^^^^

  • په سیټونو کې د انٹرفیس نومونو مشخص کولو وړتیا:

    ټاکل sc {
    inet_service ټایپ کړئ. ifname
    عناصر = { "ssh" . "eth0" }
    }

  • د فلو میز قواعدو ترکیب تازه شوی:

    nft جدول x اضافه کړئ
    nft د فلو میز x ft اضافه کړئ { هک داخلیدل لومړیتوب 0؛ وسایل = {eth0, wlan0}; }
    ...
    nft ضمیمه x فارورډ ip پروتوکول {tcp، udp} جریان اضافه کړئ @ft

  • د JSON ملاتړ ښه شوی.

سرچینه: opennet.ru

Add a comment