OpenVPN: Hanya merutekan alamat IP tertentu melalui VPN?

45

Pada jaringan pribadi jarak jauh ada dua server - file server dan server database (ini adalah kedua mesin Win, jika itu penting).

Server file memiliki mekanisme autentikasi yang cukup kuat, dan memungkinkan saya untuk terhubung langsung dari lokasi yang jauh.

Server database menggunakan nama pengguna dan kata sandi yang sederhana, sehingga untuk mencegah akses yang tidak sah, ia dikunci ke jaringan lokal - lalu lintas eksternal diblokir.

Untuk mengakses server database, saya menggunakan klien OpenVPN pada Windows untuk terhubung ke server VPN di jaringan pribadi.

Secara default, OpenVPN merutekan semua paket jaringan yang ditujukan untuk jaringan jarak jauh tempat server VPN berada, melalui VPN. Sayangnya, mengakses file server melalui VPN sangat lambat!

Pertanyaan:

Bagaimana saya bisa mengkonfigurasi klien OpenVPN untuk HANYA merutekan lalu lintas melalui VPN yang diperuntukkan untuk satu alamat IP tertentu - yaitu server basis data ??

Brian Lacy
sumber
Sangat sederhana, lihat di sini untuk cara melakukannya superuser.com/a/178675/96461
Sameer

Jawaban:

51

Konfigurasi yang benar untuk OpenVpn adalah:

route-nopull 
route 192.168.0.0 255.255.255.0

Entri ini termasuk dalam file .ovpn Anda dan akan mengarahkan semua 192.168.0. * Lalu lintas subnet melalui VPN.

Hanya untuk satu IP (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255
Thomas
sumber
Kami sebagian besar penutur bahasa Inggris dan tidak harus tahu bahasa Jerman. Tolong terjemahkan jawaban Anda.
gronostaj
1
+1. Inilah yang saya butuhkan. Saya menggunakan klien ovpn di linux saya dan karenanya Anda menjawab baru saja menyelamatkan saya. Terima kasih.
slayedbylucifer
Bisakah saya merutekan sebuah situs web ke vpn? Misalnya saja www.facebook.com
Nicola Peluchetti
Dalam kasus saya, merute ip tunggal melalui vpn tampaknya berfungsi dengan baik. Tetapi ketika menggunakan subnet mask tidak berfungsi sama sekali. Ada ide mengapa?
running.t
Saya masih belum tahu jawaban atas pertanyaan saya (di atas), tetapi saya telah melakukan beberapa penyelidikan dan membuat utas terpisah tentangnya: superuser.com/questions/854194/…
running.t
24

Tujuan

  • Gunakan koneksi internet biasa untuk semua lalu lintas internet secara default, bahkan ketika VPN terhubung.
  • Merutekan lalu lintas ke satu alamat IP tertentu melalui VPN.

Tangga

  1. Tekan Win+ Rdan jalankan ncpa.cpl.

  2. Klik kanan koneksi VPN dan pergi ke Properties → Networking .

  3. Memilih Internet Protocol Version 4 dan pergi ke Properties → Lanjutan ... .

  4. Hapus centang Gunakan gateway default di jaringan jarak jauh dan klik OK .

  5. (opsional) Ulangi langkah-langkah sebelumnya untuk Internet Protocol Version 6 .

  6. (Re) terhubung ke VPN Anda.

  7. Buka prompt perintah dan jalankan route print -4.

  8. Temukan antarmuka VPN di daftar Antarmuka dan gateway-nya di Rute Aktif .

    Di mesin saya, saya punya:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    Di sini, gateway VPN adalah 10.88.1.1, karena gateway untuk10.xxx.xxx.xxx blok tersebut.

  9. Tambahkan rute tetap yang akan ditambahkan ke rute aktif setiap kali ada koneksi ke VPN:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    Dalam contoh ini, 23.22.135.169adalah IP dari whatismyip.org, 10.88.1.1adalah IP gateway dan32 jumlah antarmuka.

  10. (opsional) Ulangi langkah sebelumnya untuk route print -6 .

  11. Uji pengaturannya.

    Jika semuanya berhasil, whatismyip.org dan www.whatismyip.cx akan menampilkan IP yang berbeda sekarang.

Dennis
sumber
1
Tentunya ada cara yang lebih sederhana?
Brian Lacy
1
Apakah Anda tahu cara mencapai ini di Linux (Ubuntu)?
Елин Й.
1
@ ЕлинЙ. jika Anda menggunakan Network Manager cukup pilih "Gunakan koneksi ini hanya untuk sumber daya di jaringan ini".
leif81
1
+1 ... tetapi bisakah golf ini?
Olivier Dulac
11

Untuk konfigurasi klien OpenVPN Anda, tambahkan baris seperti:

route The.IP.To.Go 255.255.255.255

(Di mana The.IP.To.Go adalah IP yang ingin Anda rute melalui VPN)

Ini menginstruksikan OpenVPN untuk membuat entri di tabel perutean OS Anda.

Atau, server OpenVPN dapat dibuat untuk "mendorong" konfigurasi perutean ini ke klien, dengan menambahkan ke konfigurasi server:

push "route The.IP.To.Go 255.255.255.255"

EDIT: Satu hal yang saya lewatkan dalam mengatasi - penerusan standar semua lalu lintas ... Itu bisa dinonaktifkan di server, atau klien dapat memilih untuk mengabaikan arahan "didorong" (jadi opsi kedua kami "mendorong" rute tidak akan berfungsi ) melalui:

route-nopull
Adam
sumber
-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>
Dharmesh
sumber
Tolong jelaskan apa yang dilakukan perintah ini. Hanya satu perintah tanpa penjelasan tidak begitu berguna. Periksa juga pemformatan posting Anda — semuanya <brackets>tidak terlihat jika tidak ditandai sebagai kode.
slhck