SSH स्थानीय फ़ॉरवर्ड के माध्यम से TCP पर DNS क्वेरी
एक स्थानीय गैर-विशेषाधिकार TCP पोर्ट को दूरस्थ DNS सर्वर पर फ़ॉरवर्ड करें और dig से DNS over TCP स्पष्ट रूप से माँगें।
OpenSSH का स्थानीय फ़ॉरवर्डिंग TCP ले जाता है। DNS भी TCP का उपयोग कर सकता है, बशर्ते क्वेरी टूल और दूरस्थ DNS सेवा वही परिवहन उपयोग करें।
SSH होस्ट से पहुँचने योग्य DNS सर्वर के लिए केवल लूपबैक पर सुनने वाला फ़ॉरवर्ड खोलें:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
फिर स्थानीय मशीन से स्पष्ट TCP DNS क्वेरी भेजें:
dig +tcp @127.0.0.1 -p 1053 app.internal A
DNS सर्वर, SSH होस्ट और पूछे गए नाम को इच्छित मानों से बदलें। SSH सर्वर पक्ष को dns.internal:53 तक पहुँचना चाहिए, और फ़ॉरवर्डिंग नीति को इसे अनुमति देनी चाहिए।
स्थानीय पोर्ट विशेषाधिकार प्राप्त पोर्ट की श्रेणी से ऊपर है। स्थानीय पोर्ट 1053 पर क्वेरी के लिए सिस्टम का DNS पोर्ट 53 बाइंड करने की आवश्यकता नहीं है।
यह सामान्य UDP DNS क्वेरी को स्वचालित रूप से रीडायरेक्ट नहीं करता। कच्चा UDP-से-TCP बाइट पाइप पर्याप्त नहीं है, क्योंकि DNS over TCP लंबाई फ़ील्ड और स्ट्रीम फ़्रेमिंग जोड़ता है। सिस्टम रिज़ॉल्वर के साथ एकीकरण के लिए उपयुक्त DNS फ़ॉरवर्डर या स्पष्ट रूप से समर्थित TCP कॉन्फ़िगरेशन चाहिए।
अंत में, इस मार्ग से पता प्राप्त करने से बाद का वेब कनेक्शन SSH से नहीं जाता। DNS लुकअप और गंतव्य तक परिवहन अलग-अलग चुनाव बने रहते हैं।