OpenVPN + RADIUS + разделение клиентов

RIP, OSFP, BGP, MPLS/VPLS
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Здравствуйте.
Имеем RouteOS 6.44 на микротике и клиенты на Windows.
OpenVPN на Mikrotik работает, авторизация через RADIUS (Windows сервер) тоже работает.
Но нужно например сделать пользователей админов и пользователей пользователей.

Обычной схемой можно реализовать просто пользователей. Настроен на микротике PPP профиль, там указан пул адресов для клиентов и Local Address. Я не использую Secret закладку т.к. локальные пользователи не нужны авторизация через RADIUS.

Например чтобы разделить пользователей я могу завести два Pool адресов, назвать из for_user и for_admin.
Но вот профиль для сервера будет только один. и я ни как не разделю Local Address и не сделаю его разным, и тут проблемы с маршрутизацией.

И маршрутами я просто разделю куда смогут ходить пользователи а куда админы.
Рад буду мыслям и помощи.

PS локальными админами не очень хотелось бы через Secret т.к. всетаки не зря RADIUS прикручивал.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

Приветствую.

С радиуса попробуйте возвращать параметр Framed-Pool:
IP pool name (on the router) from which to get IP address for the client.
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Здравствуйте.
Да я так делал, все классно. Возвращается пул адресов нужный который заведен для клиентов.
Но когда клиент подключается то создаётся запись в Route в которой Perf. Source это адрес вписанный в профиле ppp где Local Address.

Клиенты подключаются получают разные адреса, но вот маршрут у всех клиентов на этот адрес который в профиле ppp (потому что в OPVNServer можно выбрать только один профиль).

И на клиенты отказываются подключаться если в конфиге route <подсети выданная через pool> <маска> <ip в профиле ppp Local Address>

Может я не туда копаю
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

freeddos писал(а): 20 июн 2019, 20:12 Но когда клиент подключается то создаётся запись в Route в которой Perf. Source это адрес вписанный в профиле ppp где Local Address.
Всё верно, так и должно быть.
freeddos писал(а): 20 июн 2019, 20:12 Клиенты подключаются получают разные адреса, но вот маршрут у всех клиентов на этот адрес который в профиле ppp (потому что в OPVNServer можно выбрать только один профиль).
Ну, тоже пока, вроде, всё хорошо.
freeddos писал(а): 20 июн 2019, 20:12 И на клиенты отказываются подключаться если в конфиге route <подсети выданная через pool> <маска> <ip в профиле ppp Local Address>
Вот эту часть не понял. Кто отказывается подключаться и почему?..
freeddos писал(а): 20 июн 2019, 20:12 Может я не туда копаю
Может, попробуйте задачу сформулировать с примерами? А то я пока не понимаю, что вы хотите получить в итоге...

Посмотрите ещё в сторону атрибута Mikrotik-Address-List — в этот List будет добавляться адрес клиента на время его подключения.
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Задача такая что бы разделить маршрутами одних пользователей пускать на одни сервера других на другие.
Есть две группы users и admins они конектяться через radius. Для этих каждой группы radius выдает значение pool этим клиентам.
Сейчас получается клиенты конектяться получают адрес из нужного pool но маршрут имеют с perf source одинаковый (например 192.168.0.1)
В конфиге клиента типа:
route 172.17.0.0 255.255.255.0 192.168.0.1
А в другом
route 172.17.1.0 255.255.255.0 192.168.0.1
Клиенты должны ходить в разные подсети. Но если в конфиге есть параметр route с маршрутом клиент не коннектиться, а если убрать то подключается.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

А по-нормальному, фильтром файрвола, это не получится сделать? Добавлять одних клиентов в один адрес-лист, других - в другой, потом разрешить, кому куда надо, и запретить всё остальное.

Про pref source и почему клиент не коннектится с параметром route - всё ещё не понимаю. Наверное, надо изучать логи на клиенте?..
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Просто каким образом может быть для всех одинаковый perf source если он будет вообще в другой подсети.
Например perf source = 192.168.10.1
А клиентам выдаются адреса из пула 192.168.1.0 и 192.168.2.0, значит нужно им расширять маску чтобы они могли достукиваться до общего шлюза?
Framed-IP-Netmask если этот параметр ставить на Radius то нужную маску не получают клиенты.
А без установки Local Address в профиле не работает.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

