Mengakses server web yang di-host di belakang vpn dengan port tertutup dari jarak jauh?

2

Saat ini saya memiliki pengaturan berikut:

Win Server 2008

------- & gt; Mint 16 Cinnamon VM tunneled melalui VPN eksternal (menggunakan OpenVPN)

--------------- & gt; Server web di dalam untuk akses jaringan lokal

Apakah ada cara yang mungkin untuk mengakses server web menggunakan alamat IP ISP eksternal saya ketika server web ditembus di belakang VPN ... tanpa perlu port forward di sisi VPN?

Sebagai contoh, Apakah mungkin untuk meng-host server web pada VM lain atau OS host yang mengalihkan atau bertindak sebagai pointer (... seperti mod_rewrite atau redirect?) Ke server lokal, sehingga dapat diakses secara eksternal tanpa perlu memiliki akses untuk mengkonfigurasi aturan firewall di server VPN?

MISALNYA:

OS host

----- & gt; VM 1, VPN + Webserver, IP adaptor lokal 192.168.1.2 (jaringan rumah), IP terowongan VPN adalah 10.x.x.x, semua lalu lintas eksternal dialihkan melalui VPN.

-------------- & gt; VM 2, IP adaptor lokal adalah 192.168.1.3, Webserver berjalan pada port 80, menunjuk ke halaman yang dihosting pada 192.168.1.2:80 dan memungkinkan untuk melihat eksternal melalui port forwarding router lokal.

Saat ini, semua perangkat di jaringan lokal dapat mengakses server web ini dengan baik.

Gagal ide itu, apakah ada untuk memaksa program tertentu untuk hanya mengirim lalu lintas melalui antarmuka tertentu (yaitu, antarmuka ethernet lokal), atau memaksa port tertentu untuk merutekan melalui gateway ISP bukan VPN (pada level OS).

Hargai umpan balik Anda.

anditpaintsme
sumber
Anda dapat menggunakan server web yang sebenarnya di VM2 sebagai 'proxy' dengan meminta data dari host ini.
Nippey
Anda adalah pengguna yang tidak terdaftar dalam kedua kasus - Daftarkan, dan gunakan tautan hubungi kami di bagian bawah untuk menggabungkan akun Anda.
Journeyman Geek
Anda memiliki 2 akun 1. superuser.com/users/319950/anditpainsme 2. superuser.com/users/323002/anditpaintsme , silakan gunakan formulir kontak dan pilih "Saya harus menggabungkan" untuk menggabungkan akun Anda. Dengan begitu Anda dapat mengontrol pertanyaan Anda & amp; memposting komentar.
Sathyajith Bhat

Jawaban:

3

Ya, itu bisa dilakukan berkat kenyataan bahwa Anda menjalankan Server Web Anda di Linux VM . Fakta pertama (bahwa Anda menggunakan Linux) adalah prasyarat mutlak, yang kedua (bahwa itu adalah VM, bukan mesin fisik) membuatnya lebih mudah dan lebih murah.

Ketika Anda mengatur VPN, itu mengubah tabel routing Anda, menetapkan (dalam kasus Anda) bahwa semua lalu lintas harus melalui server yang berbeda. Jika koneksi masuk melalui router lokal Anda, Mint VM akan mencoba menjawab dengan mengikuti instruksi routing dari satu-satunya tabel yang diketahuinya, yaitu melalui VPN. Namun, pc yang mencoba menghubungi server Web Anda akan melihat bahwa permintaannya ke alamat non-VPN Anda telah dijawab oleh pihak ketiga yang berbeda, server VPN. Untuk alasan keamanan yang jelas, balasan ini segera dibuang.

Untuk mengatasi masalah ini, Linux memiliki kemampuan untuk menangani dua (atau lebih) tabel routing yang berbeda, dengan aturan yang menentukan kapan masing-masing akan digunakan. Jadi yang ingin Anda lakukan adalah membuat antarmuka kedua pada Mint VM Anda (sebut saja itu et1 ), dan pastikan ia memiliki alamat IP di LAN Anda (jika Anda menggunakan VirtualBox, itu berarti membuat a dijembatani antarmuka.

Sekarang yang harus Anda lakukan adalah mengatur dua tabel routing, sedemikian rupa sehingga jika suatu komunikasi masuk melalui OpenVPN, itu dijawab oleh tabel routing yang diatur oleh OpenVPN, tetapi jika masuk melalui LAN (the NIC kami panggil et1 ) dijawab oleh tabel routing berbeda yang merutekan lalu lintas dari mana asalnya, yaitu router lokal Anda, tidak server OpenVPN.

Anda melakukan ini sebagai berikut:

sebelum memulai VPN, buat dua tabel: kita akan menyebutnya utama (yang akan digunakan oleh OpenVPN) dan NONVPN:

 echo 200 main >> /etc/iproute2/rt_tables
 echo 201 NONVPN >> /etc/iproute2/rt_tables

Tambahkan gateway ke setiap tabel routing (jika perlu):

 ip route add 192.168.1.0/24 dev eth0 src <SRC1> table main
 ip route add 192.168.1.0/24 dev eth1 src <SRC2> table NONVPN

Kemudian rute default:

 ip route add default via 192.168.1.1 table main
 ip route add default via 192.168.1.1 table NONVPN

di mana saya mengasumsikan 192.168.1.1 adalah router lokal Anda, dan 192.168.1.0/24 LAN.

Sekarang Anda dapat memulai VPN Anda: itu akan mengubah tabel routing utama Anda.

Terakhir Anda aturan untuk memilih tabel rute berdasarkan alamat sumber:

 ip rule add from 10.0.0.0/24 table main
 ip rule add from 192.168.1.0/24 table NONVPN  

di mana saya mengasumsikan terowongan OpenVPN Anda memiliki alamat dalam kisaran 10.0.0.0/24, ubah sesuai kebutuhan.

Kamu selesai.

MariusMatutiae
sumber