разрешить SSH обходить VPN на OSX mavericks, openvpn, pf

мой домашний компьютер подключается к интернету через OpenVPN соединения. Тем не менее, я хотел бы иметь возможность подключиться к моему домашнему компьютеру извне через ssh. Ssh настроен и работает, но когда я подключаюсь к vpn, ssh доступен только изнутри моей домашней сети.

Я понимаю, что происходит не так, мой маршрутизатор пересылает входящие ssh-соединения на мой mac, но затем мой mac отвечает через vpn, поэтому соединение извне тайм-аут. У меня есть pf, настроенный на пару другие вещи, но я не могу понять, как позволить ответам ssh обойти vpn с помощью pf. Я столкнулся с другими решениями, которые используют таблицы ip, таблицы маршрутизации и правила, но я не могу понять, как настроить это на mavericks.

Я искал этот для некоторое время теперь, но я не нашел рабочее решение. Любая помощь будет принята с благодарностью!

Update: я добавлю (часть) моего текущего pf.conf для ясности, с добавленными правилами благодаря MariusMatutiae

#
# Macros
#
vpn_if = "tun0"
lan_if = "en0"
lan_gw = "x.x.x.x"
vpn_gw = "y.y.y.y"

#
# Ruleset
#
pass out on $lan_if route-to ($vpn_if $vpn_gw) from $vpn_if
pass out on $vpn_if route-to ($lan_if $lan_gw) from $lan_if

Update #2: Вот некоторые из правил, которые я пытался заставить это работать (безрезультатно)

# Nat to make replies seem to come from my external ip address
nat on $lan_if -> $ext_ip

# Redirect incoming requests on the lan interface back to the lan interface
rdr pass on $lan_if from ! $lan to any -> ($lan_if)

# Make pf reply to lan interface 
pass in quick on $lan_if reply-to ($lan_if $lan_gw)

Я очень надеюсь, что кто-то может помочь мне!

1
задан zycho42
29.04.2023 13:48 Количество просмотров материала 2618
Распечатать страницу

1 ответ

ваш диагноз верен: первоначальный контакт через ваш домашний маршрутизатор, ответ через OpenVPN, ваш компьютер отбрасывает его по очевидным причинам безопасности.

то, что вы просите называется Policy-based- или Source-based- маршрутизации. В принципе, это означает наличие двух (или более) различных таблиц маршрутизации и переключение между ними в соответствии с некоторыми предопределенными правилами. Он существует в Linux и существует во FreeBSD / OpenBSD благодаря PF, см. эту статью в Википедии. С однако PF существует на Mac (см. здесь для получения инструкций о том, как установить его вверх), Я думал, что смогу рассказать вам, как это сделать в PF, хотя, строго говоря, я делал это только в OpenBSD (и Linux, конечно).

В принципе, ссылка, приведенная выше, говорит вам, что у вас есть два варианта, где поместить правила для вашего PF. Что бы вы ни выбрали, добавьте эти правила в файл:

 ext_if1 = "ether"
 ext_if2 = "tun"
 ext_gw1 = "192.168.1.100"
 ext_gw2 = "10.0.0.3"
 pass out on $ext_if1 from $ext_if2 route-to ($ext_if2 $ext_gw2)
 pass out on $ext_if2 from $ext_if1 route-to ($ext_if1 $ext_gw1) 

здесь *ext_if1 " подключение ethernet через маршрутизатор, и 192.168.1.100 его IP-адрес, в то время как ext_if2 это ваш виртуальный интерфейс (tun или нажмите, что угодно), с IP-адресом 10.0.0.3. Вы должны заменить соответствующие адреса в соответствии с вашими потребностями.

кстати, это поднято прямо из руководства пользователя PF,здесь, за исключением того, что я упростил, чтобы удовлетворить ваш (более простой) запрос.

0
отвечен MariusMatutiae 2023-04-30 21:36

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

macos
networking
pf
ssh
vpn
Вверх