Mac OS X 10.8 VPN сервер: обхід VPN для локального трафіку (маршрутизація трафіку локальної мережі до вторинного з'єднання)


10

У мене дещо дивна настройка для VPN-сервера з OS X Mountain Lion. По суті, він використовується як міст для обходу міжмережевого екрану моєї компанії до нашого підключення до екстранету - певні речі, які наша команда повинна робити, вимагають безперешкодного доступу до зовнішньої сторони, а зміна політики ІТ для дозволу трафіку через основний брандмауер просто не є можливим.

Підключення до екстрасети забезпечується через маршрутизатор Wireless-N (назвемо це Wi-Fi X). Мій сервер Mac Mini налаштований підключенням до цього маршрутизатора як основне з'єднання, таким чином, безперебійний доступ до Інтернету через роутер. Підключення до цього пристрою в безпосередній підмережі можливо через порт LAN, але поза мережею все менш надійно.

Мені вдалося налаштувати VPN-сервер для надання IP-адреси клієнтам у діапазоні 192.168.11.150-192.168.11.200, використовуючи і PPTP, і L2TP, і я можу підключитися до екстранети через VPN за допомогою стандартного Mac OS X VPN клієнт у System Preferences, але не дивно, що локальна адреса (назвемо її Internal.company.com) нічого не повертає.

Я намагався обійти обмеження сервера VPN, встановивши маршрути в налаштуваннях VPN. Наша компанія використовує 13.xxx для всього внутрішнього трафіку, а не 10.xxx, тому таблиця маршрутизації виглядала приблизно так:

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

У мене було враження, що якщо сюди нічого не було введено, увесь трафік пролягав через VPN. Якщо щось введено, через VPN буде проходити лише трафік, спеціально позначений для проходження через VPN, а весь інший трафік повинен отримувати клієнт, використовуючи власне з'єднання за замовчуванням. Ось чому мені довелося спеціально позначити кожну підмережу, крім 13.xxx, як приватну.

Я підозрюю, що оскільки я не можу дістатись до VPN-сервера за межами локальної підмережі, він не здійснює з'єднання з головним DNS-сервером і, отже, не може бути досягнуто у більшій мережі. Я думаю, що введення імен хостів, таких як Internal.company.com, не відштовхується від клієнта, щоб вирішити, оскільки сервер не має уявлення, що IP-адреса потрапляє у загальнодоступний діапазон, оскільки я підозрюю (напевно, слід перевірити це, але немає доступу до нього прямо зараз), що він не може дістатися до DNS-сервера, щоб дізнатися щось про це ім'я хоста.

Мені здається, що всі мої варіанти вирішення цього питання зводяться до одного типу рішення:

З’ясуйте, як дістатися до DNS за допомогою вторинного з'єднання на сервері. Я думаю, що якщо мені вдасться [щось] зробити так, щоб мій сервер визнав, що він також повинен перевірити мій локальний шлюз (скажімо, сервер IP == 13.100.100.50 і шлюз IP == 13.100.100.1). Звідси IP-шлюз може сказати мені піти знайти DNS-сервер о 13.1.1.1 і дати мені інформацію про мою внутрішню мережу. Я дуже розгублений щодо цього шляху - дійсно не впевнений, чи я навіть маю сенс.

Я думав про спробу зробити цей клієнтський бік, але це також не має сенсу, оскільки це додасть часу для кожної клієнтської установки. Крім того, просто здається, що це більш логічно вирішити на сервері - я можу взагалі позбутися своєї таблиці маршрутизації або зберегти її - я думаю, що різниця полягатиме в тому, що внутрішній трафік також проходитиме через сервер - можливо, це зайве навантаження на це.

Будь-яка допомога там? Або я в голові? Проксі-проксі або прозорий проксі також є варіантом для мене, хоча я не маю уявлення, як налаштувати будь-який із них. (Я знаю, Google - мій друг.)


можливо, цей інший пост може бути корисним
Лоренцо Фон Маттерхорн

Відповіді:


2

Що ж, я даю йому зняти:

Я не впевнений, як пройти лише деякий трафік, я можу вирішити вашу проблему, але це потребує невеликих змін у вашій налаштуваннях. Я припускаю, що ваш Mac має два мережеві інтерфейси, назвемо їх eth0 та eth1 :-)

ми припустимо, що eth0 підключений до вашої робочої мережі та має внутрішню (робочу мережу) адресу 13.1.1.6, підмережа 255.0.0.0.

ми також припустимо, що eth1 підключений до вашого WiFi X і має адресу (eth1 <---> мережа WiFi X) 192.168.1.10, підмережа 255.0.0.0, щоб зробити це просто.

Я налаштував VPN-сервери на BSD та Linux, але не на Mac, проте концепція все одно буде однаковою, у вас є варіанти, я перерахую один:

1) Переконайтеся, що в таблиці маршрутизації на Mac є запис таким чином:

$>sudo route add 13.0.0.0/8 eth0

Для цього потрібно переконатися, що будь-який трафік, що надходить через інтерфейс WiFi X або VPN, призначений для мережі вашої компанії (13 мереж), зробить його там. Без цього Mac (який забезпечує міст) насправді не може знати, як прокладати трафік між двома інтерфейсами, і за замовчуванням він спробує відправити його з будь-якого інтерфейсу за замовчуванням, який є WiFi X, про який ви заявили.

Я скасував би те, що ви зробили для таблиці маршрутизації VPN вище, і спробую це, якщо його немає (сподіваємось), що вже є.

Якщо вищезгадане не робить цього, оновіть w / таблицю маршрутизації вашого сервера VPN та список ip-адрес, або оновіть будь-яке виправлення, яке ви натрапили. Сподіваюся, це спрямовує вас у правильному напрямку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.