openstack支持SASL认证功能

 

前面利用demo代码实现了memcached在开启SASL功能的前提下的认证功能

这一期将讲解如何将这一部分代码添加到openstack中的nova里面,实现该功能!

可以看到openstack环境中memcached的版本是1.5.6(因为在安装openstack之后,这个memcached就已经存在,版本比较新,应该是支持-S的,所以无需重新进行编译!),libevent的版本是2.1.8

现在在ubuntu中没有找到saslauthd守护进程,可能需要进行安装这个进程!

执行apt install sasl2-bin来安装saslauthd进程

在/etc/default/saslauthd文件中,将认证机制改为shadow,同时将开机启动设置为yes

# Example: MECHANISMS="pam"
MECHANISMS="shadow"
# Should saslauthd run automatically on startup? (default: no)
START=yes

增加一个系统用户,adduser username,然后用这个用户来访问memcached服务

/usr/sbin/saslpasswd2 -a memcached -c os_user

然后启动saslauthd服务进程:

/usr/sbin/saslauthd -m /run/saslauthd -a shadow

启动memcached,开启SASL认证:

vi /etc/memcached.conf

在里面增加-S的选项

同时需要将memcached.conf中的-u memcache改为-u root

可以通过/usr/sbin/testsaslauthd -u usrname -p password来验证自己添加的用户和密码是否正确!

然后将改动的文件进行替换,先执行相应的demo代码,验证库没什么问题!

即cache.conf文件中的用户和密码输入正确的话,可以正常执行;输入错误的话,提示认证错误!

上图是密码输入错误的提示

同时可以通过tail -100f /var/log/syslog | grep memcache来打印相应的log 

以上完成之后,就可以对nova代码进行更改了!

当前环境是ubuntu18.04,基于devstack搭建的环境,现在只是将

/etc/nova/nova.conf和nova-cpu.conf文件中的[cache] group下的参数进行改变了!

但是发现虽然demo代码可以正常运行,但是重启nova之后,输入正确name、password和输入错误的效果是一样的,均无法正常读写数据!

但是去掉memcached.conf文件中的-S之后,是可以正常读写的,这说明openstack中还是有参数需要进行改变的!

在_bmemcache_pool.py中增加LOG.log打印,将账号密码打印出来,结果发现也是正确的。

后面排查的时候,发现keystone模块中的配置项没有改变,前面只改变nova模块的

backend = oslo_cache.memcache_pool

memcache_sasl_enable = True
memcache_usrname = 
memcache_password = 

将上述配置文件改变之后,再查看/var/log/syslog文件中的打印信息:

发现是正常的,可以看到配置已经完成,现在openstack访问memcached服务是支持SASL认证的了!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值