十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

启用MemCached的SASL认证

上一篇 / 下一篇  2013-03-17 19:03:15 / 个人分类:memcache

文章来源
  • 文章来源:【转载】

memcached从1.4.3版本开始,能支持SASL认证51Testing软件测试网H~@Nf&Z)E T

比较适合多个应用共用一个memcached集群

&~ A j.z!n|&cY}0

需要在编译时,加上–enable-sasl选项

2kdI h'rD g0

启动memcached时,增加-S的选项

,cIz2]`,Jg0

./configure –prefix=%{datadir}  –enable-sasl

Dl E&~;L7`z9{t0

/usr/local/bin/memcached -S -d -u nobody

Mf TLj3O3p^L0

SASL认证也可以有很多种认证机制,比如pam,shadow,ldap等51Testing软件测试网c \w z'[0^;mtf

 

9wT7S-TRI3?6E0

下面配置成使用shadow方式去认证51Testing软件测试网-?,L{ a+a-stf0E

#修改/etc/sysconfig/saslauthd文件51Testing软件测试网1cd`+WxB"f*`UQ

MECH=shadow

.L;|Q'tN0

#设置用户的SASL认证密码51Testing软件测试网 aR&hm$R'QP/?'Ea)x

saslpasswd2 -c -a memcached memuser

T1~3EG W0

#最终生成的DB文件在/etc/下51Testing软件测试网!O5ff.g'j;vk-^ PI|

-rw-r—– 1 root root 12288 Mar  6 11:52 /etc/sasldb2

XJm-e0bx.vfJ0

#可以查看当前的SASL用户

Z1^"T&u-N8PZ[0

sasldblistusers2

w,s*H"@_!^s0

 

aV2K6Qbzm&_0

下面配置成通过pam-mysql使用mysql数据库的方式去认证

w#Dm1X9Y(?DXy+h0

#首先安装pam-mysql51Testing软件测试网l,TtP.U&o

wget "http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz"51Testing软件测试网E(AM3l8]{*Bq

./configure –with-mysql=/opt/apps_install/mysql-5.5.17

Yfs%\ K Vv,{ Y#q0

make & make install51Testing软件测试网1NJ\eC9g

#增加一个软链接

{6Q;d ]VQ8~0

ln -s /lib/security/pam_mysql.so /lib64/security/pam_mysql.so51Testing软件测试网TzzRW8Hx

#修改saslauthd配置

2Ut j&\Q0

MECH=pam51Testing软件测试网n!MtVTp6M

#编辑pam.d的memcached配置

,F*|[3i} OSK0

auth sufficient pam_mysql.so  user=sasl passwd=saslpwd host=xxx db=dbname table=t_app_info usercolumn=appid passwdcolumn=secret crypt=0 sqllog=1 verbose=151Testing软件测试网eg*Ln2M@

account required pam_mysql.so user=sasl passwd=saslpwd host=xxx db=dbname table=t_app_info usercolumn=appid passwdcolumn=secret crypt=0 sqllog=1 verbose=1

+~&P0C m,_A`&aH'a0

#新增加memcached的配置文件/etc/sasl2/memcached.conf51Testing软件测试网9L9IG$Kj%t

pwcheck_method: saslauthd

g$v*F c.C*h0

#重启saslauthd51Testing软件测试网m`1X["[u

/etc/init.d/saslauthd restart

H+Ps Jrl-DS^z0

#测试saslauthd认证已经成功51Testing软件测试网'`C:w6]NAJ,h j

/usr/sbin/testsaslauthd -s /etc/pam.d/memcached -u 10000 -p pwd

)Q7B#?"Qbp0

0: OK "Success."

I%i0N ZAd:Hxd0

 51Testing软件测试网'Ggd _ KV:hN s/?R9?

memcached的java client,如spymemcached和xmemcached都已经支持SASL认证了

mi~3f.ZW f0

#xmemcached认证示例

:J*ZWy&Q]HZ0

MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("10.x.xx.xx:11211"));51Testing软件测试网3v*LwNq'VQ"NK

builder.addAuthInfo(AddrUtil.getOneAddress("10.x.xx.xx:11211"), AuthInfo.plain("10000", "pwd"));

.C(U!sRo F;R0

builder.setCommandFactory(new BinaryCommandFactory());51Testing软件测试网H+kgG"v

client=builder.build();51Testing软件测试网 H|8JC"s{%v W

String v = client.get("test2");

^0v~`"P:rtFZ$mD@0

python版本的pylibmc也支持SASL认证

jr}Z}n;xA051Testing软件测试网/z~3wo+_ P

 51Testing软件测试网0uv%oz4\"a"u


TAG: memcached MemCached SASL认证

 

评分:0

我来说两句

Open Toolbar