Memcached与Redis安全性的问题

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

Memcached是老牌的缓存工具,Redis是新生代缓存软件的代表,原本他俩的设计初衷都是数据库软件,但是由于都是在内存里进行活动,反应速度很快,所以都被不约而同的拿来当做缓存软件使用。现在Redis有隐隐超越老大哥的趋势,我所在的公司也开始逐步的扩大Redis的范围,但是Memcached还是有一定的影响力,该学还是要学。


这俩个缓存软件默认都是没有账号密码的,这样怎么得了?卧榻之侧,岂容他人鼾睡?如何能提升这两位大爷的安全性?


先说Memcached

Memcached的服务器与web服务器肯定要内网连接!也就是说web服务器上有两个网卡,一个公网网卡是用来接客的,而内网的网卡就是用来连接Memcached缓存服务器,在Memcached启动的时候就指明其对应的web服务器,

# memcached -d -m 1024 -u root -l 192.168.0.55 -p 11211 -c 1024 -P /tmp/memcached.pid,这个命令意思就是memcached启动一个守护进程,以root启动,同时占用内存为1024M,与192.168.0.55的11211端口相连接,同时限制并发数量是1024个,pid文件指明是/tmp/memcached.pid。


内网访问是一种方法,如果还不放心,那么就设定一下iptables,确定只有固定的ip可以tcp/udp ACCEPT,其他的ip一律都DROP。


再说Redis

Redis提升安全性的途径主要就是修改其配置文件,#vim /usr/local/redis/etc/redis.conf,里面有bind 127.0.0.1,这个意思是绑定只有本机可以访问redis。


或者找到requirepass,在后面加上密码,比如写成requirepass myRedis。然后在登陆的时候要直接输入密码,比如#./redis-cli -h 127.0.0.1 -p 6379 -a myRedis,然后重启一下redis即可。如果在启动redis时候没有加上密码的话,进行一切操作都是提示错误。


若master配置了密码则slave也要配置相应的密码参数否则无法进行正常复制的。slave中配置文件内找到如下行,移除注释,修改密码即可。

#masterauth  mstpassword  




参考文章:http://drops.wooyun.org/papers/865

参考文章:http://blog.csdn.net/zyz511919766/article/details/42268219

参考文章:https://bbs.aliyun.com/read/163915.html



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1794333

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
30天前
|
NoSQL 网络协议 应用服务中间件
redis,memcached,nginx网络组件
redis,memcached,nginx网络组件
16 0
|
3月前
|
存储 NoSQL Redis
pyhon之对memcached及redis操作
pyhon之对memcached及redis操作
|
4月前
|
存储 缓存 NoSQL
Redis问题之Redis与Memcached的主要区别是什么
Redis问题之Redis与Memcached的主要区别是什么
|
4月前
|
安全 NoSQL Java
网络安全-----Redis12的Java客户端----客户端对比12,Jedis介绍,使用简单安全性不足,lettuce(官方默认)是基于Netty,支持同步,异步和响应式,并且线程是安全的,支持R
网络安全-----Redis12的Java客户端----客户端对比12,Jedis介绍,使用简单安全性不足,lettuce(官方默认)是基于Netty,支持同步,异步和响应式,并且线程是安全的,支持R
|
6月前
|
缓存 NoSQL Redis
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?--epoll调用和中断
【5月更文挑战第18天】`epoll`包含红黑树和就绪列表,用于高效管理文件描述符。关键系统调用有3个:`epoll_create()`创建epoll结构,`epoll_ctl()`添加/删除/修改文件描述符,`epoll_wait()`获取就绪文件描述符。`epoll_wait()`可设置超时时间(-1阻塞,0立即返回,正数等待指定时间)。当文件描述符满足条件(如数据到达)时,通过中断机制(如网卡或时钟中断)更新就绪列表,唤醒等待的进程。
73 6
|
6月前
|
缓存 NoSQL 中间件
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?epoll、poll和select + Reactor模式
【5月更文挑战第19天】`epoll`、`poll`和`select`是Linux下多路复用IO的三种方式。`select`需要主动调用检查文件描述符,而`epoll`能实现回调,即使不调用`epoll_wait`也能处理就绪事件。`poll`与`select`类似,但支持更多文件描述符。面试时,重点讲解`epoll`的高效性和`Reactor`模式,该模式包括一个分发器和多个处理器,用于处理连接和读写事件。Redis采用单线程模型结合`epoll`的Reactor模式,确保高性能。在Redis 6.0后引入多线程,但基本原理保持不变。
64 2
|
6月前
|
缓存 NoSQL Redis
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Redis多线程
【5月更文挑战第21天】Redis启用多线程后,主线程负责接收事件和命令执行,IO线程处理读写数据。请求处理流程中,主线程接收客户端请求,IO线程读取并解析命令,主线程执行后写回响应。业界普遍认为,除非必要,否则不建议启用多线程模式,因单线程性能已能满足多数需求。公司实际场景中,启用多线程使QPS提升约50%,或选择使用Redis Cluster以提升性能和可用性。
51 0
|
6月前
|
NoSQL Redis 数据库
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Memcache + Redis 多线程
【5月更文挑战第20天】Redis采用单线程模式以避免上下文切换和资源竞争,简化调试,且其性能瓶颈在于网络IO和内存,而非多线程。相比之下,Memcache使用多线程能更好地利用多核CPU,但伴随上下文切换和锁管理的开销。尽管Redis单线程性能不俗,6.0版本引入多线程以提升高并发下的IO处理能力。启用多线程后,Redis结合Reactor和epoll实现并发处理,提高系统性能。
73 0
|
6月前
|
Linux Memcache
Linux - 安装memcached
Linux - 安装memcached
107 0
Linux - 安装memcached
|
5月前
|
缓存 Java Spring
SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解
SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解
44 0