Jump to content

Recommended Posts

Posted

Подскажите, кто нибудь реализовывал у себя такую схему.

Есть группа пользователей и есть группа свичей, нужно сделать так, что бы некоторые пользователи на некоторые свичи имели имели полные права а на некоторые свичи RO (3 уровень привилегий), свичи из зоопарка cisco, d-link, etc..

Posted

У нас используется похожая схема. Правда, с некоторыми оговорками:

  • 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
   }

Posted

Вообще, если задача только в разделении привилегий (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

 

Хотя и самому интересно, как другие решают эту задачу :)

Posted

Блин, затронули больную тему, не могу удержаться.

Можно ещё использовать разные системы авторизации для разных групп свичей. К примеру, у нас для доступа - radius, агрегация и ядро - tac_plus. Может и не изящно и костыльно, но при наличии единой базы учёток вполне работает.

Posted (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 by FATHER_FBI
Posted
FreeRADIUS не подходит потому что у него нет ACL

ACL не нужны, достаточно грамотно составить БД и научить радиус от туда получать нужный уровень для нужного юзера в целевом месте.

Я такое делал, но до продакшена не дошло в виду...особенностей работы организации.

Posted

tacacs+ работает с mysql. Там ничего не мешает настроить детальные права. В tacacs+ с текстовым конфигом тоже можно, но конфиг будет большой. Я не знаю можно ли включать одно уст-во в несколько групп. Имейте в виду, D-Link не передает на NAS(как RADIUS, так и tacacs+) атрибут, в котором указан IP-адрес пользователя. На память не помню точное наименование атрибута.

 

Если будете собирать tacacs+ с поддержкой mysql, увеличьте вручную размер поля с хэшем пароля, а то не взлетит.

Posted

Хотя и самому интересно, как другие решают эту задачу :)

 

Если я правильно понимаю задачу, когда-то очень давно делал на 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"

Posted

Если я правильно понимаю задачу, когда-то очень давно делал на FreeRadius только средствами конфигурации, при желании можно усложнить. Смысл такой сначала путём hints помещаем то что хотим в нужный домен, например:

 

Классный вариант, спасибо :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.