FATHER_FBI Posted November 20, 2015 Подскажите, кто нибудь реализовывал у себя такую схему. Есть группа пользователей и есть группа свичей, нужно сделать так, что бы некоторые пользователи на некоторые свичи имели имели полные права а на некоторые свичи RO (3 уровень привилегий), свичи из зоопарка cisco, d-link, etc.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
OKyHb 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
OKyHb 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
OKyHb Posted November 20, 2015 Блин, затронули больную тему, не могу удержаться. Можно ещё использовать разные системы авторизации для разных групп свичей. К примеру, у нас для доступа - radius, агрегация и ядро - tac_plus. Может и не изящно и костыльно, но при наличии единой базы учёток вполне работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
FATHER_FBI 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted November 20, 2015 FreeRADIUS не подходит потому что у него нет ACL ACL не нужны, достаточно грамотно составить БД и научить радиус от туда получать нужный уровень для нужного юзера в целевом месте. Я такое делал, но до продакшена не дошло в виду...особенностей работы организации. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
rz3dwy Posted November 21, 2015 tacacs+ работает с mysql. Там ничего не мешает настроить детальные права. В tacacs+ с текстовым конфигом тоже можно, но конфиг будет большой. Я не знаю можно ли включать одно уст-во в несколько групп. Имейте в виду, D-Link не передает на NAS(как RADIUS, так и tacacs+) атрибут, в котором указан IP-адрес пользователя. На память не помню точное наименование атрибута. Если будете собирать tacacs+ с поддержкой mysql, увеличьте вручную размер поля с хэшем пароля, а то не взлетит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
mixae1 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
OKyHb Posted November 25, 2015 Если я правильно понимаю задачу, когда-то очень давно делал на FreeRadius только средствами конфигурации, при желании можно усложнить. Смысл такой сначала путём hints помещаем то что хотим в нужный домен, например: Классный вариант, спасибо :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...