Server Server Mac OS X 10.8: Memotong VPN untuk lalu lintas LAN (merutekan lalu lintas LAN ke koneksi sekunder)

10

Saya memiliki sedikit pengaturan yang aneh untuk server VPN dengan OS X Mountain Lion. Ini pada dasarnya digunakan sebagai jembatan untuk mem-bypass firewall perusahaan saya ke koneksi extranet kami - hal-hal tertentu yang perlu dilakukan oleh tim kami memerlukan akses tanpa batas ke luar, dan mengubah kebijakan TI untuk memungkinkan lalu lintas melalui firewall utama bukanlah pilihan.

Koneksi ekstranet disediakan melalui router Wireless-N (sebut saja Wi-Fi X). Server Mini Mac saya dikonfigurasi dengan koneksi ke router ini sebagai koneksi utama, sehingga akses ke internet melalui router tidak terkekang. Koneksi ke perangkat ini pada subnet langsung dimungkinkan melalui port LAN, tetapi hal-hal di luar subnet kurang dapat diandalkan.

Saya dapat mengkonfigurasi server VPN untuk memberikan alamat IP kepada klien dalam kisaran 192.168.11.150-192.168.11.200 menggunakan PPTP dan L2TP, dan saya dapat terhubung ke ekstranet melalui VPN menggunakan standar Mac OS X VPN klien di System Preferences, namun tidak mengejutkan, alamat lokal (sebut saja internal.company.com) tidak mengembalikan apa pun.

Saya mencoba untuk melewati batasan Server VPN dengan mengatur Rute di pengaturan VPN. Perusahaan kami menggunakan 13.xxx untuk semua lalu lintas internal, bukan 10.xxx, sehingga tabel perutean terlihat seperti ini:

IP Address ---------- Subnet Mask ---------- Configuration
0.0.0.0               248.0.0.0              Private
8.0.0.0               252.0.0.0              Private
12.0.0.0              255.0.0.0              Private
13.0.0.0              255.0.0.0              Public
14.0.0.0              254.0.0.0              Private
16.0.0.0              240.0.0.0              Private
32.0.0.0              224.0.0.0              Private
64.0.0.0              192.0.0.0              Private
128.0.0.0             128.0.0.0              Private

Saya mendapat kesan bahwa jika tidak ada yang dimasukkan di sini, semua lalu lintas dialihkan melalui VPN. Dengan sesuatu dimasukkan, hanya lalu lintas yang ditandai khusus untuk melewati VPN yang akan melewati VPN, dan semua lalu lintas lain akan sampai ke klien untuk mengakses menggunakan koneksi standarnya sendiri. Inilah sebabnya saya harus secara khusus menandai setiap subnet kecuali 13.xxx sebagai Pribadi.

Kecurigaan saya adalah karena saya tidak dapat mencapai server VPN dari luar subnet lokal, itu tidak membuat koneksi ke server DNS utama dan dengan demikian tidak dapat dijangkau di jaringan yang lebih besar. Saya berpikir bahwa memasukkan nama host seperti internal.company.com tidak ditendang kembali ke klien untuk diselesaikan, karena server tidak tahu bahwa alamat IP jatuh dalam jangkauan publik, karena saya curiga (mungkin harus mengujinya tetapi tidak memiliki akses ke sana sekarang) bahwa ia tidak dapat mencapai server DNS untuk mengetahui apa pun tentang nama host itu.

Tampaknya bagi saya bahwa semua opsi saya untuk menyelesaikan semua ini bermuara pada jenis solusi yang sama:

Cari tahu cara mencapai DNS dengan koneksi sekunder di server. Saya berpikir bahwa jika saya dapat melakukan [sesuatu] untuk membuat server saya mengenali bahwa itu juga harus memeriksa gateway lokal saya (katakanlah Server IP == 13.100.100.50 dan Gateway IP == 13.100.100.1). Dari sana Gateway IP dapat memberitahu saya untuk mencari DNS Server di 13.1.1.1 dan memberi saya informasi tentang jaringan internal saya. Saya sangat bingung tentang jalan ini - benar-benar tidak yakin apakah saya masuk akal.

Saya berpikir untuk mencoba melakukan sisi klien ini, tetapi itu juga tidak masuk akal, karena itu akan menambah waktu untuk setiap sisi klien. Plus, sepertinya lebih logis untuk menyelesaikannya di server - saya bisa menyingkirkan tabel routing saya sama sekali atau menyimpannya - saya pikir satu-satunya perbedaan adalah bahwa lalu lintas internal juga akan melalui server - mungkin beban yang tidak perlu pada Itu.

Ada bantuan di luar sana? Atau aku berada di atas kepalaku? Forward proxy atau proxy transparan juga merupakan opsi bagi saya, meskipun saya tidak tahu bagaimana mengatur keduanya. (Saya tahu, Google adalah teman saya.)

Dan Robson
sumber
mungkin posting lain ini dapat membantu: superuser.com/questions/453766/…
Lorenzo Von Matterhorn

Jawaban:

2

Baiklah, saya mencobanya:

Saya tidak yakin bagaimana cara mendapatkan hanya traffic yang bisa saya lewati, saya bisa menyelesaikan masalah Anda, tetapi itu akan sedikit mengubah pengaturan Anda. Saya berasumsi bahwa Mac Anda memiliki dua antarmuka jaringan, sebut saja mereka eth0 dan eth1 :-)

kami akan menganggap bahwa eth0 terhubung ke jaringan kerja Anda dan memiliki alamat internal (jaringan kerja) 13.1.1.6, subnet 255.0.0.0.

kami juga akan menganggap bahwa eth1 terhubung ke WiFi X Anda dan memiliki alamat (eth1 <---> jaringan WiFi X) dari 192.168.1.10, subnet 255.0.0.0, untuk mempermudah semuanya.

Saya sudah menyiapkan server VPN pada BSD dan Linux, tetapi tidak untuk Mac, namun konsepnya akan tetap sama, Anda memiliki opsi, saya akan daftar satu:

1) Pastikan bahwa tabel perutean pada Mac memiliki entri sebagai berikut:

$>sudo route add 13.0.0.0/8 eth0

Apa yang akan dilakukan adalah memastikan lalu lintas apa pun yang masuk melalui antarmuka WiFi X atau VPN yang diperuntukkan bagi jaringan perusahaan Anda (jaringan 13) akan membuatnya ada di sana. Tanpa ini, Mac (yang menyediakan jembatan) benar-benar tidak memiliki cara untuk mengetahui cara merutekan lalu lintas antara dua antarmuka, dan secara default ia akan mencoba mengirimkannya dari antarmuka apa pun yang merupakan default, yaitu WiFi X yang Anda nyatakan.

Saya akan membatalkan apa yang Anda lakukan pada tabel routing VPN di atas dan coba ini jika tidak (semoga) sudah ada.

Jika hal di atas tidak berhasil, perbarui dengan tabel perutean dan daftar alamat ip Server VPN Anda, atau perbarui dengan perbaikan apa pun yang Anda temui. Semoga ini menunjukkan Anda ke arah yang benar.

MDMoore313
sumber