URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 75516
[ Назад ]

Исходное сообщение
"Создание vpn га базе OpenBSD + OpenVPN"

Отправлено snevir , 03-Авг-07 15:15 
Стоит сервак с OpenBSD + OpenVPN
server.conf
----------->
daemon openvpn
port 1194
proto udp
dev tun0
dev-type tap
mode server
tls-server
client-to-client
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server-bridge 192.168.2.69 255.255.255.0 192.168.2.70 192.168.2.85
ifconfig-pool-persist /etc/openvpn/easy-rsa/ipp.txt
keepalive 10 120
#tls-auth /etc/openvpn/easy-rsa/ta.key 0
user nobody
group nobody
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 20

------------------->

в филиале клиент под OpenBSD

client.conf

-------------------->
client
dev tun dev-type tap
proto udp
remote 111.222.333.444 1194
resolv-retry infinite
persist-key
persist-tun
mute-replay-warnings
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client1.crt
key /etc/openvpn/keys/client1.key
ns-cert-type server
tls-auth /etc/openvpn/keys/ta.key 1
comp-lzo
verb 3
mute 20

-------------------------->

Клиент нормально соединяется с vpn-сервером. Нормально пингуется локальная сеть, расположенная на стороне сервера. Но та часть сети, которая расположена на стороне vpn-клиента не пингуется и компы на стороне vpn-клиента не видят компы на стороне vpn-сервера.
Причем если vpn-клиент под win2k3, то там tap-интерфейс объединяется с локальной сетевушкой в мост и все работает. Все друг друга хорошо видят.

Пробовал сделать подобное под OpenBSD. Создал
bridgename.bridge0
------------>
add vr0 #локальная сетевушка
add tun0
up

------------>

В этом случае соединение с vpn-сервером проходит успешно. Но пингуется с vpn-клиента сеть расположенная на его стороне, а сеть расположенная на стороне vpn-сервера не видна и не виден локальный адрес vpn-сервера.

Сети в обоих подразделения находятся в одном адресном пространстве 192.168.2.0/24.

Насколько я понял проблему, необходимо настроить на vpn-клиенте под OpenBSD пересылку всех пакетов между vr0(локальной сетевушкой и tun0).
Хотя может я ошибаюсь.

Не подскажете как решить проблему?



Содержание

Сообщения в этом обсуждении
"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено Mikhail , 03-Авг-07 15:40 
>В этом случае соединение с vpn-сервером проходит успешно. Но пингуется с vpn-клиента
>сеть расположенная на его стороне, а сеть расположенная на стороне vpn-сервера
>не видна и не виден локальный адрес vpn-сервера.

tcpdump в руки и смотреть, что куда ходит. + tracert/traceroute.
Может, ping доходит, а ответы не возвращаются, т.к. нет маршрутов в обратну сторону? Может, поможет NAT или статический маршрут? Может, firewall на роутере закрыт?

Примеры правильного построения bridge есть на сайте openvpn, по *bsd не скажу, у меня linux. Но работате и в bridge, и с tun, и с tap без особых проблем.


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено snevir , 03-Авг-07 15:58 
>[оверквотинг удален]
>>не видна и не виден локальный адрес vpn-сервера.
>
>tcpdump в руки и смотреть, что куда ходит. + tracert/traceroute.
>Может, ping доходит, а ответы не возвращаются, т.к. нет маршрутов в обратну
>сторону? Может, поможет NAT или статический маршрут? Может, firewall на роутере
>закрыт?
>
>Примеры правильного построения bridge есть на сайте openvpn, по *bsd не скажу,
>у меня linux. Но работате и в bridge, и с tun,
>и с tap без особых проблем.

фаер выключен. Tcpdump показывает пакеты на одном интерфейсе, входящем в мост, на другом его нет.


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено Mikhail , 03-Авг-07 16:44 
forward разрешен?

"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено Salamander , 03-Авг-07 23:32 
>[оверквотинг удален]
>сеть расположенная на его стороне, а сеть расположенная на стороне vpn-сервера
>не видна и не виден локальный адрес vpn-сервера.
>
>Сети в обоих подразделения находятся в одном адресном пространстве 192.168.2.0/24.
>
>Насколько я понял проблему, необходимо настроить на vpn-клиенте под OpenBSD пересылку всех
>пакетов между vr0(локальной сетевушкой и tun0).

да, правильно.

>Хотя может я ошибаюсь.
>
>Не подскажете как решить проблему?

http://www.csh.rit.edu/~jon/text/papers/tunneling/
вот так делают тру BSD пиплы в далеком 2003 году из того что есть под рукой.

PS что-то мода пошла разнесенные локалки бриджом соединять
с чего это?


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено snevir , 04-Авг-07 12:52 
Проблему в общем я решил.
vpn-клиент:
vr0 локальная сетевуха
tun0 виртуальный интервейс
bridge0 мост включающий tun0 и vr0

