使用TACACS(Cisco ACS)验证Linux sshd

我们的网络工程团队使用多个 Linux服务器进行 syslog collection,配置备份,tftp等…

我们希望在Cisco ACS machine上使用TACACS作为我们的中央认证服务器,我们可以在这些服务器上更改密码并在这些Linux服务器上记录用户活动.如果tacacs服务中断,我们还需要回退到静态密码.

我们如何让CentOS上的sshd对我们的Cisco ACS tacacs服务器进行身份验证?

注意:我是answering my own question

解决方法

假设

>我们正在从pam_tacplus library的v1.3.7编译pam_tacplus.so
> Cisco ACS服务器为192.0.2.27,秘密tacacs密钥为d0nttr3 @ d0nm3

安装说明

>将Linux服务器的主机名/ IP地址添加到Cisco ACS并重新启动Cisco ACS服务
>从SourceForge下载tacacs+ PAM module.
>为您的Linux发行版安装pam开发包. RHEL / CentOS称之为pam-devel; Debian / Ubuntu称之为libpam-dev(libpam0g-dev的虚拟包名).
>将tacacs pam模块解压缩到临时工作目录(tar xvfz pam_tacplus-1.3.7.ta​​r.gz)
> cd进入tar创建的新文件夹.
>以root身份:./ configure;使; make install
>以root身份编辑/etc/pam.d/sshd,并将此行添加文件中的第一个条目:

auth包括tacacs
>以root身份创建一个名为/etc/pam.d/tacacs的新文件

    #%PAM-1.0
    auth       sufficient   /usr/local/lib/security/pam_tacplus.so debug server=192.0.2.27 secret=d0nttr3@d0nm3
    account    sufficient   /usr/local/lib/security/pam_tacplus.so debug server=192.0.2.27 secret=d0nttr3@d0nm3 service=shell protocol=ssh
    session    sufficient   /usr/local/lib/security/pam_tacplus.so debug server=192.0.2.27 secret=d0nttr3@d0nm3 service=shell protocol=ssh

每服务器/每用户指令

在每台服务器上以root身份创建一个本地linux用户帐户,该帐户与所有必需用户的tacacs用户名相匹配.用户可以选择使用passwd将他们的本地密码设置为他们喜欢的任何地方作为最后的手段;但是,如果他们设置了本地密码,即使服务可用,他们也可以随时在本地登录而无需tacac.

pam_tacplus服务信息

有关pam_tacplus.so模块如何工作的详细信息,请参阅此pam-list archived email

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...