Setiap kali saya menggunakan internet dari lokasi yang tidak aman (seperti wifi publik) saya suka menggunakan ssh tunnel ( ssh -D port host
) untuk memastikan lalu lintas saya tidak dapat diendus. Sayangnya, tampaknya ada banyak aplikasi yang tidak menyediakan cara untuk menentukan proxy (Flash adalah salah satu contoh utama).
Rasanya seperti harus ada cara untuk menggunakan terowongan untuk semua lalu lintas jaringan dari komputer saya, tapi saya sama sekali tidak tahu bagaimana melakukan ini. Bantuan apa pun akan sangat dihargai.
Jawaban:
Untuk melakukan apa yang Anda inginkan, saya sarankan sshuttle .
Anda menggunakannya seperti ini:
Ini akan menyalurkan semua lalu lintas TCP Anda secara otomatis untuk Anda. Anda dapat menambahkan
--dns
argumen agar terowongan juga mengarahkan lalu lintas DNS Anda. Server jarak jauh hanya perlu menginstal Python.Jika Anda hanya ingin melakukan tunnel program tertentu, saya akan merekomendasikan rantai proxy .
Setelah terinstal, jalankan proxy ssh socks Anda seperti ini:
Ini akan memulai mendengarkan proxy "SOCKS" di <port lokal>.
Kemudian edit /etc/proxychains.conf untuk menunjuk ke port yang sama dengan <port lokal>.
Akhirnya mulailah program Anda yang Anda inginkan seperti proxy-ed:
Seharusnya berfungsi. Namun, beberapa program akan mengalami kesulitan bekerja dengan Proxy Chains. Juga perlu diingat, bahwa dengan Firefox, Anda harus mengubah item tambahan di bawah about: config untuk memaksanya melakukan pencarian DNS melalui proxy alih-alih memintasinya.
Sebagai catatan tambahan, di browser web. Jika mereka mendukung proxy kaus kaki, Anda tidak perlu melakukan apa pun tambahan untuk membuatnya menggunakan terowongan ssh yang disebutkan di atas, cukup masukkan 127.0.0.1 untuk server proxy SOCKS dan <port lokal> untuk port proxy.
EDIT 3/29/16
Karena posting ini masih melihat beberapa pembaruan, saya pikir saya akan memperbaruinya. Proxychains masih di sebagian besar repo Linux dan masih berfungsi di Linux. Namun, proyek ini secara efektif ditinggalkan dan tidak berfungsi di OSX. Untuk Linux atau OSX, saya sangat menyarankan untuk meningkatkan ke garpu yang masih dipertahankan: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Selain bekerja di Linux dan OSX, mudah dikompilasi, dan juga memiliki dukungan yang jauh lebih baik untuk tunneling DNS.
Saya juga harus menyebutkan opsi lain, yaitu redsocks. Ia bekerja mirip dengan proxychains (-ng) dan juga mungkin di repo dist Anda: https://github.com/darkk/redsocks
sumber
sshuttle -r root@host -x host 0/0
man ssh
memberikan contoh persis ini. Vpn berbasis ssh:~~ snip ~~
Setelah Anda memiliki antarmuka baru, Anda hanya perlu menjadikannya rute default, yang merupakan pertanyaan yang berbeda.
sumber
Cari opsi "Tunnel" di ssh. Ini menciptakan perangkat terowongan tempat Anda dapat menetapkan alamat IP, dan kemudian Anda mengubah rute default untuk menggunakan terowongan itu.
sumber
Saya telah mengembangkan perangkat lunak yang memungkinkan Anda untuk meneruskan semua TCP dan secara opsional UDP melalui proxy SOCKS5, untuk seluruh sistem.
http://code.google.com/p/badvpn/wiki/tun2socks
Itu bahkan dapat diinstal pada router untuk meneruskan semua koneksi dari komputer di LAN.
sumber
SSH-BASED VIRTUAL PRIVATE NETWORKS ssh berisi dukungan untuk tunneling Virtual Private Network (VPN) menggunakan perangkat pseudo-tun (4) jaringan, memungkinkan dua jaringan untuk bergabung dengan aman. Opsi konfigurasi sshd_config (5) PermitTunnel mengontrol apakah server mendukung ini, dan pada level apa (layer 2 atau 3 lalu lintas).
sumber
Hanya ingin menjernihkan bahwa (ssh -D port host) bukan cara yang aman 100% untuk lalu lintas yang tidak diendus. Menambahkan (ssh -D -c blowfish port host) akan menjadi pilihan yang lebih baik karena Anda setidaknya menambahkan enkripsi ke sesi Anda. Ada lebih banyak opsi yang dapat Anda tambahkan tetapi cukup mudah untuk cukup mengetik "man ssh" di terminal Anda atau Google untuk daftar lengkap.
Opsi yang saya pikir Anda cari adalah menyiapkan VPN (Virtual Private Network)
Lihat artikel ini untuk mendapatkan pemahaman tentang perbedaan antara keduanya ( SSH vs VPN ) atau versi ringkasan yang baik , sebelum Anda menangani pengaturan VPN Anda sendiri. Jika Anda memutuskan untuk memilih rute VPN, saya sarankan OpenVPN , gratis dan banyak dokumentasi dan dukungan.
sumber
ssh -2 -C -D [...]
(memaksa SSH2, gunakan kompresi) dan jatuhkan-c
. menurut sistem sayaman ssh
daftar cipher di SSH2 default untukaes128-cbc,3des-cbc,blowfish-cbc,[etc]
. maksud saya adalah, jika Anda meminta-c blowfish
Anda mungkin berakhir dengan SSH1, yang jauh lebih tidak aman daripada SSH2.Gunakan contoh-contoh ini:
Meneruskan port 80 dari host jarak jauh ke 8888 di localhost Anda
Gunakan ini untuk mengakses layanan pada host jarak jauh yang hanya tersedia di sana
Meneruskan port 80 dari host lokal Anda ke 8888 pada host jarak jauh
Gunakan ini untuk memungkinkan pengguna lain mengakses layanan Anda: server web, atau apa pun.
Tepuk tangan! :)
sumber