Anda menganggap proksi SOCKS mesti berjalan di tempat akses rangkaian sudah wujud. OpenSSH boleh meletakkan pendengar di tempat yang sama sekali lain. Pemajuan dinamik jauh membuka port SOCKS pada hos jauh dan memulakan setiap sambungan daripada klien SSH tempatan anda, yang membawa laluan VPN komputer riba anda yang diluluskan. Pi mendapat proksi yang terhad; ia tidak mewarisi terowong atau keistimewaan anda.

Pendengar dan sisi asal sambungan boleh berbeza

ssh -D 1080 biasa menjalankan pendengar pada mesin anda sendiri dan menghantar sambungan dari situ. Pemajuan dinamik jauh membalikkannya: pendengar muncul pada hos jauh, dan setiap sambungan yang diterimanya dibuka dari sisi tempatan. manual klien OpenSSH mendokumenkan -R tanpa destinasi tetap tepat sebagai susunan SOCKS4/5 ini.

Perintah yang disokong dari komputer riba kelihatan seperti ini, dengan akaun, hos dan port dianggap sebagai pemegang tempat:

ssh -NT -S none -o ExitOnForwardFailure=yes \
  -o PermitRemoteOpen=app.corp.example:443 \
  -R 1080 [email protected]

Tiga butiran melakukan kerja berguna di situ. -S none menjauhkan sesi daripada master kawalan kongsi, ExitOnForwardFailure gagal cepat dan bukan meninggalkan anda dengan sesi separa terbuka, dan PermitRemoteOpen mengehadkan apa yang boleh dicapai oleh pendengar jauh. Gunakan akaun Pi yang dibenarkan dan sahkan kunci hos sebelum anda menambah apa-apa daripada ini.

Apa yang sebenarnya didedahkan oleh pendengar jauh

Semak dasar pemajuan pelayan sebelum anda bergantung pada pendengar. Dengan GatewayPorts no pemajuan jauh kekal terikat pada loopback, dan itulah pendedahan yang anda mahu. Pelayan yang dikonfigurasikan untuk memaksa pemajuan wildcard menerbitkan port yang sama pada setiap antara muka, yang menjadikan proksi peribadi sebagai sesuatu yang boleh dicapai oleh rangkaian tempatan.

Loopback juga bukan sempadan setiap pengguna. Proses lain pada Pi boleh menyambung ke 127.0.0.1:1080 jika ia tahu port itu, jadi akaun tempatan Pi dan apa sahaja yang berjalan di atasnya adalah sebahagian daripada reka bentuk akses anda. Itu sebab untuk mengekalkan senarai destinasi sempit, bukan sebab untuk melangkau semakan dasar.

Kekalkan destinasi yang dibenarkan khusus untuk aplikasi yang anda cuba capai. Menggantikannya dengan pemajuan tanpa had supaya program yang tidak berkaitan berfungsi meluaskan laluan jauh melebihi masalah yang anda mulakan. Senarai destinasi juga merekodkan untuk apa sesi itu, yang membantu sesiapa yang mengauditnya kemudian. Tuliskan ia di sebelah akaun yang anda gunakan.

Hantar satu aplikasi melalui proksi:

Klien di Pi yang memahami proksi kemudian boleh membuat permintaan. Awalan socks5h menyerahkan nama destinasi kepada proksi, jadi carian dan sambungan kedua-duanya berlaku di sisi komputer riba, dan ia sepadan dengan destinasi bernama dalam PermitRemoteOpen:

curl --proxy socks5h://127.0.0.1:1080 \
  --noproxy '' https://app.corp.example/

Kekalkan pengesahan sijil biasa dan pengesahan aplikasi itu sendiri. Proksi mengubah di mana sambungan TCP dibuat; ia tidak menjadikan perkhidmatan tanpa pengesahan selamat, dan ia tidak menjadikan titik akhir yang ditandatangani sendiri sebagai boleh dipercayai.

Komputer riba masih memerlukan laluan sendiri dan akses penyelesai kepada pelayan SSH dan aplikasi. Trafik klien SSH-nya mesti dipilih oleh dasar VPN yang diluluskan, dan pengecualian split-tunnel boleh menghantar trafik itu melalui laluan berbeza daripada yang anda uji.

Buktikan laluan dan tutupnya

Sahkan pendengar wujud di tempat yang anda jangkakan dan hanya destinasi yang dimaksudkan menjawab:

$ 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 boleh membuktikan pemajuan telah diwujudkan, dan ia masih tidak boleh memperakui bahawa log masuk aplikasi berjaya di hilir. Uji aplikasi, bukan hanya port. Pendengar yang menerima dan kemudian menggagalkan setiap permintaan biasanya bermaksud nama destinasi atau laluan komputer riba itu salah, bukan terowong itu gagal.

Susunan ini membawa TCP sahaja. UDP, ICMP dan program yang mengabaikan tetapan proksi kekal di luarnya, dan pemajuan tamat pada saat sesi SSH tamat. Hentikan sesi itu apabila anda selesai dan buang tetapan proksi yang anda tambah pada aplikasi.

Untuk akses kekal, gunakan pendaftaran pemilik rangkaian yang disokong atau gerbang terurus sebagai gantinya. Proksi songsang ialah alat yang salah untuk memintas sekatan peranti atau sumber VPN; digunakan di dalamnya, ia hanyalah satu laluan aplikasi yang dibenarkan dengan had yang jelas.

Artikel berkaitan