SSH ફોરવર્ડ દ્વારા ફક્ત VPN દ્વારા ઉપલબ્ધ HTTPS સાઇટ સુધી પહોંચવું
ફક્ત VPN દ્વારા ઉપલબ્ધ એક HTTPS સેવાને સ્થાનિક SSH ફોરવર્ડ સાથે જોડો, --connect-to સાથે સાચું હોસ્ટનામ રાખો, અને જાણો કે એક TCP ફોરવર્ડ શું આવરી શકતું નથી.
એક મશીન પાસે પહેલેથી મંજૂર VPN ઍક્સેસ છે, બીજા મશીનને બરાબર એક ખાનગી HTTPS સેવાની જરૂર છે, અને સ્થાનિક SSH ફોરવર્ડ બીજા મશીનને ટનલ આપ્યા વિના એ અંતર પૂરી શકે છે. ફોરવર્ડ આખા નેટવર્કને બદલે એક TCP ગંતવ્ય વહન કરે છે, અને એ મર્યાદા જ મુખ્ય મુદ્દો છે. નીચેના પાંચ પગલાં ક્રમમાં પૂરાં કરો, કારણ કે દરેક જુદા કારણસર નિષ્ફળ જાય છે અને પછીનું પગલું અગાઉની ખામી સુધારી શકતું નથી. જો કોઈ પૂર્વશરત ખૂટે, તો આ રચના તેને ઉકેલતી નથી અને કમાન્ડનું કોઈ ટ્યુનિંગ મદદ કરશે નહીં.
પગલું એક: ત્રણ પૂર્વશરતોની પુષ્ટિ કરો
કોઈ પણ કમાન્ડનું મહત્ત્વ થાય તે પહેલાં ત્રણ વસ્તુઓ પહેલેથી સાચી હોવી જોઈએ. પ્રથમ મશીનને ફોરવર્ડિંગ હોસ્ટ તરીકે વાપરવાની પરવાનગી, તેમાં કાર્યરત SSH ઍક્સેસ, અને ઇચ્છિત ગંતવ્યને મંજૂરી આપતી સર્વર નીતિ — આ ત્રણે જરૂરી છે. ફાઇલ સ્થાનાંતરણ માટે બનાવેલ SSH ખાતામાં ફોરવર્ડિંગ બંધ હોઈ શકે, અને ફોરવર્ડિંગની મંજૂરી આપતું સર્વર પણ તેના દ્વારા કયા ગંતવ્ય સુધી પહોંચી શકાય તે મર્યાદિત રાખી શકે. પરીક્ષણ પહેલાં પૂછો, કારણ કે સંમતિ વિના સહકર્મીના વર્કસ્ટેશનને જમ્પ પોઇન્ટ તરીકે વાપરવું નીતિની સમસ્યા છે, ભલે કમાન્ડ સંપૂર્ણ રીતે કામ કરે.
બે કમાન્ડ એ યાદીનો ટેકનિકલ અડધો ભાગ નક્કી કરે છે. પ્રથમ સાબિત કરે છે કે ખાતું અને કી ઇન્ટરેક્ટિવ પ્રોમ્પ્ટ વિના કામ કરે છે, અને બીજું કન્ફિગરેશન ફાઇલમાંની ટિપ્પણી કરેલી ઉદાહરણની જગ્યાએ વાસ્તવિક સર્વર નીતિ છાપે છે.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
પગલું બે: loopback પોર્ટ બાંધો અને સેશન જીવંત રાખો
ક્લાયન્ટ એપ્લિકેશન ચલાવતા મશીન પર ખાનગી સેવા માટે સ્થાનિક ફોરવર્ડ ખોલો. તેને સ્પષ્ટપણે loopback સાથે બાંધો જેથી તે સ્થાનિક નેટવર્ક પર પ્રકાશિત ન થાય, અને એવો ઊંચો પોર્ટ પસંદ કરો જે કોઈ સ્થાનિક સેવા પહેલેથી ન રોકે. કામ કરતી વખતે સેશન ચાલુ રાખો, કારણ કે તેને બંધ કરવાથી શ્રોતા બંધ થાય છે. ExitOnForwardFailure નકારાયેલ બંધન અથવા કબજે કરેલ પોર્ટને ફોરવર્ડ વિના ચાલુ રહેતા સેશનની જગ્યાએ તાત્કાલિક બહાર નીકળવામાં ફેરવે છે, અને આ જ નિષ્ફળતાની રીત સૌથી વધુ સમય બગાડે છે.
ખાનગી જોડાણ જમ્પ હોસ્ટથી બને છે, તેથી તે હોસ્ટના DNS, રૂટ, VPN નીતિ અને સેવા ઍક્સેસ — બધું કામ કરવું જોઈએ. SSH સેશન જમ્પ હોસ્ટ પાસે ન હોય તેવી પહોંચ ઊભી કરતું નથી, અને VPN એ ક્યારેય ન ધકેલેલો રૂટ સુધારી શકતું નથી. કમાન્ડની શાંતિ પર ભરોસો કરવાને બદલે શ્રોતા ખરેખર જ્યાં છે ત્યાં ચકાસો.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
પગલું ત્રણ: સોકેટ સ્થાનિક હોય ત્યારે HTTPS નામ રાખો
https://127.0.0.1:9443/ બ્રાઉઝ કરવાથી TLS સર્વર નામ અને એપ્લિકેશન સત્તા બદલાય છે. portal.lab.example માટે જારી કરેલ પ્રમાણપત્ર loopback સરનામા સામે માન્ય થશે નહીં, અને પરિણામી ભૂલ ફોરવર્ડિંગ શોર્ટકટને બદલે તૂટેલા પ્રમાણપત્ર જેવી દેખાય છે. કમાન્ડ-લાઇન પરીક્ષણ માટે સાચું URL રાખો અને ફક્ત સોકેટ ગંતવ્ય બદલો. --connect-to આ જ કરે છે, અને curl મેન્યુઅલ નીચે વપરાયેલું ચાર-ક્ષેત્રીય સ્વરૂપ દસ્તાવેજ કરે છે.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
નામ URL માં, TLS હેન્ડશેકમાં અને Host હેડરમાં રહે છે, જ્યારે TCP જોડાણ સ્થાનિક શ્રોતા પાસે જાય છે. નો-પ્રોક્સી વિકલ્પ પરીક્ષણને આ ફોરવર્ડ પર જ રાખે છે, કન્ફિગર કરેલ HTTP પ્રોક્સીને તેને અટકાવવા દેવાને બદલે, અને પ્રમાણપત્ર ચકાસણી ચાલુ રાખવી એ જ પરિણામને અર્થપૂર્ણ બનાવે છે.
પગલું ચાર: એક ફોરવર્ડ શું આવરી શકતું નથી તે જાણો
એક TCP ફોરવર્ડ એક ગંતવ્ય પોર્ટ આવરી લે છે. બીજા હોસ્ટનામ પર રીડાયરેક્ટ કરતું, ખાનગી નેટવર્કની અંદરના હોસ્ટથી સંસાધનો લોડ કરતું અથવા બીજા પોર્ટ પર મોકલતું પૃષ્ઠને તેનું પોતાનું ફોરવર્ડ જોઈએ, અને તેમાંના દરેકને પ્રથમ જેવી જ નીતિ-ચકાસણી જોઈએ. બ્રાઉઝર કાર્યપ્રવાહ પોતાની જરૂરિયાતો ઉમેરે છે, કારણ કે બ્રાઉઝરને પ્રોક્સી રૂપરેખાંકન અથવા સ્થાનિક મેપિંગ દ્વારા સાચું નામ સ્થાનિક પોર્ટ પર મોકલવાનું કહેવું પડે. તેથી સફળ કમાન્ડ-લાઇન પરીક્ષણ સાબિત કરતું નથી કે બ્રાઉઝર સફળ થશે, ભલે તે માર્ગ સાબિત કરે.
UDP, SMB શોધ અને ડોમેન સાઇન-ઇન TCP ફોરવર્ડમાંથી બિલકુલ પસાર થતા નથી. જો ખરી જરૂરિયાત સામાન્ય નેટવર્ક ઍક્સેસ હોય, તો આ રચના ખોટું સાધન છે અને સમર્થિત રિમોટ-ઍક્સેસ ગેટવે સાચું છે.
પગલું પાંચ: સફાઈ કરો અને નોંધો
પરીક્ષણ પૂરું થાય ત્યારે સેશન બંધ કરો અને શ્રોતા ગયો છે તેની ખાતરી કરો. જો પસંદ કરેલો પોર્ટ પહેલેથી કબજે હતો, તો નંબર મુક્ત કરવા અસંબંધિત સ્થાનિક સેવા બંધ કરવાને બદલે બીજો ન વપરાયેલો loopback પોર્ટ પસંદ કરો અને URL, પરીક્ષણ કમાન્ડ અને નોંધ — બધું સાથે અપડેટ કરો. લેપટોપ પર ફોરવર્ડ ખુલ્લું છોડવું નિદાનને બિન-વ્યવસ્થિત સેવામાં ફેરવે છે.
જમ્પ હોસ્ટ, ફોરવર્ડ કરેલું ગંતવ્ય, સ્થાનિક પોર્ટ અને કોણે આ ગોઠવણ મંજૂર કરી તે લખો. જે ફોરવર્ડ ફક્ત કોઈના shell ઇતિહાસમાં હોય તે એક રીબૂટ દૂર પુનરાવર્તિત તપાસમાં જાય છે, અને આગલી વ્યક્તિને ખબર નહીં હોય કે ત્રણ પૂર્વશરતોમાંથી કઈ પહેલેથી ચકાસાઈ ગઈ છે.