TACACS的描述
网络设备使用直接密码验证,存在一些问题:
1.每个设备都有独立不同的两个密码(telnet/able),且为了一定的安全性,设置都比较复杂,在使用上带来很多麻烦。
2.目前工程师一般都是把大量复杂密码直接记录在自用的机器上,安全性较差,容易造成误操作和泄漏。
3.由于内网采用伪地址NAT方式出网,所以在登陆设备做操作时无法区分操作人
4.没有命令授权和记帐的机制,在故障派排查时缺乏必足够的依据。
鉴于以上问题,故测试了使用TACACS+进行网络设备帐户管理的方案,以期解决部分问题。
TACACS+是结合CISCO
AAA
module的帐户管理方式,他包含了认证(authentication),授权(authorization),记帐(accounting)功能,具有以下特点:
密码不再以设备区分而是以账号(用户名)区分,即每个网管人员有自己的用户名密码,容易记忆和适用
用户登陆网络设备时需要到TACACS+
SERVER进行认证,执行命令时要到TACACS+
SERVER进行授权同时进行记帐。使用户的所有操作都有据可查,便于故障得处理。
密码可以设置有效期,用户定期必须更改自己的密码,否则密码过期后将被冻结。可以促使用户勤改密码,保证密码的安全性。
对用户可以使用分级管理的方法,限制用户执行操作。
系统+软件
系统:Red
Hat Linux release 7.3
软件:tac_plus.F4.0.4.alpha.tar
TACACS+安装、编译
1
.编辑文件 Makefile,把默认的关于SUNOS的参数注释掉,改为LINUX环境下的参数。
#
For LINUX
OS=-DLINUX
2 .make
tac_plus
3 .make
install
4
.拷贝必要的文件到相应目录:
//把配置文件包放到/etc下,修改里面的配置文件。
/etc/tacacs
changepass core leaseline start.sh tac_core.sh tac_core_test.sh tac_lease.sh tac_plus.cfg
5.为方便使用,编写两个脚本分别启动三个TACACS+进程。
文件tac_core: /usr/local/bin/tac_plus
-
C /etc/tacacs/core/core.cfg -p 60000
文件tac_lease:/usr/local/bin/tac_plus -C
/etc/tacacs/leaseline/lease.cfg -p 60001
6. 修改配置文件,调整相应权限。
6../tac_core.sh 和 ./tac_lease.sh 启动进程。Ok拉!
建立加密帐号
1. /usr/sbin/useradd -d /home/getpass -m -s
/usr/local/sbin/generate_passwd getpass
2. /usr/sbin/passwd getpass
以上增加一个用户名为getpass 密码为a0z1ppmm 的用户.
3. 任何用户可以用getpass身份登陆到该机器上,输入想要加密的明文密码,然后获得加密后的密文密码。
/etc/passwd
changepass:x:506:506::/etc/tacacs/changepass:/etc/tacacs/start.sh
getpass:x:507:507::/home/getpass:/usr/local/bin/generate_passwd
4.也加一个changepass的用户
5.修改/etc/sudoers
[root@localhost etc]# more sudoers
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as
root.
#
# See the sudoers man page for the details on how to write a
sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# User privilege specification
root ALL=(ALL)
ALL
changepass ALL=(ALL)
ALL//加上这个!!
# Uncomment to allow people in group wheel to run all
commands
#
%wheel ALL=(ALL) ALL
# Same thing without a password
#
%wheel ALL=(ALL) NOPASSWD:
ALL
# Samples
#
%users ALL=/sbin/mount
/cdrom,/sbin/umount /cdrom
#
%users localhost=/sbin/shutdown
-h now
几个重要文件:
1.ls /usr/local/bin/
generate_passwd tac_plus
* generate_passwd 用于生成密文密码
2.ls /var/log/acct/
core.log leaseline.log //日志信息
3. vi /etc/passwd
getpass:x:501:501::/home/getpass:/usr/local/bin/generate_passwd
changepass:x:502:0::/etc/tacacs/changepass:/etc/tacacs/start.sh
4./etc/tacacs/changepass/changepass.sh //修改密码
采用SSH登录服务器,用户名changepass。定期更改密码。
5.网络设备aaa配置:
aaa new-model
aaa authentication login default group tacacs+ line
aaa authentication enable default enable
aaa authorization exec default group tacacs+ none
aaa authorization commands 0 default group tacacs+ none
aaa authorization commands 1 default group tacacs+ none
aaa authorization commands 15 default group tacacs+ none
aaa accounting exec default start-stop group tacacs+
aaa accounting commands 0 default start-stop group tacacs+
aaa accounting commands 1 default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
aaa accounting network default start-stop group tacacs+
aaa accounting connection default start-stop group tacacs+
aaa accounting system default start-stop group tacacs+
line con 0
authorization commands 0 console
authorization commands 1 console
authorization commands 7 console
authorization commands 15 console
authorization exec console
login authentication console
tacacs-server host 1.1.1.1 port 60000
tacacs-server key helala