sshuttle સામે સંપૂર્ણ VPN: તેની પદ્ધતિ ખરેખર શું આવરે છે
sshuttle ફક્ત તે જ વહન કરે છે જે તેની ફોરવર્ડિંગ પદ્ધતિ સમર્થન આપે છે: પહેલાં TCP, DNS અને UDP આવરણ, જરૂરી સ્થાનિક વિશેષાધિકાર અને દૂરસ્થ સહાયક તપાસો.
sshuttle એટલા માટે પસંદ કરવામાં આવે છે કારણ કે SSH પહેલેથી કામ કરે છે અને ક્રિપ્ટોગ્રાફી પરિચિત લાગે છે, અને આ તર્ક યોગ્યતા નક્કી કરતો એકમાત્ર પ્રશ્ન છોડી દે છે. કયા પેકેટ મશીન છોડે છે, બીજી બાજુ કયું ખાતું તેમને વહન કરે છે, અને સાધન કેટલો સ્થાનિક વિશેષાધિકાર માંગે છે. આ ત્રણ જવાબ ફોરવર્ડિંગ પદ્ધતિ પ્રમાણે અલગ પડે છે, તેથી એક એપ્લિકેશન માટે કામ કરતી ગોઠવણ બીજી માટે શાંતિથી નિષ્ફળ થઈ શકે છે. નીચેની સમીક્ષા એપ્લિકેશનને ખરેખર જે પ્રોટોકોલની જરૂર છે ત્યાંથી શરૂ થાય છે.
એપ્લિકેશનને જે પ્રોટોકોલની જરૂર છે ત્યાંથી શરૂ કરો
sshuttle 2.0 માં પ્રોટોકોલ સમર્થન તમે પસંદ કરો તે પદ્ધતિ પર આધાર રાખે છે. Linux ની NAT અને nft પદ્ધતિઓ TCP અને DNS સંભાળે છે, અને TPROXY સામાન્ય UDP ઉમેરે છે. દરેક પ્લેટફોર્મ અને પદ્ધતિની પોતાની મર્યાદાઓ છે, અને macOS સંપૂર્ણપણે જુદી રીતે અટકાવે છે. કંઈપણ પસંદ કરતાં પહેલાં સ્થાપિત આવૃત્તિ, પસંદ કરેલી પદ્ધતિ અને એપ્લિકેશનને જરૂરી પ્રોટોકોલ નોંધો.
તેથી કાર્યરત TCP વિનંતી UDP એપ્લિકેશન કે દરેક DNS શોધ વિશે ઘણું ઓછું સાબિત કરે છે. sshuttle TCP ને આખા IP પેકેટ ટનલ કરવાને બદલે પ્રવાહ તરીકે ગણે છે, તેથી પરંપરાગત VPN માંથી લીધેલો થ્રુપુટ નિષ્કર્ષ અહીં લાગુ પડતો નથી. તમે ખરેખર ચલાવો છો તે પદ્ધતિની તમારા ખરેખરના ભાર સાથે તુલના કરો.
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A client with the required privileges |
ક્લાયન્ટને સ્થાનિક રીતે શું જોઈએ
દસ્તાવેજીકૃત ક્લાયન્ટ ગોઠવણને root અથવા sudo જોઈએ છે, કારણ કે તે ટનલ ઇન્ટરફેસ બનાવવાને બદલે સ્થાનિક અટકાવ નિયમો સ્થાપિત કરે છે. એ એક હકીકત સુરક્ષા વાર્તા બદલી નાખે છે: તે વિશેષાધિકાર ધરાવતી પ્રક્રિયા આખા મશીનનું ટ્રાફિક વાળી શકે છે, ફક્ત એક એપ્લિકેશનનું નહીં. વિશેષાધિકારને રચનાનો ભાગ ગણો, સ્થાપનની વિગત નહીં.
સાધને કયા નિયમો સ્થાપિત કર્યા અને તે બહાર નીકળતાં અદૃશ્ય થાય છે તેની ખાતરી કરો. ક્રેશ થયેલું સત્ર જે અટકાવ નિયમો પાછળ છોડી દે છે તે ઓપરેટરને કનેક્શન ગયું લાગ્યા પછી ઘણા સમય સુધી ટ્રાફિકને કાળા કૂવામાં મોકલી શકે છે, અને લક્ષણ નેટવર્ક ખામી જેવું લાગે છે, બાકી રહેલા નિયમ જેવું નહીં.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
પ્રથમ આદેશ સામાન્ય કૉલનું સ્વરૂપ છે, તમને ખરેખર જરૂરી પ્રીફિક્સ સાથે. બીજો દર્શાવે છે કે સાધને શું સ્થાપિત કર્યું, અને ત્રીજો પુષ્ટિ કરે છે કે કોઈ ટનલ ઇન્ટરફેસ દેખાયું નથી, જે આ રચના માટે અપેક્ષિત પરિણામ છે.
દૂરસ્થ બાજુ શું ચલાવે છે
દૂરસ્થ બાજુ એ અધિકૃત SSH ખાતું અને સુસંગત Python સહાયક પર્યાવરણ છે. મર્યાદિત શેલ હેઠળ સફળ લૉગિન આપમેળે તે સહાયક ચલાવવાની પરવાનગી આપતું નથી, અને સહાયક ચલાવી શકતું ખાતું આપમેળે દરેક લક્ષ્ય સેવા સુધી પહોંચતું નથી. બંને હકીકતો ઍક્સેસ વિનંતીમાં આવે છે, મુશ્કેલી નિવારણ નોંધમાં નહીં.
યજમાન ઓળખ ચકાસણી અને ખાતાની પ્રમાણીકરણ સુરક્ષિત રાખો. પ્રથમ કનેક્શન કામ કરે તે માટે અજાણી યજમાન કી સ્વીકારવાથી દૂરસ્થ બાજુ તમે ધારેલું મશીન છે તે ચકાસણી દૂર થાય છે, અને અહીં તે એકહેતુ ફોરવર્ડ કરતાં વધુ મહત્ત્વનું છે.
દૂરસ્થ ખાતાને કાર્યપ્રવાહને જરૂરી સેવાઓ સુધી મર્યાદિત કરો, અને તે વ્યાપ યજમાન ચલાવનારાઓ સાથે વાટાઘાટ કરો. તેઓ વિશ્વાસ સંબંધનો ભાગ છે, અને ક્લાયન્ટ બાજુની કોઈ પણ ગોઠવણ તેને બદલતી નથી.
વિશ્વાસ સીમા ક્યાં છે
SSH દ્વારા ખાનગી API કનેક્શન ફોરવર્ડ કરવું દરેક API કામગીરીને અધિકૃત કરતું નથી. એપ્લિકેશન TLS અને એપ્લિકેશન લૉગિન હજી લાગુ પડે છે, અને સાધન પ્રમાણીકરણ વગરની સેવાને સુરક્ષિત બનાવી શકતું નથી. દૂરસ્થ યજમાનમાંથી વધારાની છલાંગ પણ આપમેળે SSH ચેનલ જેવો જ સુરક્ષિત વિભાગ નથી, કારણ કે તે બીજું કનેક્શન દૂરસ્થ યજમાનની જે નીતિ હોય તેને અનુસરે છે.
સીમા એક વાક્યમાં લખો: આ પ્રીફિક્સ તરફનું ટ્રાફિક તે યજમાન પર આ ખાતામાંથી બહાર નીકળે છે. જો વાક્યને અપવાદોનો એક ફકરો જોઈએ, તો રચના તેના દસ્તાવેજીકરણના દાવા કરતાં વધુ કરે છે અને ઉત્પાદન સુધી પહોંચતાં પહેલાં બીજી નજર લાયક છે.
દરેક પ્રોટોકોલ માટે સાબિત કરો, પછી સાધન પસંદ કરો
દરેક જરૂરી પ્રોટોકોલને નિર્દોષ વિનંતીથી ચકાસો, રિઝોલ્વર માર્ગ અને એપ્લિકેશન જે સરનામાં કુટુંબો વાપરે છે તે સહિત. પરીક્ષણમાં ડિસ્કનેક્ટ પણ સામેલ કરો, જેથી એપ્લિકેશનની માન્ય નિષ્ફળતા વર્તણૂક ઘટનાના સમયે આશ્ચર્ય નહીં પણ જાણીતું પરિણામ બને. ચાલુ હતું ત્યારે યોગ્ય રીતે ફોરવર્ડ કરનારું સત્ર પડ્યા પછી શું થાય તે વિશે કંઈ કહેતું નથી.
સ્પષ્ટ નામ આપેલી થોડી સેવાઓ માટે સામાન્ય સ્થાનિક ફોરવર્ડ માલિકી અને ઓડિટ માટે સરળ છે. જે એપ્લિકેશન ટ્રાફિક તેની પદ્ધતિને અનુરૂપ છે તેના માટે sshuttle કાયદેસર મધ્યમ માર્ગ આપે છે. જ્યારે જરૂરિયાત વ્યાપક IP કનેક્ટિવિટી હોય, ત્યારે VPN રચના પ્રામાણિક જવાબ છે, અને પસંદગી એન્ક્રિપ્શન અલ્ગોરિધમની ક્રમાંકનને નહીં, આવરણ અને કાર્યાત્મક જવાબદારીને અનુસરે છે.