FATHER_FBI Posted November 20, 2015 Posted November 20, 2015 Подскажите, кто нибудь реализовывал у себя такую схему. Есть группа пользователей и есть группа свичей, нужно сделать так, что бы некоторые пользователи на некоторые свичи имели имели полные права а на некоторые свичи RO (3 уровень привилегий), свичи из зоопарка cisco, d-link, etc.. Вставить ник Quote
OKyHb Posted November 20, 2015 Posted November 20, 2015 У нас используется похожая схема. Правда, с некоторыми оговорками: tac_plus отсюда учётки пользователей и группы в LDAP у L3 железок (группа Core) отдельный ip диапазон Упрощённый кусок конфига tac_plus при этом выглядит след. образом: host = Core { address = 10.0.255.0/24 key = <ключ 1> } host = Switches { address = 10.0.0.0/16 key = <ключ 2> } acl = ANY { nas = 0.0.0.0/0 } acl = no_core-acl { nas = not 10.0.255.0/24 } group = read-only { default service = permit enable = deny service = shell { default command = permit default attribute = permit set priv-lvl = 2 } } group = read-all { default service = permit enable = deny service = shell { default command = deny default attribute = deny set priv-lvl = 15 cmd = show { permit .* } cmd = traceroute { permit .* } } } group = read-write { default service = permit enable = login service = shell { default command = permit default attribute = permit set priv-lvl = 15 } } group = admin { message = "[Admin privileges]" member = read-write } group = noc { message = "[NOC privileges]" member = read-all@Core member = read-write } group = support { message = "[sUPPORT privileges]" acl = no_core-acl member = read-only } Вставить ник Quote
OKyHb Posted November 20, 2015 Posted November 20, 2015 Вообще, если задача только в разделении привилегий (tacacs accounting и command authorization не нужны или не поддерживаются), то можно обойтись и freeradius. На freeradius-2.2.6 используем конфиг users в таком стиле DEFAULT Ldap-Group == "tacacs-admin" User-Service-Type = Administrative-User, Dlink-User-Level = Admin, Mikrotik-Group = full DEFAULT Ldap-Group == "tacacs-noc" User-Service-Type = Login-User, Cisco-AVPair = "shell:priv-lvl=15" Dlink-User-Level = Admin, Mikrotik-Group = write DEFAULT NAS-Identifier =~ "^aggregation-*", Ldap-Group == "tacacs-support" User-Service-Type = Login-User, Cisco-AVPair = "shell:priv-lvl=2" Mikrotik-Group = read Хотя и самому интересно, как другие решают эту задачу :) Вставить ник Quote
OKyHb Posted November 20, 2015 Posted November 20, 2015 Блин, затронули больную тему, не могу удержаться. Можно ещё использовать разные системы авторизации для разных групп свичей. К примеру, у нас для доступа - radius, агрегация и ядро - tac_plus. Может и не изящно и костыльно, но при наличии единой базы учёток вполне работает. Вставить ник Quote
FATHER_FBI Posted November 20, 2015 Author Posted November 20, 2015 (edited) FreeRADIUS не подходит потому что у него нет ACL Вообще, если задача только в разделении привилегий (tacacs accounting и command authorization не нужны или не поддерживаются), то можно обойтись и freeradius. На freeradius-2.2.6 используем конфиг users в таком стиле DEFAULT Ldap-Group == "tacacs-admin" User-Service-Type = Administrative-User, Dlink-User-Level = Admin, Mikrotik-Group = full DEFAULT Ldap-Group == "tacacs-noc" User-Service-Type = Login-User, Cisco-AVPair = "shell:priv-lvl=15" Dlink-User-Level = Admin, Mikrotik-Group = write DEFAULT NAS-Identifier =~ "^aggregation-*", Ldap-Group == "tacacs-support" User-Service-Type = Login-User, Cisco-AVPair = "shell:priv-lvl=2" Mikrotik-Group = read Хотя и самому интересно, как другие решают эту задачу :) Интересные у вас атрибуиты Dlink-User-Level атрибут передает номер от 1 до 5, каждый номер отвечает за свой уровень привилегий dlink-Privelege-Level = 5 У микротика атрибут указывает на группу к которой относится пользователь, а у микротика их всего 2, это user и full Mikrotik-Group = "full" Есть рабочая схема и Tacacs и RADIUS Но стала не стандартная задача Есть 3 свича А, Б и С и есть пользователь lamer, которому нужно организовать доступ на свич А с 15 уровнем привилегий, на свич Б с 3 уровнем привилегий а на свич С вообще закрыть доступ. Как поступить со свичами А и Б я знаю а вот как со свичем С? Edited November 20, 2015 by FATHER_FBI Вставить ник Quote
Ivan_83 Posted November 20, 2015 Posted November 20, 2015 FreeRADIUS не подходит потому что у него нет ACL ACL не нужны, достаточно грамотно составить БД и научить радиус от туда получать нужный уровень для нужного юзера в целевом месте. Я такое делал, но до продакшена не дошло в виду...особенностей работы организации. Вставить ник Quote
rz3dwy Posted November 21, 2015 Posted November 21, 2015 tacacs+ работает с mysql. Там ничего не мешает настроить детальные права. В tacacs+ с текстовым конфигом тоже можно, но конфиг будет большой. Я не знаю можно ли включать одно уст-во в несколько групп. Имейте в виду, D-Link не передает на NAS(как RADIUS, так и tacacs+) атрибут, в котором указан IP-адрес пользователя. На память не помню точное наименование атрибута. Если будете собирать tacacs+ с поддержкой mysql, увеличьте вручную размер поля с хэшем пароля, а то не взлетит. Вставить ник Quote
mixae1 Posted November 22, 2015 Posted November 22, 2015 Хотя и самому интересно, как другие решают эту задачу :) Если я правильно понимаю задачу, когда-то очень давно делал на FreeRadius только средствами конфигурации, при желании можно усложнить. Смысл такой сначала путём hints помещаем то что хотим в нужный домен, например: hints: DEFAULT NAS-IP-Address <= 10.255.255.255 User-Name := `%{User-Name}@zone255` DEFAULT Calling-Station-Id =~ "10.0.1.*" User-Name := `%{User-Name}@disp1` В hints важен порядок, поэтому как в ACL самое специфичное наверх. В данном случае не зная пароля от zone255 никто туда не попадёт. Потом уже в users навешиваем то что надо. Пример для Cisco, соответственно уровни 15 и 10. users: Admin@zone255 Crypt-Password = "******" Service-Type = Login-User, cisco-avpair = "shell:priv-lvl=15" Admin@disp1 Crypt-Password = "******" Service-Type = Login-User, cisco-avpair = "shell:priv-lvl=10" Вставить ник Quote
OKyHb Posted November 25, 2015 Posted November 25, 2015 Если я правильно понимаю задачу, когда-то очень давно делал на FreeRadius только средствами конфигурации, при желании можно усложнить. Смысл такой сначала путём hints помещаем то что хотим в нужный домен, например: Классный вариант, спасибо :) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.