Redis是一个开源(BSD许可),内存数据结构存储,可以用作数据库,缓存和消息代理等。
Redis为了高效,仅提供了最基础的密码验证。当你想把redis-server暴露在公网上面时,由于通讯过程不加密,你的“正版”客户端在连接时,仍有密码泄露的风险。
环境:ubuntu(tencent cloud)
1 安装及部署
执行以下命令即完成了redis 编译安装
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
tar xzf redis-4.0.9.tar.gz
cd redis-4.0.9
make
2 运行
2.1 server运行
我们可以在src 下面找到redis-server
./redis-server 就可以运行起来(默认6379端口)
2.2 连接
同样可以在src中找到redis-cli
./redis-cli
就可以连接上
可以执行下列两条语句看是否work
set foo bar
get foo
2.3 配置redis密码
2.3.1配置密码
在redis根目录 下有redis.conf文件。
vi redis.conf
搜索requirepass关键字
打开下列屏蔽的内容,将foobared替换为自己的密码即可
#requirepass foobared
2.3.2测试
根目录下运行server
./src/redis-server redis.conf
使用redis-cli链接后在执行get语句就会报错
127.0.0.1:6379> get foo
(error) NOAUTH Authentication required.
我们加入密码再去链接
./redis-cli -a helloworld
在执行get 操作就不会再报权限错误了。
如果redis对外网开放,此密码并不能保证redis安全,因为本身链接过程就是密文。若需要对外网访问需要配置ssl可参阅。
2.4 端口的修改
我们同样可以在redis.conf中修改 port (搜索)修改监听端口号
./src/redis-server redis.conf
相应链接加上p参数指定链接端口
./redis-cli -a helloworld -p 6100
如果开发了外网访问端口,我们可以加上-h指定链接ip
-h 127.0.0.1(链接地址)
2.5 后台运行
在redis.conf 中修改daemonize no 为yes 即可后台运行
不过我使用supervisor将redis 配置为了守护。
3 其他
关于redis 安全的问题请参阅:
http://sec.chinabyte.com/438/13618938.shtml
配置下列事项:
1、指定redis服务使用的网卡
在 redis.conf 文件中找到 “# bind 127.0.0.1” ,把前面的#号去掉,然后保存。注:修改后只有本机才能访问redis。
2、设置访问密码
在 redis.conf 中找到“requirepass”字段,在后面填上你需要的密码。
3、修改redis服务运行账号
请以较低权限账号运行redis服务,且禁用该账号的登录权限。