Pendahuluan: Apa yang saya cari adalah instruksi eksplisit, dalam format yang sama seperti di atas. Artinya, seperti menjalankan: "... jalankan perintah X pada mesin A, lalu perintah Y pada mesin B ..."
Saya memiliki proxy kaus kaki yang berfungsi dari laptop saya (mesin A) ke mesin B:
[A]$ ssh -ND 8888 B
Saya dapat mengatur Firefox untuk menggunakan proxy SOCKS pada port lokal A 8888
, dan menjelajah pada karya A. Sejauh ini bagus.
Tapi saya juga punya proxy kaus kaki antara mesin B dan C:
[B]$ ssh -ND 8157 C
Jadi saya bisa browsing di B seolah-olah saya berada di C, mengatur proxy kaus kaki Firefox B ke 8157
.
Apakah ada cara untuk menghubungkan kedua proksi agar saya dapat menggunakan Firefox secara lokal (pada A) saat menggunakan koneksi ke C?
Yaitu, entah bagaimana meneruskan semua permintaan kaus kaki Firefox dari A hingga C. A dan C tidak dapat saling melihat secara langsung, tetapi saya memiliki akses SSH root penuh di mana-mana. Semua mesin adalah Debian.
Perhatikan bahwa saya tidak ingin meneruskan satu port seperti port 80 tetapi saya ingin proksi SOCK sepenuhnya dirantai .
-L 8888:B:8157
pada [A]?ssh -L 8888:B:8157
gagal, memerlukan parameter nama host. Bisakah Anda memberikan jawaban yang lebih lengkap, dari ujung ke ujung? Jika berhasil, saya akan menerimanya.Jawaban:
Baru saja mengkonfirmasi ini berfungsi dengan beberapa VM:
Dari A , Anda membuka port ke depan terowongan dari 8888 secara lokal untuk 8157 di B
-L8888:localhost:8157
. Setelah Anda menetapkan koneksi ke B, perintah jarak jauhssh -t -D 8157 user@C
dijalankan, yang menyediakan SOCKS proxy Anda melalui C . Dari apa yang saya baca, '-t' tampaknya diperlukan, meskipun saya masih harus mencari tahu alasannya.Catatan, ini adalah salah satu perintah pada host pertama yang memanggil ssh dua kali, dari A-> B dan dari B-> C . Anda juga dapat memecah ini menjadi perintah terpisah, seperti yang dijelaskan di bawah ini.
Bonus: untuk merantai tiga proksi ...
Yaitu
A->B->C->D->Internet
Perhatikan bahwa untuk setiap hop, Anda memerlukan forwarder pencocokan tambahan
-L
pada host sebelumnya di rantai.Referensi:
sumber
glallen jawaban luar biasa memanfaatkan SSH akan menyelesaikan pekerjaan. Namun, cara yang tepat untuk mencapai ini adalah dengan menggunakan
proxychains
program ini. ProxyChains adalah alat yang ampuh yang memungkinkan Anda untuk dengan mudah memanfaatkan beberapa server proxy secara bersamaan. Misalnya, ini digunakan oleh peretas untuk menyembunyikan identitas mereka saat melakukan serangan internet - dengan merantai sekelompok proxy di seluruh dunia bersama-sama, menjadi mustahil bagi penyelidik forensik untuk melacak lalu lintas sepanjang jalan kembali ke mereka. Bukan untuk mengatakan bahwa Anda adalah peretas jahat - ini akan bekerja untuk banyak kasus penggunaan yang berbeda. ;)ProxyChains diinstal secara default pada beberapa distribusi Linux (seperti Kali Linux). Di Ubuntu / Debian, misalnya, Anda dapat dengan mudah menginstalnya dengan melakukan:
sudo apt-get install proxychains
Proxychains mencari file konfigurasi di
/etc/proxychains.conf
. Setelah Anda menginstalnya, buat cadangan file konfigurasi Proxychains yang ada (jika ada) dan buat yang baru:mv /etc/proxychains.conf /etc/proxychains-backup.conf
nano /etc/proxychains.conf
Sekarang, rekatkan dalam konfigurasi contoh ini yang telah saya tulis untuk Anda:
Dalam contoh ini,
192.168.1.1
adalah alamat IP dari server proxy SOCKS pertama,8888
adalah port yang didengarkan oleh proxy SOCKS pertama,192.168.1.2
adalah alamat IP dari server proxy SOCKS kedua,8157
adalah port yang didengarkan oleh proxy SOCKS kedua, Dan seterusnya.Sekarang, manfaatkan rantai proxy dengan melakukan
proxychains firefox
dari baris perintah untuk meluncurkan Firefox. (Pastikan Firefox ditutup terlebih dahulu.) Sekarang, setiap kali Firefox membuat koneksi keluar, program proxychaps akan merangkum lalu lintas sehingga akan diproksikan melalui semua server yang Anda tentukan dalam file konfigurasi ini. Agar jelas, dalam preferensi Firefox Anda, Anda tidak boleh menentukan server proxy APAPUN - proxychains akan mengurus semuanya di belakang layar.Perhatikan bahwa, untuk tujuan pemecahan masalah, Anda mungkin harus mencoba membuatnya berfungsi menggunakan 1 proksi sekaligus sebelum mencoba semua 3.;)
Referensi:
proxychains-ng
(garpu dari rantai proxy asli yang sebenarnya masih dipertahankan hingga 2015): https://github.com/rofl0r/proxychains-ngsumber