Описание схемы: 

В качестве TACACS-Server будет использоваться TACACS Plus на Ubuntu 20.04. В данном примере будут приведены конфигурации TACACS Plus и маршрутизатора ESR для авторизации команд подключаемых к маршрутизатору ESR по SSH.  В качестве примера создадим пользователя "user" и запретим ему выполнение команды "show system".

Маршрутизатор ESR, в отличие от других венторов, транслирует на сервер Tacacs команду и параметры одним аргументом. Например "show system" или "show version" - полные команды без аргументов. Для этого необходимо конфигурационный файл tacacs настроить так, чтобы он понимал две команды как один аргумент.

1. Настройка TACACS Plus:

Со стороны TACACS Plus необходимо указать ключ для клиентов, а  также список пользователей для аутентификации.
Ключ для подключения клиентов, как и список разрешаемых/запрещаемых команд настраивается в файле tac_plus.conf
Пример настройки ключа (key), а также пример конфигурации пользователя user с уровнем привилегии 15 и установкой запрета выполнения команды "show system":

root@user:~# cat /etc/tacacs+/tac_plus.conf

{

.........
    key = tacacskey 
.........

}

group = show-user {
    service = shell {
            set priv-lvl = 15
            cmd = "show system" { deny "" }
            default command = permit
    }       

user = user {
    password = clear password
    member = show-user
}


2. Исходная настройка маршрутизатора ESR:

security zone trusted
exit
security zone untrusted
exit

interface gigabitethernet 1/0/1
  security-zone trusted
  ip address 192.168.39.2/30
exit
interface gigabitethernet 1/0/2
  security-zone untrusted
  ip address 192.168.32.2/30
exit


Для аутентификации пользователей SSH, а также настройки авторизации команд через TACACS-server, необходимо создать соответствующие профиля и привязать их к SSH. Функция mode break задаёт последовательность методов авторизации, которые будут использоваться следующими в случае недоступности более приоритетного :

aaa authentication login TACACS tacacs
aaa authorization mode break
aaa authorization commands TACACS tacacs local

line ssh
  login authentication TACACS
  commands authorization TACACS
exit


Настройка TACACS-server и включение SSH:

tacacs-server host 192.168.39.1
  key ascii-text tacacskey
  source-address 192.168.39.2
exit


Пример настройки Firewall для подключения по SSH (разрешим маршрутизатору (зона self) обрабатывать входящие пакеты из зоны untrusted на dest.port 22 протокола TCP):

object-group service SSH_PORT
  port-range 22
exit
security zone-pair untrusted self
  rule 1
    action permit
    match protocol tcp
    match destination-port object-group SSH_PORT
    enable
  exit
exit


Итоговая конфигурация:

object-group service SSH_PORT
  port-range 22
exit

aaa authentication login TACACS tacacs

aaa authorization mode break
aaa authorization commands TACACS tacacs local

tacacs-server host 192.168.39.1
  key ascii-text tacacskey
  source-address 192.168.39.2
exit

line ssh
  login authentication TACACS
  commands authorization TACACS
exit

security zone trusted
exit
security zone untrusted
exit

interface gigabitethernet 1/0/1
  security-zone trusted
  ip address 192.168.39.2/30
exit

interface gigabitethernet 1/0/2
  security-zone untrusted
  ip address 192.168.32.2/30
exit

security zone-pair untrusted self
  rule 1
    action permit
    match protocol tcp
    match destination-port object-group SSH_PORT
    enable
  exit
exit

ip ssh server

3. Диагностика выполненных действий:

Подключимся с ПК к маршрутизатору ESR по SSH пользователем user (пароль password) и проверим запрет на выполнение команды "show system":

root@user:/$ ssh user@192.168.32.2
Password: password

********************************************
*            Welcome to ESR-15R            *
********************************************


esr# show users 
SID    User name              Logged in at          Protocol              Host                     Timers Login/Priv         Level   
----   --------------------               -------------------      -------------------   --------------------                   -----------------              -----   
1 *       user                 2026-06-12 11:04:15   SSH                   192.168.32.1           00:29:58/00:00:00       15      

1 user sessions.

esr# show aaa tacacs-servers 
Timeout:       3 
DSCP:          63 

Host                 Description                Port         Priority   VRF                Source                    Key                    
----------------    --------------------        ------       --------   ----------------   ----------------          --------------------   
192.168.39.1                                    49           1           --                192.168.39.2              9FBD106EBF1B49F8851D   
                                                                                                             

esr# show system 
Error: Command authorization failed

esr# show version 
Boot version:
  1.37.4.2 (2025-12-03 14:29:33)
SW version:
  1.37.4 build 2[4b06f2c798] (2025-12-03 14:25:53)
HW version:
  1v2