понедельник, 4 апреля 2011 г.

OpenVPN - настройка сервера для клиентов Windows с ограниченными правами

OpenVPN в традиционной своей конфигурации выдает клиентам т.н. net30 сети (маска /30), где Вы видите только лишь себя, и виртуальный "шлюз". Соответственно, для доступности остальных сетей, он автоматически выдает маршруты. Которые невозможно добавить, если клиент запущен от обычного пользователя :(

Спасет нас выдача клиентам адресов из одной подсети. Для этого используется директива "topology subnet" и tap-интерфейс. Во FreeBSD для работы с этим интерфейсом необходимо загрузить соответствующий модуль ядра:
kldload if_tap
Ну и добавим в /boot/loader.conf:
if_tap_load="YES"


Собственно конфиг сервера не сильно отличается от стандартного:
port 2004
topology subnet
proto udp
dev tap
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 10.10.24.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
push "topology subnet"
client-to-client
auth MD5
cipher AES-128-CBC
keepalive 10 40
max-clients 20
user nobody
group nobody
persist-key
persist-tun
verb 3

У клиентов конфиг такой:
port 2004
remote my.openvpn.srv
pkcs12 keys-hors/stanislav.datskevich.p12
proto udp
dev tap
client
auth MD5
cipher AES-128-CBC
keepalive 10 40
persist-key
persist-tun
nobind
verb 3

В нашем случае будут выдаваться адреса вроде:
   IPv4-адрес. . . . . . . . . . . . : 10.10.24.3
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Основной шлюз. . . . . . . . . :

Комментариев нет: