Subject: Re: [Govpn-devel]Как удалить tap-интерфейс, когда клиент отключился?

From: Sergey Matveev <[email-masked]>
Date: Sun, 03 Apr 2016 11:31:18 +0300

*** Popovich Dmitry <[email-masked]> [Sat, 2 Apr 2016 13:35:46 +0000]:
>1.       Клиенту параметры можно только в командной строке передавать или он читает какой-то конфиг? Можно ли, как, например с сервером, после подключения заставить его также автоматически создать tap-интерфейс и произвести с ним манипуляции? (поднять, назначить адрес)?

Так как у клиента не много опций (в отличии от сервера где для каждого
клиента можно указать множество), то всё задаётся через командную строку.
Клиент предполагает что TAP интерфейс уже должен быть создан. Ведь какая
разница когда например будет создан интерфейс: до запуска govpn-client
или после handshake? Мне кажется что без разницы и поэтому для простоты
интерфейс создаётся до его запуска. Но такие вещи как назначение адреса
конечно же можно сделать после handshake через -up опцию командной
строки.

>2.       Будет ли рабочим такой вариант - поднять бридж на сервере, назначить ему адрес, повесить на него dhcp-server и присоединять и отсоединять интерфейсы подключающихся клиентов?

Да, безусловно.

>3.       Не могли бы Вы поделиться своими скриптами, конфигами и use cases?

Раньше у меня был вариант как-раз как ваш второй пункт: создавались
интерфейсы, добавлялись в bridge. Но я в временном текстовом файле
сохранял соответствия между пользователем и уже созданным (или ещё нет)
интерфейсом: соответственно либо создавал либо говорил использовать уже
имеющийся.

Сейчас же у меня просто статические интерфейсы для каждого клиента. В
конфиге сервера для всех клиентов такие записи:

    stargrave:
      iface: tap0
      verifier: $argon2d$m=4096,t=128,p=1$...
      up: /home/govpn/up/stargrave.sh
    alpha:
      iface: tap1
      verifier: $argon2d$m=4096,t=128,p=1$...
      timesync: 30
    beta:
      iface: tap2
      verifier: $argon2d$m=4096,t=128,p=1$...
    [...]

stargrave.sh на сервере прост:

    #!/bin/sh

    /sbin/ifconfig $GOVPN_IFACE inet 192.168.30.1/24 mtu 1410
    /sbin/ifconfig $GOVPN_IFACE inet6 2001:.../126 -ifdisabled

На клиенте up.sh скрипт таков:

    #!/bin/sh

    /sbin/ifconfig $GOVPN_IFACE inet 192.168.30.2/24 mtu 1410 up
    /sbin/route add default 192.168.30.1

    /sbin/ifconfig $GOVPN_IFACE inet6 2001:.../126 -ifdisabled
    /sbin/route -6 add default 2001:...

а когда-то был таким:

    #!/bin/sh

    /sbin/dhclient $GOVPN_IFACE
    /sbin/rtsol $GOVPN_IFACE

-- 
Happy hacking