Поиск

Газета FOSS News

17 августа 2010

О газете
Архив
Авторам
Рекламодателям

 

Кабинет читателя

Вход в систему
Введите имя пользователя и пароль для входа в систему:



Наши друзья


Ротация кнопок.

Наша кнопка:


Портал RootUA

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

openvpn: каждому клиенту свой IP

Хочу рассказать об одной возможности 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_vpn
Wed 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:4739
Wed 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

По материалам:

Bookmark and Share

Loading ...

Комментарии

Добавить комментарий

* - необходимое для заполнения поле

*




Изображение CAPTCHA для предотвращения спама
Если слово непонятно, нажмите здесь..
*
*
Нет комментариев
 
© 2004-2009 Журнал "Root UA" - свидетельство СМИ: КВ №14786-3757Р
Газета "FOSS News" - свидетельство СМИ: ОД №1355-236-Р
При использовании материалов портала ссылка на Root.UA обязательна, для интернет-изданий – гиперссылка, не закрытая для индексации поисковыми системами.

sitenews