Centos 7.4 安装memcached 及启用 sasl 安全验证(适合小白萌新用户)

Centos 7.4 安装memcached 及启用 sasl 用户名与密码验证绑定安全配置(适合萌新用户)

由于Memcached本身没有做验证访问模块,一旦发布到公网,任何人都能通过ip访问。虽然可以使用iptables通过设置ip白名单限制访问ip,但仍然无法做到针对所有访问的控制的限制。如果能够做到需要使用用户名和密码来访问,这无疑会更加安全,而Cyrus-SASL就能够这样帮助我们。

SASL全称Simple
Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。简单来说SASL是一个胶合(glue)库,通过这个库把应用层与形式多样的认证系统整合在一起。SASL是一个认证过程,侧重于信任建立过程,通过使用pam、shadow等认证方式来验证什么人可以访问什么服务。在Memcached上使用SASL认证,具体的认证交给SASL,SASL会根据相应的认证机制来完成验证功能。

第一:memcached安装
如果编译安装Memcached 安装前需要安装依赖库libevent,这里是通用centos yum安装,可以直接用 yum 对 memcached进行安装命令如下 (编译安装这里忽略):

  1. 服务安装 yum -y install memcached
  2. 服务启动 systemctl start memcached
  3. 查看启动服务进程情况 ps –ef|grep memcached
  4. 默认启动端口是 11211, 服务启动完毕之后可以直接 telnet IP地址 11211 ,进行连接验证是否运行成功,在弹出窗口中输入 stats 命令回车,可获取服务信息内容
  5. 服务关闭 systemctl stop memcached
  6. 服务状态查看 systemctl status memcached
  7. 开机自动启动服务 systemctl enable memcached

第二:sasl安装

  1. centos 7.4 系统默认安装 并没有将sasl全部将包安装上,所以使用saslauthd服务前需要安装处理, 查询sasl已安装包
    rpm -qa | grep sasl
    我这里发现只有一个cyrus-sasl-lib包 要能够使用SASL服务应要确保有cyrus-sasl-devel和cyrus-sasl-lib两个包,如果缺少这两个包,在安装带—enable-sasl参数的Memcached时会有错误
  2. 先查看sasl包在 yum源上情况 yum list sasl
  3. 对缺少的包进行安装 yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain
  4. 安装好之后再一次执行rpm -qa | grep sasl 看是否已经安装成功
  5. 服务启动 systemctl start saslauthd
  6. 查看启动进程服务情况 ps aux | grep saslauthd
  7. 同样也可以用,停止 systemctl stop saslauthd,开机自动启动systemctl enable saslauthd等。

下面配置成使用shadow方式去认证,也就是直接用linux /etc/shadow文件中的用户账户及密码进行验证。因此,在配置文件/etc/sysconfig/saslauthd中,应修改当前系统所采用的密码验证机制为shadow

  1. 查看密码验证机制,输入
    saslauthd -v
    #修改/etc/sysconfig/saslauthd文件, vi /etc/sysconfig/saslauthd 将MECH=pam 改为 MECH=shadow
  2. 配置文件修改完毕,记得重启服务程序
    systemctl restart saslauthd
  3. #添加用户给指定的程序,对memcached 服务程序设置SASL认证密码,由于yum 安装memcached ,已默认生成linux用户memcached ,所以下面直接绑定这个用户,注意命令完毕之后再输入跟LINUX 下memcached 账号密码一样即可(如果忘记用户密码: passwd memcached 进行重置处理)。
    saslpasswd2 -a memcached -c memcached
    3.可以查看当前的SASL用户
    sasldblistusers2
    4.测试生成绑定的用户是否成功,进行验证,要是linux系统里用户
    testsaslauthd -u memcached -p 'mypasswd’
    0:
    OK “Success.”
    终于成功了。
  4. 如果想修改用户密码,直接执行添加命令覆盖,如果想删除用户,如删除用户memcached ,使用下面命令:saslpasswd2 –d memcached

第三:memcached 启用 saslauthd验证

  1. 需修改默认的配置文件,查找配置文件 find / -name memcached
  2. 为安全考虑修改默认的配置文件 /etc/sysconfig/memcached , 将其中的默认端口为21211,启动带SASL验证的Memcached服务器很简单,只需要在以往的命令后面加上-S参数,所以在OPTIONS 参数中加入 –S (其作用是开启sasl验证)
    PORT="21211"
    USER=“memcached”
    MAXCONN=“1024”
    CACHESIZE=“64”
    OPTIONS=" -S "
  3. /etc/sysconfig/memcached 配置文件修改完毕保存之后,记得重启服务 systemctl restart memcached

主要细节地方:

编译安装话要支持sasl模块必须如下加上编译:

./configure –enable-sasl --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
如果memcached 版本大于1.4.3 以上, yum 安装时候是已经集成–enable-sasl模块(memcached从1.4.3版本开始,能支持SASL认证)。

启动命令参数:
./memcached -d -m 1024 -S -l 192.168.2.83 -p 21212 -u memcached

如果是通过 systemctl start memcached 方式启动,用开发程序连接登陆验证有问题
查看日志:SASL (severity 1): unable to open Berkeley db /etc/sasldb2: Permission denied, 直接命令行(
/usr/bin/memcached -u memcached -p 21211 -m 64 -c 1024 -S -d)启动没问题, 引起问题原因 是/etc/sasldb2 权限问题, 要么直接命令执行,修改权限后 chmod 755 /etc/sasldb2 再用 systemctl 启动没有,程序连接验证OK。

Memcached命令参数说明

-d是指启动一个守护进程。
-m是指分配给Memcached使用的内存数量,单位是MB,以上为1024MB。
-u是指运行Memcached的用户,推荐使用单独普通权限用户Memcached,而不要使用root权限账户。
-l是指监听的服务器IP地址,例如指定服务器的IP地址为127.0.0.1。
-p是用来设置Memcached的监听端口,默认端口为11211。建议设置1024以上的端口。
-c是指最大运行的并发连接数,默认是1024。可按照您服务器的负载量来设定。
-P是指设置保存Memcached的pid文件,例如保存在 /tmp/memcached.pid 位置。

参考网址:
http://www.lvesu.com/blog/main/cms.html?id=154
https://blog.csdn.net/qwssd/article/details/77198839
https://blog.csdn.net/blood_seeker/article/details/53367701
https://www.7kb.org/957.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值