Об изданииПодпискаАрхивЗаказать номерАвторамРекламодателям
О газетеАрхивАвторамРекламодателям
Имя пользователя:
Пароль:
Забыли пароль?
Хочу рассказать об одной возможности openvpn'a, а именно о возможности назначения определённым клиентам свой IP. Делается это с помощью опции конфига
client-config-dir PATH_TO_DIR
где PATH_TO_DIR путь к папке, где храняться настройки для клиентов.
Эта директория состоит из из файлов, имено которых совпадают с именами ключей. В этих файлах можно переопределять некоторые опции, для каждого клиента свои. Когда клиент подключается, сервер просматривает эту папку на предмет наличия файла конфига для клиента. Если таков есть - значение в нём переопределяются. Если нет - используются те, которые заданы в конфиге сервера.
В этой же статье мы поговорим лишь о назначении конкретного IP-адреса. И так, создаём папку, указанную в конфиге сервера (PATH_TO_DIR). Здесь очень важно выставить права на папку. Обычно, сервер openvpn запускается от имени юзера nobody. А директория с конфигом сервера имеет права 0600 и владельцем root:wheel, поэтому, юзеру nobody в эту папку недостучаться. В связи с этим, папку можно создать, например, в /usr/local/etc и назвать её ccd. Права здесь нужно выставить такие, что бы юзер nobody мог к ней достучаться, а так же к файлам в ней. Обычно хватает 0755. Владелец при таких разрешениях неважен.
В этой папку создаём файл с именем клиента и такой строчкой в нём:
ifconfig-push 10.0.11.101 10.0.11.102
где строка означает, что назначить клиенту адрес 10.0.11.101, а 10.0.11.102 будет шлюзом для него. Вот и всё. Теперь перечитываем конфиг сервера (у меня почему-то он после перечитывания просто падал, поэтому я делал рестарт) и смотрим в логи на предмет наличия таких строк:
Wed Aug 26 11:44:31 2009 client_vpn/120.120.120.120:4739 OPTIONS IMPORT: reading client specific options from: /usr/local/etc/ccd/client_vpnWed Aug 26 11:44:31 2009 client_vpn/120.120.120.120:4739 MULTI: Learn: 10.0.11.101 -> client_vpn/120.120.120.120:4739Wed Aug 26 11:44:31 2009 client_vpn/120.120.120.120:4739 MULTI: primary virtual IP for client_vpn/120.120.120.120:4739: 10.0.11.101
Wed Aug 26 11:44:32 2009 client_vpn/120.120.120.120:4739 SENT CONTROL : 'PUSH_REPLY,route 10.0.11.0 255.255.255.0,route 10.0.10.0 255.255.255.0,dhcp-option DNS 10.0.10.1,redirect-gateway,route 10.0.11.0 255.255.255.0,ping 10,ping-restart 120,ifconfig 10.0.11.101 10.0.11.102' (status=1)
Жирным отчётливо видим, что клиенту выдался нужный IP.
Примечание.
В openvpn нельзя просто так назначать какие захочешь адреса. В openvpn адреса разбиты на подсети из 4-ох адресов: network, IP, gateway, broadcast. Поэтому, что бы знать, какие адреса можно было бы выделять, а какие нельзя, приведу таблицу, которая разбита на пары, которые можно выделять клиентам. Первый IP - это выделяемый адрес, второй - это адрес шлюза. В конфиге так и писать (сначала идёт меньший адрес, потом больший):
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18][ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38][ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58][ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78][ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98][101,102] [105,106] [109,110] [113,114] [117,118][121,122] [125,126] [129,130] [133,134] [137,138][141,142] [145,146] [149,150] [153,154] [157,158][161,162] [165,166] [169,170] [173,174] [177,178][181,182] [185,186] [189,190] [193,194] [197,198][201,202] [205,206] [209,210] [213,214] [217,218][221,222] [225,226] [229,230] [233,234] [237,238][241,242] [245,246] [249,250] [253,254]Это всё.
Автор: skeletor
По материалам:
* - необходимое для заполнения поле
Добавить комментарий