Saya akhirnya berhasil mencapai ini ssh
hanya dengan :
- mulai proxy SOCKS lokal di mesin klien Anda (menggunakan
ssh -D
)
- terhubung ke server jarak jauh dan atur port reverse forwarding (
ssh -R
) ke proksi SOCKS lokal Anda
- konfigurasikan perangkat lunak server untuk menggunakan proxy yang diteruskan
1. Mulai proksi kaus kaki lokal di latar belakang
Terhubung ke localhost melalui SSH dan buka proxy SOCKS pada port 54321.
$ ssh -f -N -D 54321 localhost
-f
menjalankan SSH di latar belakang.
Catatan: Jika Anda menutup terminal tempat Anda memulai perintah, proses proxy akan dimatikan. Ingat juga untuk membersihkan setelah diri Anda dengan menutup jendela terminal ketika Anda selesai atau dengan membunuh proses sendiri!
2. terhubung ke server jarak jauh dan atur reverse port forwarding
Bind port jarak jauh 6666 ke port lokal 54321. Ini membuat proxy kaus kaki lokal Anda tersedia untuk situs jarak jauh di port 6666.
$ ssh root@target -R6666:localhost:54321
3. konfigurasikan perangkat lunak server untuk menggunakan proxy yang diteruskan
Cukup konfigurasikan yum, apt, curl, wget atau alat lain yang mendukung SOCKS untuk menggunakan proxy 127.0.0.1:6666
.
Voa! Selamat tunneling!
4. opsional: konfigurasikan perangkat lunak server untuk menggunakan proxy yang diteruskan
Saya menemukan bahwa menginstal proxychains
pada server target membuat banyak hal lebih mudah.
Ini memungkinkan perangkat lunak apa pun untuk menggunakan proxy SOCKS (datar telnet
), dengan menggunakan LD_PRELOAD
trik untuk mengarahkan kembali permintaan TCP dan DNS dari perintah sewenang-wenang ke dalam proxy.
Pengaturan /etc/proxychains.conf
untuk menggunakan proxy kaus kaki yang diteruskan:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
Tunnel arbitrary tools (yang menggunakan TCP) dengan proxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update