Bagaimana cara merutekan internet saya melalui terowongan SSH?

24

Q lama Bagaimana saya mengatur server OpenVPN tanpa hak akses root?

Apakah ada cara untuk mengatur server OpenVPN tanpa hak akses root? Misalnya dengan file konfigurasi di direktori rumah saya? Jika ya, bagaimana cara mengaturnya?

Saya mencoba SSH ke dalam sistem dan mengatur server OpenVPN di sana untuk penggunaan pribadi.

EDIT

Karena jelas bahwa OpenVPN membutuhkan hak akses root, saya mengubah pertanyaan untuk merutekan internet saya menggunakan SSH yang dapat saya atur dengan mudah.

Oxwivi
sumber
Dengan "userspace", maksud Anda di folder rumah tanpa izin root? Biasanya, "userspace" digunakan sebagai kebalikan dari "ruang kernel".
Lekensteyn
@Lekensteyn, ya tanpa izin root, saya tidak tahu ruang pengguna disebut sesuatu yang lain. Silakan mengedit pertanyaan saya menjadi sesuatu yang sesuai. Saya juga memikirkan jawaban itu, tetapi saya tidak tahu tentang pengaturan semuanya tanpa hak root.
Oxwivi

Jawaban:

32

sshuttle adalah server proxy transparan yang meneruskan koneksi SSH dan membuat proxy dengan menjalankan skrip Python di server jauh. sshuttledapat dijalankan dalam kondisi berikut:

  • mesin atau router klien berbasis Linux, FreeBSD atau Mac OS
  • hak administratif pada klien
  • akses ke jaringan jarak jauh melalui SSH
  • tidak ada hak administrator di jaringan jarak jauh
  • ketersediaan Python di server jauh

Instal sshuttlemasukkan deskripsi gambar di sini dari Pusat Perangkat Lunak atau Terminal:

sudo apt-get install sshuttle

Perintah dasar untuk menjalankan sshuttle dengan merutekan semua lalu lintas adalah:

sshuttle -r username@sshserver:port 0/0

Setelah eksekusi perintah, sudoprompt kata sandi akan muncul dan selanjutnya kata sandi ke akun SSH. Tidak ada rincian lain yang akan muncul kecuali untuk pesan singkat dan kembali ke shell setelah kegagalan. Untuk pesan status lainnya, jalankan sshuttledalam mode verbose dengan-v bendera.

Dalam contoh ini semua lalu lintas internet kecuali DNS diarahkan melalui VPN. -rflag menunjukkan nama host jarak jauh dan nama pengguna serta port opsional yang mengikuti contoh di atas. 0/0kependekan untuk 0.0.0.0/0yang mewakili subnet untuk merutekan melalui VPN. Penggunaan 0/0rute semua lalu lintas kecuali permintaan DNS ke server jauh. Tunelling DNS dimungkinkan dengan penggunaan -Hflag.

Silakan baca halaman manual ( man sshuttle) untuk perincian opsi dan mode yang sshuttledapat dijalankan. Untuk informasi tentang konsep dan lebih banyak contoh, lihat halaman proyek .

André Paramés
sumber
redsocks juga patut dipertimbangkan; fitur yang sama, eksekusi yang sedikit berbeda
sanmai
17

Anda tidak dapat mengatur OpenVPN tanpa hak akses root karena operasi tertentu memerlukannya.

  • Prasyarat: Anda harus mengaktifkan penerusan paket di firewall (iptables?) Anda
  • Menambah perangkat yang beroperasi: perangkat virtual khusus harus ditambahkan menggunakan ifconfig. Jika tidak, tidak ada komunikasi yang mungkin antara server dan klien

Tergantung pada kebutuhan Anda, solusi lain tersedia. Untuk menjelajah melalui server Anda, Anda dapat mengatur server SOCKS.

Proxy SOCKS

Menyiapkan proxy SOCKS tidak sulit: ini built-in di OpenSSH. Untuk mengaktifkan server SOCKS, jalankan perintah berikutnya di terminal :

ssh user@host -D1234

Ganti 1234 dengan port pilihan Anda. Di browser Anda, Anda dapat memasukkan localhostsebagai host dan 1234sebagai port di server SOCKS4 / 5.

Di bawah ini adalah contoh di browser Firefox:

  1. Buka Edit -> Preferensi
  2. Buka Lanjutan bagian
  3. Buka tab Jaringan
  4. Tekan Pengaturan
  5. Pilih Konfigurasi proxy manual
  6. Masukkan localhostsebagai Host SOCKS
  7. Masukkan 1234sebagai port (port yang sama seperti yang ditentukan dalam perintah SSH)
  8. Tekan OK dan Tutup untuk menutup dialog preferensi.

Contoh pengaturan FIrefox

Lekensteyn
sumber
1
Saya ingin merutekan internet saya melalui sistem yang saya inginkan untuk mengatur VPN.
Oxwivi
Sayangnya, Anda tidak dapat mengubah aturan perutean di server tanpa hak akses root. Salah satu solusi yang menyediakan setidaknya solusi aman untuk menjelajah adalah dengan menggunakan proksi SOCKS seperti dijelaskan dalam jawaban.
Lekensteyn
1
Saya berhasil mendapatkan internet saya dialihkan melalui terowongan SSH. Haruskah saya mengedit jawaban Anda untuk merujuknya secara khusus ketika saya telah mengedit pertanyaan? Atau akankah kamu melakukannya?
Oxwivi
@Oxwivi: Saya akan memesan ulang dan menambahkan contoh untuk Firefox.
Lekensteyn
-1

Jika Anda hanya ingin tunnel traffic sistem Anda, saya sarankan untuk menggunakan program yang disebut tun2socks. Jika Anda juga ingin tunnel traffic UDP Anda harus menginstal udpgw di server Anda.

Berikut ini adalah tutorial cara menginstal dan menggunakan program ini: http://board.nwrk.biz/viewtopic.php?id=3

giri
sumber
4
Bisakah Anda memperbarui jawaban dan menjelaskan langkah terpenting tautan Anda di sini? Dengan cara ini jawaban ini akan tetap berguna bahkan jika situs tersebut akan hilang.
Louis Matthijssen