เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบซเบผเบธเบ”เบฅเบฐเบ”เบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบˆเบฒเบเป„เบฅเบเบฐเป„เบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ RouterOS (Mikrotik) เป€เบฎเบฑเบ”เปƒเบซเป‰เบญเบธเบ›เบฐเบเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡. เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบ›เบฑเบ™เบžเบดเบ”เบ‚เบญเบ‡ DNS cache เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™ Winbox เปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบซเบฅเบ”เบฅเป‰เบฒเบชเบฐเป„เบซเบก (เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เปƒเบซเบกเปˆ) เบซเบผเบทเปเบเป‰เป„เบ‚เป€เบŸเบตเบกเปเบงเปƒเบชเปˆเบญเบธเบ›เบฐเบเบญเบ™.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ

terminal RouterOS เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบเป‰เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเบญเบเบซเบฒ DNS.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ™เบตเป‰เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบ binary เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ•เบปเบงเปเบเป‰เป„เบ‚. Resolver เปเบกเปˆเบ™เปœเบถเปˆเบ‡เปƒเบ™เบซเบผเบฒเบเบ„เบนเปˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป‚เบ›เบฃเป‚เบ•เบ„เป Winbox เบ‚เบญเบ‡ RouterOS. เปƒเบ™เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡, "เบ‚เปเป‰เบ„เบงเบฒเบก" เบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบžเบญเบ” Winbox เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ binaries เบ•เปˆเบฒเบ‡เป†เปƒเบ™ RouterOS เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป‚เบ„เบ‡เบเบฒเบ™เป€เบฅเบเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ array.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, RouterOS เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบŠเบตเบšเป€เบงเบต DNS เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, router เบฎเบฑเบเบชเบฒ DNS cache เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเปƒเบŠเป‰ winbox_dns_request เบ•เบปเบงเบขเปˆเบฒเบ‡ example.com, router เบˆเบฐ cache เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เป‚เบ”เบเบœเปˆเบฒเบ™เบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ„เบงเบ™เบˆเบฐเป„เบ›, เบเบฒเบ™เปƒเบชเปˆเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เบˆเบฒเบ Philip Klausเป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบชเบฐเป€เบซเบกเบตเบ”เป‰เบงเบเบšเบฑเบ™เบ—เบถเบ A เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP 192.168.88.250.

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    print("---- Reply:n", reply)
    return reply.pack()

เบ•เบญเบ™เบ™เบตเป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡.com เป‚เบ”เบเปƒเบŠเป‰ Winbox, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒ DNS cache เบ‚เบญเบ‡ router เป„เบ”เป‰เบ–เบทเบเป€เบšเบทเปˆเบญ.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เป€เบ›เบฑเบ™เบžเบดเบ” example.com เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ router เบˆเบฐเบšเปเปˆเปƒเบŠเป‰เบกเบฑเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบฃเบปเบฒเป€เบ•เบตเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com เปเบฅเบฐ download.mikrotik.com. เปเบฅเบฐเบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบžเบดเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบง.

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    reply.add_answer(RR("upgrade.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud2.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("download.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    print("---- Reply:n", reply)
    return reply.pack()

router เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเปƒเบซเป‰เบซเป‰เบฒเบ„เบทเบ™. router เบšเปเปˆ cache เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบ„เปเบฒเบ•เบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Backport เปƒเบ™ RouterOS เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡

เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ™เบตเป‰เบเบฑเบ‡เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒ router เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒเบ‚เบญเบ‡ router เบ–เบทเบเป‚เบˆเบกเบ•เบต.

เบเบฒเบ™โ€‹เป‚เบˆเบกโ€‹เบ•เบตโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบชเปˆเบฝเบ‡โ€‹เบ—เบตเปˆโ€‹เบฎเป‰เบฒเบโ€‹เปเบฎเบ‡โ€‹เบเบงเปˆเบฒโ€‹: downgrade เบซเบผเบท backport เป€เบงเบตโ€‹เบŠเบฑเบ™โ€‹เบ‚เบญเบ‡ RouterOSโ€‹. เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบชเป‰เบฒเบ‡เป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเบญเบฑเบšเป€เบ”เบ”, เบฅเบงเบกเบ—เบฑเบ‡ changelog, เปเบฅเบฐเบšเบฑเบ‡เบ„เบฑเบš RouterOS เบฎเบฑเบšเบฎเบนเป‰เป€เบงเบตเบŠเบฑเบ™เบ—เบตเปˆเบฅเป‰เบฒเบชเบฐเป„เบซเบก (เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡) เป€เบ›เบฑเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเป€เบกเบทเปˆเบญเบชเบฐเบšเบฑเบš "เบ›เบฑเบšเบ›เบธเบ‡", เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเบˆเบฐเบ–เบทเบเบ›เบฑเบšเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ - เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ!


เบเบฒเบ™เป‚เบˆเบกเบ•เบตเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ, เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒ เบœเบนเป‰เบ‚เบฝเบ™ เบ›เบฐเบ•เบดเบšเบฑเบ” vector เบซเบผเบฒเบ, เบฅเบงเบกเบ—เบฑเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš เบเบฒเบ™เบเบฑเบ‡ backdoor เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบŸเบตเบกเปเบง, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ•เบฑเบเบ™เบดเบเบ—เบตเปˆเบŠเป‰เปเบฒเบŠเป‰เบญเบ™เปเบฅเป‰เบงเปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เบœเบดเบ”เบเบปเบ”เบซเบกเบฒเบ.

เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™

เบžเบฝเบ‡เปเบ•เปˆเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ Winbox เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบปเบเบ›เป‰เบญเบ‡เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบˆเบกเบ•เบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™เบœเปˆเบฒเบ™ Winbox, เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป‚เบ›เป‚เบ•เบ„เบญเบ™ SSH.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™