当前位置:首页 > 服务器技术 > 正文

Linux网络中的TACACS+协议详解(小白也能轻松上手的远程认证教程)

在现代企业网络中,如何安全地管理大量网络设备(如路由器、交换机、防火墙等)的登录权限,是一个至关重要的问题。传统的本地账户管理方式不仅繁琐,而且难以统一审计。这时候,TACACS+(Terminal Access Controller Access-Control System Plus)协议就派上了大用场。

Linux网络中的TACACS+协议详解(小白也能轻松上手的远程认证教程) TACACS+  Linux网络认证 网络设备安全 AAA协议 第1张

什么是TACACS+?

TACACS+ 是由思科开发的一种AAA协议(Authentication, Authorization, Accounting),用于集中管理用户对网络设备的访问控制。它将认证(你是谁)、授权(你能做什么)和计费(你做了什么)三个功能分离,提供比RADIUS更细粒度的控制能力。

与RADIUS不同,TACACS+使用TCP端口49通信,并且全程加密整个数据包(而RADIUS仅加密密码),因此安全性更高,特别适合用于管理员级别的设备访问控制。

为什么在Linux上部署TACACS+服务器?

虽然TACACS+最初由思科推动,但如今已有开源实现,如 FreeRADIUS-tacacs 或更常用的 tac_plus(也称为Shrubbery TACACS+)。在Linux系统上部署TACACS+服务器,可以:

  • 集中管理所有网络设备的管理员账户
  • 实现命令级别的授权(例如:只允许某用户执行 show 命令)
  • 记录所有操作日志,满足合规审计要求
  • 提升网络设备安全水平,防止本地账户泄露

在Ubuntu上安装并配置TACACS+服务器

下面我们将以Ubuntu 22.04为例,手把手教你搭建一个TACACS+服务器。

步骤1:安装tac_plus软件包

打开终端,运行以下命令:

sudo apt updatesudo apt install tacacs+

步骤2:配置TACACS+主配置文件

编辑配置文件 /etc/tacacs+/tac_plus.conf

sudo nano /etc/tacacs+/tac_plus.conf

输入以下基础配置(请根据实际情况修改密钥和用户):

# 设置共享密钥(必须与网络设备上配置的一致)key = my_secret_key_123# 定义用户组user = admin {    login = cleartext "admin_password"    member = network_admins}# 定义授权组group = network_admins {    default service = permit}# 日志设置accounting file = /var/log/tac_plus.acct
⚠️ 注意:cleartext 表示明文密码,仅用于测试。生产环境中建议使用 desmd5 加密方式。

步骤3:启动并启用服务

sudo systemctl start tacacs+sudo systemctl enable tacacs+

步骤4:配置防火墙(如启用UFW)

sudo ufw allow 49/tcp

在网络设备上配置TACACS+客户端

以Cisco IOS设备为例,进入全局配置模式:

configure terminal! 指定TACACS+服务器IP和密钥tacacs-server host 192.168.1.100 key my_secret_key_123! 启用AAAaaa new-model! 认证:先尝试TACACS+,失败后回退到本地aaa authentication login default group tacacs+ local! 授权:使用TACACS+aaa authorization exec default group tacacs+ if-authenticated! 计费:记录会话aaa accounting exec default start-stop group tacacs+

配置完成后,当你通过SSH登录该设备时,系统会自动向Linux上的TACACS+服务器发起认证请求。

验证与排错

查看TACACS+日志:

sudo tail -f /var/log/syslog | grep tac_plus

如果登录失败,请检查:

  • 服务器与设备之间的网络连通性(能否telnet 192.168.1.100 49)
  • 共享密钥是否完全一致(区分大小写)
  • Linux防火墙是否放行TCP 49端口
  • 配置文件语法是否正确(可使用 tac_plus -C /etc/tacacs+/tac_plus.conf 测试)

总结

通过本教程,你应该已经掌握了如何在Linux系统上部署TACACS+服务器,并将其用于Linux网络认证网络设备安全管理。TACACS+作为强大的AAA协议,不仅能简化运维,还能显著提升企业网络的安全性和可审计性。

对于中小型企业或实验室环境,这种开源方案成本低、灵活性高,是替代商业认证系统的理想选择。快去试试吧!