freeddos писал(а): 21 июн 2019, 12:17 Просто каким образом может быть для всех одинаковый perf source если он будет вообще в другой подсети.
Вот таким, это PPP, тут нет привязки шлюзов и подсетей, вот этого всего. Ничего не мешает сделать local-address=1.2.3.4 и раздавать клиентам адреса из пула 5.6.7.(0-255). Это обычная практика.
freeddos писал(а): 21 июн 2019, 12:17 А клиентам выдаются адреса из пула 192.168.1.0 и 192.168.2.0, значит нужно им расширять маску чтобы они могли достукиваться до общего шлюза?
Ну, если клиент не добавляет маршрут к адресу шлюза через VPN-интерфейс - то можно использовать интерфейс в качестве шлюза, в PPP это работает аналогично, в отличие от Ethernet.
freeddos писал(а): 21 июн 2019, 12:17 Framed-IP-Netmask если этот параметр ставить на Radius то нужную маску не получают клиенты.
Framed-IP-Netmask - если его на радиусе указать, на роутере создастся маршрут к адресу клиента с такой маской, не более. Сам клиент об этом ничего не узнает. Это написано в документации
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Я немного не понимаю, подключается клиент.
Он получает адрес: 192.168.0.1 из пула.
При этом таблице route list создается запись типа
dst.address gateway Perf. source
DAC - 192.168.0.1 - <имя интерфейса> - 1.2.3.4

При этом какой маршрут должен быть на клиенте чтобы зарулить трафик в этот VPN интерфейс для подсети например 172.17.0.0
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

На клиенте должен быть маршрут к подсети 172.17.0.0 через <имя интерфейса на клиенте>. На Шindoшc такие маршруты, кажется, обозначаются как On-link. И тогда нет никаких заморочек с адресом на стороне роутера.

Но такой маршрут не является никакой защитой от того, что клиент куда-нибудь ещё влезет. Ничего клиенту не мешает прописать себе маршрут 0.0.0.0/0 через VPN - и ходить куда заблагорассудится. Поэтому я и прошу сформулировать конечную цель, а не ваше видение решения задачи.
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

И если в конфиге клиента прописать
"route 172.17.0.0 255.255.255.0 1.2.3.4" или "route 172.17.0.0 255.255.255.0"
То на клиенте появляются множественные сообщения типа
"TEST ROUTES: 0/1 succeeded len=1 ret=0 a=0 u/d=up
Route: Waiting for TUN/TAP interface to come up..."
без параметра route в конфиге подключается.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

Т.е. у вас проблема с клиентом OVPN, а вы киваете на сервер? =)

https://yamilker.livejournal.com/163312.html - пробовали? Первый же результат в Гуголе...
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Пробовал не помогает.
Если прописать маршрут в конфиге то не подключается.

Подключился без маршрутов в конфиге - клиент подключился. получил адрес из нужного пула (через параметр радиуса).
Прописал в ручную маршрут до внутренней подсети с серверами через roure add <серверная подсеть> mask 255.255.255.0 <perf souce адрес> (остальные маршруты запретил).
И вуаля заработало, с клиента трафик идет в серверную подсеть нормально.

В общем проблему на клиенте с маршрутами буду решать.
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Оказалось можно а конфиге клиента использовать
route-method exe
route <подсети куда нужно попасть> <маска> <внешний ip oenvpn сервера>
И маршрут прописался и приконектился.
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

На тестовой Роулинг завелся на клиенте.
Но тот же клиент (заведомо рабочий) не поднялся на рабочем микротики. С теми же ошибками выаваливался.
Но Коннект на микротики есть когда начинают эти ошибки сыпаться, даже интерфейс получает адрес, а вот маршрут на клиенте не прописывается.
Есть предположение что это потому что роутинг на стороне микротики не настроен - такое может быть?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение Chupaka »

Нет, от роутинга со стороны роутера ничего зависеть не должно — роутинг ведь может быть и несимметричным. Странно, что ошибки те же — их-то причина, вроде как, устранена методом exe...
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

Перепробовал много разных способов методом тыка. все равно та же ошибка и маршрут не прописывается.
Но если в конфиге убрать "route"
и прописать ручками типо "route add .... ", но важно указать IF (интерфейс) иначе не работает.
Может как раз дело в добавлении в маршруты интерфейса.
freeddos
Сообщения: 21
Зарегистрирован: 20 июн 2019, 18:25

Re: OpenVPN + RADIUS + разделение клиентов

Сообщение freeddos »

С маршрутами проблема оказалась и с маской.
т.к. есть несколько подсетей пользователей и в профиле ovpn стоит ip (например какой нибудь 172.17.10.1) в виде perf. source.
дело в мастке в настройках ovpn, устанавливаю маску 20 например.
При подключении добавляется маршрут автоматом.