Jump to content
Калькуляторы

Вопрос по mavis tac_plus (от Marc Huber)

Использую этот сервер: http://www.pro-bono-publico.de/projects/tac_plus.html

Есть странность, которую я никак не пойму.

 

Есть такая конфигурация:

       acl = office {
               nac = 10.1.144.3
       }
       group = monitor {
               acl = office
               message = "Login as @monitor (status and audit), username %%u\n"
               default service = deny
               enable = permit
               service = shell {
                       default command = deny
                       default attribute = deny
                       set priv-lvl = 1
                       set orign-priority = 1
                       cmd = show { permit .* }
                       cmd = search { permit .* }
                       cmd = test { permit .* }
                       cmd = ping { permit .* }
                       cmd = enable { permit .* }
               }
       }
       user = check {
               login = clear "password"
               member = monitor@access
       }

 

Не могу выполнить вход под логином check.

В логах такое:

2016-09-23 14:56:33 +0300       10.1.13.127     check    tty1           shell login denied by ACL

Но я выполняю вход из 10.1.144.3.

И если ACL выключить, перезапустить сервис и попытаться войти повторно, то вход под логином check выполняется и в логах вот что:

2016-09-23 14:48:54 +0300       10.1.13.127     check    tty1   10.1.144.3      start   task_id=47      zonelist=UTC    service=shell   priv-lvl=1

Share this post


Link to post
Share on other sites

 

 

#!/usr/local/sbin/tac_plus

syslog default = deny

id = spawnd {
       listen = { port = 49 }
       spawn = {
               instances min = 1
               instances max = 4
       }
}

id = tac_plus {
       debug = ACL PACKET AUTHEN AUTHOR

       authentication log = /store/mgmt/logs/tacacs-access.log
       authorization log  = /store/mgmt/logs/tacacs-author.log
       accounting log     = /store/mgmt/logs/tacacs-account.log

       host = world {
               key = "no-access"
               address = 0.0.0.0/0
       }

       host = access {
               key = secret
               address = 10.1.10.0/24
               address = 10.1.11.0/24
               address = 10.1.12.0/24
               address = 10.1.13.0/24
               address = 10.1.14.0/24
#               single-connection may-close = yes
               prompt = "\n(access level)\n\n"
               welcome banner = "\nUnauthorized access is prohibited.\n Host %%r, client %%c (logged)\n"
               motd banner = "Welcome, %%u. Date is %F, clock is %T (%Z %:z)\n"
       }

       acl = special {
#               nac = 10.1.0.0/16
       }
       acl = special {
               port = tty0
       }

       acl = backbone {
#               nac = 10.1.0.0/16
       }

       acl = office {
#               nac = 10.1.144.3
       }

       acl = local {
               port = tty0
       }

       group = admin {
               acl = special
               message = "Login as @admin (full access), username %%u\n"
               default service = permit
               service = shell {
                       default command = permit
                       default attribute = permit
                       set priv-lvl = 15
               }
       }

       group = service {
               acl = special
               message = "Login as @service (service and maintenance), username %%u\n"
               default service = permit
               service = shell {
                       default command = permit
                       default attribute = permit
                       set priv-lvl = 15
               }
       }

       group = support {
               acl = office
               message = "Login as @support (support and port control), username %%u\n"
               default service = permit
               service = shell {
                       default command = permit
                       default attribute = permit
                       set priv-lvl = 15
               }
       }

       group = monitor {
               acl = office
               message = "Login as @monitor (status and audit), username %%u\n"
               default service = deny
               enable = permit
               service = shell {
                       default command = deny
                       default attribute = deny
                       message permit = "Permitted '%c %a'"
                       message deny = "Denied '%c %a'"
                       set priv-lvl = 1
                       set orign-priority = 1
                       cmd = show { permit .* }
                       cmd = search { permit .* }
                       cmd = test { permit .* }
                       cmd = ping { permit .* }
                       cmd = enable { permit .* }
                       set autocmd = "show version"
               }
       }

       user = admin {
               login = clear "pwd"
               member = admin@access
       }

       user = oper {
               login = clear "pwd"
               member = service@access
       }

       user = check {
               login = clear "pwd"
               member = monitor@access
       }

       user = user1 {
               login = clear "pwd"
               member = support@access
       }

}

 

 

В ходе экспериментов обнаружилось, что ACL, в которых используется nac или port, работают неадекватно.

То работают, то не работают, чаще не работают, закономерности никакой нет.

Share this post


Link to post
Share on other sites

В ходе экспериментов обнаружилось, что ACL, в которых используется nac или port, работают неадекватно.

Глючит случайно не ACL?

        acl = special {
               port = tty0
       }

Share this post


Link to post
Share on other sites

Не уверен, но с тас+ скакал по граблям из-за несинхронности времени на нас и такаксе, там типа члючи шифрования уезжали от несинхрона. Но это было давно.... Смутно помню, что если нас отставал во времени и впадал в 1970г, то тас+ не авторизовывал вообще никого, на диалапе еще дело было...

Share this post


Link to post
Share on other sites

Часы я проверял, они синхронизированы.

Там что-то другое.

Включил дебаг и в дебаге он явно писал, что NAC != 10.1.144.3.

А вот почему - непонятно, в дебаге полученное значение NAC я не нашел.

Share this post


Link to post
Share on other sites

Часы тут не причем, проверено на tacacs+/tac_mavis/radius 2 и radius 3

Если я правильно понял, под NAC подразумевается IP рабочей станции?

Share this post


Link to post
Share on other sites

Удаленное устройство это NAS, по нему ACL срабатывают успешно.

А вот по NAC то работают, то не работают.

Скорей всего проблема может быть в том что свич не в верном формате передает ip address компьютера, который на него подключается или не передает вовсе.

 

P.S. Имеет ли вообще смысл ограничивать входы с определенных IP адресов?

Share this post


Link to post
Share on other sites

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.