DNS užklausa per TCP naudojant vietinį SSH peradresavimą
Peradresuokite vietinį neprivilegijuotą TCP prievadą į nuotolinį DNS serverį ir aiškiai paprašykite DNS over TCP su dig.
OpenSSH vietinis peradresavimas perduoda TCP. DNS taip pat gali naudoti TCP, jei užklausos įrankis ir nuotolinė DNS paslauga naudoja šį transportą.
DNS serveriui, pasiekiamam iš SSH hosto, atidarykite tik loopbacke klausantį peradresavimą:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Tada iš vietinės mašinos išsiųskite aiškią TCP DNS užklausą:
dig +tcp @127.0.0.1 -p 1053 app.internal A
Pakeiskite DNS serverį, SSH hostą ir užklausiamą vardą norimomis reikšmėmis. SSH serverio pusė turi pasiekti dns.internal:53, o peradresavimo politika turi tai leisti.
Vietinis prievadas yra virš privilegijuotų prievadų diapazono. Užklausai į vietinį prievadą 1053 nereikia susieti sistemos DNS prievado 53.
Tai automatiškai neperadresuoja įprastų UDP DNS užklausų. Neapdorotas UDP–TCP baitų vamzdis nepakanka, nes DNS over TCP prideda ilgio lauką ir srauto kadravimą. Integracijai su sistemos resolveriu reikia tinkamo DNS forwarderio arba aiškiai palaikomos TCP konfigūracijos.
Galiausiai, gavus adresą šiuo keliu, vėlesnis žiniatinklio ryšys nebus nukreiptas per SSH. DNS paieška ir transportas iki paskirties lieka atskiri pasirinkimai.