无法授权通过 ssh 在 shell 中执行的 tacacs+ 服务器命令

无法授权通过 ssh 在 shell 中执行的 tacacs+ 服务器命令

我已经在这里设置了一个 tacacs+ 服务器和一个 PAM tacacs 客户端-https://github.com/kravietz/pam_tacplus/tree/main

当用户通过 ssh 进入 tacacs 客户端机器时,我希望从 tacacs+ 服务器进行身份验证,并且只允许执行 tacacs+ 服务器配置中允许的 shell 命令。

身份验证有效,但我无法使 shell 命令授权起作用。

为了实现这个目的我需要做哪些改变?

这是 tacacs+ 服务器配置,我只允许 ls 命令:

key = testkey123

user = testuser1 {
        cmd = ls {
                permit .*
        }
        global = cleartext "testpass123"
        service = ppp protocol = ip {
                addr=1.2.3.4
        }
}

我还在客户端上创建了一个本地用户,其凭据与服务器配置中相同。

这是我在 /etc/pam.d 中定义的 PAM 测试模块:

#%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

在 /etc/pam.d 中的 PAM sshd 模块中我添加了:

auth include test
account include test
session include test

在 tacacs+ 配置中,我只允许“ls”命令,但所有命令都可以执行。客户端似乎没有授权服务器允许的命令。

相关内容