LINUX.ORG.RU
ФорумAdmin

как задать статичный Ip клиенту на связке openvpn + freeradius ?

 , ,


0

1

Всем доброго дня.

Подскажите, пожалуйста, вот такой момент. Хочу настроить статические ip для каждого конкретного клиента на openvpn. у На freeradius сделал юзера user1, проверяю, всё работает, коннекчусь норрмально под каким-то рандомным Ip из 10.8.0.0/24.

В интернетах написано, что это неважно, где создаётся клиент (например, читал тут http://safesrv.net/simple-guide-to-assign-openvpn-users-static-ips/) - хоть на радиусе, хоть где. Поэтому наличие радиуса я во внимание не принял.

Судя по мануалу openvpn, есть два варианта назначать статичный ip.

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

client-config-dir /etc/openvpn/ccd
и в этой директории создать файл с именем нужного клиента, в моём случае это /etc/openvpn/ccd/user1
ifconfig-push 10.8.0.9 10.8.0.10
рестартую сервер, подключаюсь опять с рандомным ip.

Вариант второй: В конфиге сервера прописать директиву с указанием файла, в котором будут имена и айпишники юзеров. ifconfig-pool-persist /etc/openvpn/ipp.txt

user1,10.8.0.9
рестартую сервер, подключаюсь опять с рандомным ip.

Не уверен, что я всё делаю правильно, но, вот не получается чего-то.

ip указываю верные, в мануале там указано, какие ip могут иметь клиенты.

В логах Openvpn ошиблок нет. Права попробовал дать 777 на указанные файлы и папки; не помогло. Да у меня и так Openvpn от рута.

вот конфиг сервера:

local x.x.x.x #server ip
port 1194
proto tcp
dev tun0
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 6
tcp-queue-limit 256
status /etc/openvpn/openvpn-status.log
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf 
client-cert-not-required
script-security 3
# client-config-dir ccd 
ifconfig-pool-persist ipp.txt
в последних двух строчках пробовал полные пути давать, не помогло.

Клиентский конфиг:

client
dev tun
proto tcp
remote x.x.x.x 1194 # – server IP and OpenVPN Port
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
reneg-sec 0
verb 3

Ответ на: комментарий от Piter_prbg

И как директива pull на клиенте позволит им менять IP на свои? Скорее наоборот, не? Ты вообще знаешь зачем эта директива нужна? Ты вообще в курсе, что она у тебя уже установлена(погугли что даёт директива client)?

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1 )
Ответ на: комментарий от Pinkbyte

когда trancefer сказал что директива должна быть на клиенте, я подумал, что он имеет ввиду, что явно надо указывать Ip в конфиге клиента.

я не могу найти директиву pull в мануале по Openvpn. про директиву client сказано, что она определяет роль хоста - client или server.

Pinkbyte, я пробовал через ccd, это первый вариант в моём заглавном сообщении описан, он всёравно просто выдаёт рандомные айпи.

Piter_prbg ()
Ответ на: комментарий от Piter_prbg

он всёравно просто выдаёт рандомные айпи

покажи как пробовал, добавь ccd-exclusive - может ты неверно ccd задаешь, с ccd-exclusive клиенты не указанные в ccd не смогут подключиться вообще

Pinkbyte ★★★★★ ()
Ответ на: комментарий от trancefer

--pull This option must be used on a client which is connecting to a multi-client server. It indicates to OpenVPN that it should accept options pushed by the server, provided they are part of the legal set of pushable options (note that the --pull option is implied by --client ).

In particular, --pull allows the server to push routes to the client, so you should not use --pull or --client in situations where you don't trust the server to have control over the client's routing table.

Формально был не прав, на практике хуже от этого не будет.

А вот реакция некоторых граждан показательна.

trancefer ★★ ()
Ответ на: комментарий от trancefer

Ты и практически был неправ, но продолжаешь дергаться.

dhameoelin ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Pinkbyte, как показать, как я пробовал? все настройки же я привёл.

Попробовал в server.conf добавить ccd-exclusive, но юзеры, не указанные в директории ccd всеравно коннектятся.

Piter_prbg ()
Ответ на: комментарий от Piter_prbg

все настройки же я привёл.

содержимое директории ccd покажи. И содержимое файлов в этой директории

юзеры, не указанные в директории ccd всеравно коннектятся.

openvpn рестартил после этого?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

У меня в директории /etc/openvpn/ccd/ Лежит только файл /etc/openvpn/ccd/user1 c содержимым:

ifconfig-push 10.8.0.9 10.8.0.10

Piter_prbg ()
Ответ на: комментарий от Piter_prbg

На клиенте всё нормально, смотреть точно надо сервер. Почему-то openvpn таки не читает ccd/user1. Посмотри логи сервера, он там точно не ругается?

berrywizard ★★★★★ ()
Ответ на: комментарий от Piter_prbg

Отключи RADIUS и проверь либо настрой выдачу адресов RADIUS'ом. Очень похоже, что из-за RADIUS не отрабатывают CCD. У меня при гуглении «openvpn radius plugin client configuration directory» первый результат:

OpenVPN: Integration with LinOTP - LinOTP - The Open ...
http://www.linotp.org/howtos/howto-openvpn.html
Перевести эту страницу
openVPN plugin: openvpn-auth-radius; PAM: libpam-radius-auth ... #The plugin may interfere with the client configuration directories #if necessary ...

berrywizard ★★★★★ ()
Ответ на: комментарий от berrywizard

Блин, прочитал тему. Ну, тогда только второй вариант.

berrywizard ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.