OpenVPN gateway

Доброго времени суток!
Такая проблема, уже голову сломал, есть домашний сервер
OpenBSD 93-185-190-103 5.4 GENERIC#37 amd64
на нем запущен OpenVPN как клиент к https://www.privateinternetaccess.com/‎
Есть соответственно три интерфейса $ext_if = re0 $vpn_if = tun0 $lan_if = vr0
ext_if смотрит в интернет с внешним Ip
lan_if в локалку
vpn_if созданный openvpn интерфейс
ifconfig при включенном openvpn:

re0: flags=8843 mtu 1500
lladdr 00:21:85:5a:13:9c
priority: 0
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::221:85ff:fe5a:139c%re0 prefixlen 64 scopeid 0x1
inet 93.185.190.103 netmask 0xffffff00 broadcast 93.185.190.255
tun0: flags=8051 mtu 1500
priority: 0
groups: tun
status: active
inet6 fe80::221:85ff:fe5a:139c%tun0 -> prefixlen 64 scopeid 0x7
inet 10.139.1.6 --> 10.139.1.5 netmask 0xffffffff
vr0: flags=8843 mtu 1500
lladdr 00:24:01:05:88:ce
priority: 0
media: Ethernet autoselect (100baseTX full-duplex)
status: active
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::224:1ff:fe05:88ce%vr0 prefixlen 64 scopeid 0x2

настроен NAT из локалки в впн

ext_if = "re0"
lan_if = "vr0"
vpn_if = "tun0"
set skip on lo0
pass
block in log (all) on $vpn_if #proto { tcp udp }
block in log (all) on $ext_if #proto { tcp udp }
pass in quick log (all) on $ext_if proto { tcp udp } to ($ext_if) port { echo ssh ftp sftp www https }
pass out log (all) on $vpn_if from $lan_if:network to any nat-to ($vpn_if)

OpenVPN добавляет некоторые строки в route show

Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
0/1 10.139.1.5 UGS 0 341301 - 8 tun0
default 93.185.190.1 UGS 379 120194726 - 8 re0
10.139.1.1/32 10.139.1.5 UGS 0 0 - 8 tun0
10.139.1.5 10.139.1.6 UH 3 0 - 4 tun0
50.7.1.50/32 93.185.190.1 UGS 0 0 - 8 re0
93.185.190/24 link#1 UC 1 0 - 4 re0
93.185.190.1 00:01:5c:31:4d:01 UHLc 2 0 - 4 re0
93.185.190.103 127.0.0.1 UGS 0 0 33144 8 lo0
127/8 127.0.0.1 UGRS 0 0 33144 8 lo0
127.0.0.1 127.0.0.1 UH 3 3456 33144 4 lo0
128/1 10.139.1.5 UGS 0 102850 - 8 tun0
192.168.0/24 link#2 UC 4 0 - 4 vr0
192.168.0.2 00:23:54:c4:84:45 UHLc 4 5133284 - L 4 vr0
192.168.0.3 00:1d:0f:fd:0d:d5 UHLc 0 579710 - L 4 vr0
192.168.0.4 link#2 UHLc 1 183358 - L 4 vr0
192.168.0.7 link#2 UHLc 1 197498 - 4 vr0
224/4 127.0.0.1 URS 0 0 33144 8 lo0

Собственно проблема: на этом же серваке несколько сервисов вебсервер, фтп итд
когда я пытаюсь к ним подключиться извне пакет приходит на интерфейс re0 а уходит в tun0(в впн) из-за этого не удается получить к ним доступ
Помогите, пожалуйста, уже месяц бьюсь

Аватар пользователя Tohin

Копай NAT

Я с pf не игрался... Я пол-года назад с iptables на openwrt по похожей причине воевал.
ИМХО надо с цепочками разбираться, мне кажется именно pf nat'ит пакеты в VPN

Аватар пользователя archfurry

Копал нат

Я все пробовал, такое ощущение что
0/1 10.139.1.5 UGS 0 341301 - 8 tun0
128/1 10.139.1.5 UGS 0 102850 - 8 tun0
перебивают все правила пф'а

Аватар пользователя Tohin

нужно определить причину

Если эти 2 правила из цепочки удалить, то сервисы нормально работают?

Аватар пользователя archfurry

пробовал

эти два правила как раз направляют весь трафик через впн. если их удалить но оставить нат, ничего не работает.
смысл таков, нужно чтобы внутренняя сетка шла через впн а сервер работал только через re0

Аватар пользователя Tohin

Не путай теплое с мягким.

Не путай теплое с мягким. Проблема в работе сервисов связана ТОЛЬКО с этими правилами? ( я это мне для себя, чтобы знать какой ман почитать)
Повторю вопрос: если эти правила погасить, сервисы нормально работают? Про впн забудь на время эксперимента и написания ответа.

Аватар пользователя archfurry

У меня кончились идеи

Не делать же изза этого отдельный сервер под впн
здесь http://habrahabr.ru/post/176963/ прочитал
"ВНИМАНИЕ! Указанная схема не подразумевает использование каких либо сервисов на сервере балансировщике!
Сервер балансировщик должен заниматься только обработкой входящих и исходящих соединений! Попытка опубликования сервисов находящихся на сервере балансировщике повлечет проблемы с недоступностью опубликованного сервиса. Это связано с тем, что при использовании локального сервиса теряются метки и ответ на входящие пакеты уходит в интерфейс и шлюз по умолчанию настроенный на балансировщике"
а я хочу! сервисы на балансировщике(маршрутизаторе)

Аватар пользователя Tohin

прекратить истерику!

1.Указанная схема не подразумевает - это не значит что нет других схем.
2.Кто тебе сказал что у тебя балансировщик?

Пока не ответишь на дважды заданный мной вопрос я сохраню молчание...

Аватар пользователя archfurry

Ну вот

1. вот я и хочу узнать какие бывают схемы.
2. то что у меня re0 и впновский tun0 можно считать что у меня два подключения к интернету. а проблема "входящие пакеты уходит в интерфейс и шлюз по умолчанию настроенный на балансировщике" одна и таже

Аватар пользователя Tohin

Ты издеваешься?

У тебя 2 сервиса:
1. routed - это те 2 правила которые ты привел.
2. PF - который собственно и NAT'ит твою внутреннюю сеть.
Либо изучай сам, что где и как работает или разберись в чем именно косяк (routed или pf) а дальше вместе разберемся в каждом из них.

Аватар пользователя archfurry

route-to

как вариант это пф правило route-to которое должно направить нужный трафик через tun0 но нормальной документации я по нему не нашел и оно вообще отказывается работать