Невозможно авторизовать команды через сервер tacacs+, выполняемые в оболочке по ssh.
Я настроил сервер tacacs+ и клиент tacacs PAM отсюда — https://github.com/kravietz/pam_tacplus/tree/main.
Когда пользователь подключается по ssh к клиентскому компьютеру tacacs, я хочу пройти аутентификацию на сервере tacacs+ и разрешить выполнение только тех команд в оболочке, которые разрешены в конфигурации сервера tacacs+.
Аутентификация работает, но я не могу заставить работать авторизацию команд оболочки.
Какие изменения мне придется сделать, чтобы это сработало.
Это конфигурация сервера tacacs+, в которой я разрешил только команду ls:
key = testkey123
user = testuser1 {
cmd = ls {
permit .*
}
global = cleartext "testpass123"
service = ppp protocol = ip {
addr=1.2.3.4
}
}
Я также создал локального пользователя на клиенте с теми же учетными данными, что и в конфигурации сервера.
Это тестовый модуль PAM, который я определил в /etc/pam.d:
#%PAM-1.0
auth sufficient /lib/security/pam_tacplus.so server=127.0.0.1 secret=testkey123
account sufficient /lib/security/pam_tacplus.so server=127.0.0.1 secret=testkey123 service=ppp protocol=ip
session sufficient /lib/security/pam_tacplus.so server=127.0.0.1 secret=testkey123 service=ppp protocol=ip
В модуле PAM sshd, присутствующем в /etc/pam.d, я добавил:
auth include test
account include test
session include test
В конфигурации tacacs+ я разрешил только команду «ls», но все команды могут быть выполнены. Похоже, клиент не авторизует разрешенные команды с сервера.