તમારા SSH ક્લાયન્ટ દ્વારા દૂરના Pi ને SOCKS પ્રોક્સી આપો
દૂરસ્થ ગતિશીલ ફોરવર્ડ SOCKS શ્રોતાને Pi પર મૂકે છે અને તમારા લેપટોપના મંજૂર VPN માર્ગમાંથી આગળનું જોડાણ કરે છે. બીજા SSH સર્વરની જરૂર નથી.
તમે માની લો છો કે SOCKS પ્રોક્સી ત્યાં જ ચાલવું જોઈએ જ્યાં નેટવર્ક ઍક્સેસ પહેલેથી છે. OpenSSH શ્રોતાને સાવ બીજી જગ્યાએ મૂકી શકે છે. દૂરસ્થ ગતિશીલ ફોરવર્ડ દૂરના હોસ્ટ પર SOCKS પોર્ટ ખોલે છે અને દરેક જોડાણ તમારા સ્થાનિક SSH ક્લાયન્ટથી શરૂ કરે છે, જે તમારા લેપટોપનો મંજૂર VPN માર્ગ વહન કરે છે. Pi ને મર્યાદિત પ્રોક્સી મળે છે; તે તમારી ટનલ કે તમારા વિશેષાધિકારો વારસામાં લેતું નથી.
શ્રોતા અને જોડાણ જે બાજુથી શરૂ થાય તે બાજુ અલગ હોઈ શકે
સામાન્ય ssh -D 1080 શ્રોતાને તમારા પોતાના મશીન પર ચલાવે છે અને ત્યાંથી જોડાણો મોકલે છે. દૂરસ્થ ગતિશીલ ફોરવર્ડ તેને ઉલટાવે છે: શ્રોતા દૂરના હોસ્ટ પર દેખાય છે, અને તે સ્વીકારે છે તે દરેક જોડાણ સ્થાનિક બાજુથી ખૂલે છે. OpenSSH ક્લાયન્ટ મેન્યુઅલ નિશ્ચિત ગંતવ્ય વગરના -R ને બરાબર આ SOCKS4/5 ગોઠવણી તરીકે દસ્તાવેજ કરે છે.
લેપટોપથી સમર્થિત આદેશ આવો દેખાય છે, જેમાં ખાતું, હોસ્ટ અને પોર્ટ પ્લેસહોલ્ડર તરીકે ગણાય છે:
ssh -NT -S none -o ExitOnForwardFailure=yes \
-o PermitRemoteOpen=app.corp.example:443 \
-R 1080 [email protected]
ત્યાં ત્રણ વિગતો ઉપયોગી કામ કરે છે. -S none સત્રને વહેંચાયેલ કંટ્રોલ માસ્ટરથી દૂર રાખે છે, ExitOnForwardFailure તમને અડધું ખુલ્લું સત્ર છોડવાને બદલે ઝડપથી નિષ્ફળ જાય છે, અને PermitRemoteOpen મર્યાદિત કરે છે કે દૂરનો શ્રોતા ક્યાં સુધી પહોંચી શકે. અધિકૃત Pi ખાતું વાપરો અને આમાંથી કંઈપણ ઉમેરતા પહેલાં હોસ્ટ કી ચકાસો.
દૂરનો શ્રોતા ખરેખર શું ખુલ્લું કરે છે
શ્રોતા પર આધાર રાખતા પહેલાં સર્વરની ફોરવર્ડિંગ નીતિ તપાસો. GatewayPorts no સાથે દૂરસ્થ ફોરવર્ડ loopback સાથે બંધાયેલો રહે છે, અને તે જ એક્સપોઝર છે જે તમે ઈચ્છો છો. વાઈલ્ડકાર્ડ ફોરવર્ડિંગ ફરજિયાત કરવા ગોઠવાયેલ સર્વર દરેક ઇન્ટરફેસ પર એ જ પોર્ટ પ્રકાશિત કરે છે, જે વ્યક્તિગત પ્રોક્સીને સ્થાનિક નેટવર્ક પહોંચી શકે તેવી વસ્તુ બનાવે છે.
loopback પણ વપરાશકર્તા દીઠ સીમા નથી. Pi પરની બીજી પ્રક્રિયા પોર્ટ જાણતી હોય તો 127.0.0.1:1080 સાથે જોડાઈ શકે છે, તેથી Pi નાં સ્થાનિક ખાતાં અને તેના પર ચાલતું બધું તમારી ઍક્સેસ રચનાનો ભાગ છે. આ ગંતવ્યોની યાદી સાંકડી રાખવાનું કારણ છે, નીતિ તપાસ છોડી દેવાનું કારણ નહીં.
તમે જે ઍપ્લિકેશન સુધી પહોંચવા માંગો છો તેના માટે મંજૂર ગંતવ્ય ચોક્કસ રાખો. અસંબંધિત પ્રોગ્રામ ચલાવવા માટે તેને અમર્યાદિત ફોરવર્ડિંગથી બદલવાથી જે સમસ્યાથી તમે શરૂ કર્યું તેનાથી ઘણું આગળ માર્ગ પહોળો થાય છે. ગંતવ્યોની યાદી એ પણ નોંધે છે કે સત્ર શેના માટે હતું, જે પછીથી ઓડિટ કરનારને મદદ કરે છે. તમે વાપરેલા ખાતાની બાજુમાં તે લખો.
એક ઍપ્લિકેશનને પ્રોક્સીમાંથી મોકલો
Pi પરનો પ્રોક્સી સમજતો ક્લાયન્ટ પછી વિનંતી કરી શકે છે. socks5h ઉપસર્ગ ગંતવ્યનું નામ પ્રોક્સીને આપે છે, તેથી શોધ અને જોડાણ બંને લેપટોપની બાજુ થાય છે, અને તે PermitRemoteOpen માંના નામવાળા ગંતવ્ય સાથે મેળ ખાય છે:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
સામાન્ય પ્રમાણપત્ર ચકાસણી અને ઍપ્લિકેશનની પોતાની પ્રમાણીકરણ રાખો. પ્રોક્સી બદલે છે કે TCP જોડાણ ક્યાં બને છે; તે પ્રમાણીકરણ વગરની સેવાને સુરક્ષિત બનાવતું નથી, અને સ્વ-હસ્તાક્ષરિત અંતિમ બિંદુને વિશ્વાસપાત્ર બનાવતું નથી.
લેપટોપને હજી પણ પોતાનો માર્ગ અને SSH સર્વર તથા ઍપ્લિકેશન બંને માટે રિઝોલ્વર ઍક્સેસ જોઈએ. તેના SSH ક્લાયન્ટનો ટ્રાફિક મંજૂર VPN નીતિ દ્વારા પસંદ થવો જોઈએ, અને split-tunnel બાદબાકી તે ટ્રાફિકને તમે ચકાસ્યો તે માર્ગ કરતાં અલગ માર્ગે મોકલી શકે છે.
માર્ગ સાબિત કરો અને તેને બંધ કરો
ખાતરી કરો કે શ્રોતા તમે અપેક્ષા રાખો છો ત્યાં જ છે અને ફક્ત ઇચ્છિત ગંતવ્ય જ જવાબ આપે છે:
$ ss -ltnp | grep 1080
LISTEN 0 128 127.0.0.1:1080 0.0.0.0:*
$ curl -sS -o /dev/null -w '%{http_code}\n' \
--proxy socks5h://127.0.0.1:1080 https://app.corp.example/
ExitOnForwardFailure સાબિત કરી શકે છે કે ફોરવર્ડિંગ સ્થાપિત થયું, અને તેમ છતાં તે પ્રમાણિત કરી શકતું નથી કે ઍપ્લિકેશનમાં લોગિન નીચેની તરફ સફળ થાય છે. ઍપ્લિકેશન ચકાસો, ફક્ત પોર્ટ નહીં. સ્વીકારીને પછી દરેક વિનંતી નિષ્ફળ કરતો શ્રોતા સામાન્ય રીતે એમ કહે છે કે ગંતવ્યનું નામ કે લેપટોપનો માર્ગ ખોટો છે, ટનલ નિષ્ફળ ગઈ નથી.
આ ગોઠવણી ફક્ત TCP વહન કરે છે. UDP, ICMP અને પ્રોક્સી સેટિંગ્સ અવગણતા પ્રોગ્રામ તેની બહાર રહે છે, અને SSH સત્ર પૂરું થાય તે ક્ષણે ફોરવર્ડિંગ પૂરું થાય છે. કામ પૂરું થાય ત્યારે તે સત્ર બંધ કરો અને ઍપ્લિકેશનમાં ઉમેરેલી પ્રોક્સી સેટિંગ દૂર કરો.
કાયમી ઍક્સેસ માટે, તેના બદલે નેટવર્ક માલિકની સમર્થિત નોંધણી કે સંચાલિત ગેટવે વાપરો. VPN ના ઉપકરણ કે સંસાધન નિયંત્રણોથી બચવા માટે રિવર્સ પ્રોક્સી ખોટું સાધન છે; તે નિયંત્રણોની અંદર વાપરીએ તો તે સ્પષ્ટ મર્યાદાઓવાળો ફક્ત એક અધિકૃત ઍપ્લિકેશન માર્ગ છે.