OpenVPN с TAP в OpenBSD |
[исправить] |
OpenBSD не имеет устройства tap(4), которое по своей сути является простым
туннелем 2-го уровня OSI.
Вместо этого необходимо использовать tun(4), причём для последнего нужно перед
запуском openvpn установить link0.
Также, при использовании --pool следует учесть, что openvpn передаёт различные параметры настройки
для TAP- и tun-соединений, из-за чего необходимо отказываться от предлагаемого выполнения ifconfig
самим OpenVPN и вместо этого юзать свой скрипт, в который в простейшем случаю жёстко прописываются
адрес удалённого конца туннеля и broadcast-адрес. В итоге получается примерно такой набор команд:
$ sudo cat /etc/hostname.tun1
up link0
!openvpn --config /etc/openvpn/mytunnel --verb 0 & sleep 5
$ sudo cat /etc/openvpn/mytunnel.conf
dev tun1
dev-type tap
pull
ifconfig-noexec
up "/etc/openvpn/mytunnel.up"
auth-user-pass "/etc/openvpn/mytunnel.pwd"
$ cat /etc/openvpn/mytunnel.up
#!/bin/sh
TUN_DEV="$1"; shift
TUN_MTU="$1"; shift
LINK_MTU="$1"; shift
LOCAL_IP="$1"; shift
NETMASK="$1"; shift
MODE="$1"; shift
ifconfig $TUN_DEV $LOCAL_IP 10.1.2.1 netmask $NETMASK broadcast 10.1.2.255 mtu $TUN_MTU
Учтите, что для того, чтобы auth-user-pass позволял указывать файл для чтения паролей,
необходимо собирать OpenVPN с опцией "--enable-password-save", которая в текущей версии
порта (openvpn-2.1_rc7) не используется. Для исправления этой проблемы лучше всего подправить
/usr/ports/net/openvpn/Makefile, добавив "--enable-password-save" в CONFIGURE_ARGS.
Разумеется, в этом нет необходимости, если не требуется обеспечить полностью
автоматический запуск OpenVPN.
|
|
|
|
Раздел: Корень / Администратору / Сетевая подсистема, маршрутизация / Туннелинг, VPN, VLAN |