Дело в том, что bridge0 поднимается при загрузке, когда интерфейс tun0 не имеет ip-адреса. Когда запускается openvpn он назначает ip-адрес интерфейсу tun0 (он задается при создании ключей для клиента), и tun0 попросту вылетает из bridge0. Необходимо заново его добавлять. После чего все робит.

Возник еще такой вопрос.

А возможна ли такая конфигурация:
Есть четыре филиала A, B, C, D.
Можно ли сделать так что в каждом филиале vpn-server был одновременно и vpn-клиентом
То есть:
A -> B -> C -> D -> A

При таком раскладе при выходе какого либо компа из строя, связь между остальными все равно сохранилась?

Или получится петля?


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено Salamander , 04-Авг-07 13:25 
>[оверквотинг удален]
>Есть четыре филиала A, B, C, D.
>Можно ли сделать так что в каждом филиале vpn-server был одновременно и
>vpn-клиентом
>То есть:
>A -> B -> C -> D -> A
>
>При таком раскладе при выходе какого либо компа из строя, связь между
>остальными все равно сохранилась?
>
>Или получится петля?

что-то подобное сделать можно, если опенБСД бриджи умеют stp
Но решение ИМХО не самое прямое так как
1) опенвпн работает в юзерспейсе, и на толстых каналах будет проблема с производительностью (обязательно)
2) зачем лишнее звено, если все делается штатными средствами


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено snevir , 04-Авг-07 13:29 

>2) зачем лишнее звено, если все делается штатными средствами

Прошу прощения, я еще новичок. Что за штатные средства?


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено snevir , 04-Авг-07 14:16 
Или возможна ли такая конфигурация:

                         vpn-сервер
                         -        -
                       -            -
                     -                -
               vpn-клиент         vpn-клиент
                     -                -
                       -            -
                         -        -
                         vpn-сервер

server.conf

----------------->

daemon openvpn
port 1194
proto udp
dev tun1
dev-type tap
mode server
tls-server
client-to-client
ca /etc/openvpn/keysserver/ca.crt
cert /etc/openvpn/keysserver/server.crt
key /etc/openvpn/keysserver/server.key
dh /etc/openvpn/keysserver/dh1024.pem
server-bridge 192.168.2.69 255.255.255.0 192.168.2.70 192.168.2.85
ifconfig-pool-persist /etc/openvpn/easy-rsa/ipp.txt
keepalive 10 120
#tls-auth /etc/openvpn/easy-rsa/ta.key 0
user nobody
group nobody
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 20

---------------------->

client.conf

----------------------->
client
dev tun0
dev-type tap
proto udp
remote 111.222.333.444 1194
resolv-retry infinite
#nobind
user nobody
group nobody
persist-key
persist-tun
mute-replay-warnings
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/sul.crt
key /etc/openvpn/keys/sul.key
ns-cert-type server
#cipher BF-CBC
comp-lzo
verb 3
mute 20
#chroot /var/empty

------------------------>


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено Salamander , 04-Авг-07 22:42 
>
>>2) зачем лишнее звено, если все делается штатными средствами
>
>Прошу прощения, я еще новичок. Что за штатные средства?

я выше ссылку приводил http://www.csh.rit.edu/~jon/text/papers/tunneling/
там используется gif туннель (можно и GRE), ipsec для шифрования канала, и bridge

все вещи работают на уровне ядра. Для опенБСД не скажу, но в линуксе
на 100Мбитах загрузки незаметно, опенвпн же на среднем писюке (2ГГц)
прокачает со стопроцентной загрузкой ЦПУ.

Еще один плюс - при необходимости можно подключить точку
с железным роутером умеющим АйПиСек, ну или заменить опенБСД на
железку.

Примеров настройки в интернете много, наверное и на русском языке то-же.


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено snevir , 05-Авг-07 07:12 
Спасибо.


"Создание vpn га базе OpenBSD + OpenVPN"
Отправлено snevir , 06-Авг-07 09:25 
Преимущество OpenVPN в том, что он кроссплатформенный.

P.S.
НА

Глюк нашел в OpenVPN на OpenBSD.
К примеру, включается машина с впн-клиентом, но связи с впн-серваком нет. Тогда OpenVPN продолжает пытаться подключиться.
НО! Если с первого раза ему не удалось, то  он не назначил ip-адреса для tun0. И даже если потом соединение установлено, все равно на назначает.
Мое решение - это, конфиге клиента прописать:

---------->
....
up upscript # скрипт который OpenVPN запустит при установлении связи с впн-сервером
.........
---------->

upscript
------------>
ifconfig tun0 111.222.333.444 # ip-адрес взят тот который впн-сервер назначит интерфейсу tun0 у клиента

brconfig bridge0 add tun0 # добавляем tun0 в мост
-------------->

тогда все робит, у меня по крайней мере.