linux复盘:redis主从配置等

2018-02-24 10:19:35来源:oschina作者:历经35天的选择人点击

分享
redis安全设置

近些年redis很火黑客也很多,常见的redis被黑案例:



Redis 服务启动了,但是监听了一个全网IP,如果6379默认端口没有更改,并且iptables也处于关闭,公网IP 也开放着,Redis也没有设置任何密码,黑客就会扫描端口,然后就可以轻轻松松登录你的Redis服务器,并且是超级管理员的权限。然后黑客就可以设置dirdbname,dir 定义到/root/.ssh 且dbname定义为:.ssh/authorized_keys再把这个值写上自己的公钥。 这些应该都不陌生吧,这不就活生生的把黑客的公钥上传到了咱们的服务器中,然后利用超级管理员做任何想做的事情了



解决方法:

设置密码-a登录
修改磨人的6379端口防止全网被扫描
监听内网ip,用空格分割内网ip
设定专用的redis登录账户
修改redis的config命令黑客进入后无法更改配置参数(config get * //获取所有配置参数) vim /etc/redis.cof
# requirepass foobared
requirepass 123456
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
#port 6379
port 6380
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
# an empty string:
#
# rename-command CONFIG "quyifan"redis慢查询日志
vim /etc/redis.conf
#针对慢查询日志,可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢查询日志的长度。
#当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。
• slowlog-log-slower-than 1000 //单位ms,表示慢于1000ms则记录日志,测试可设置为10ms
• slowlog-max-len 128//定义日志长度,表示最多存128条
• slowlog get //列出所有的慢查询日志
• slowlog get 2 //只列出2条
• slowlog len //查看慢查询日志条数
php安装redis扩展
cd /usr/local/src
• wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip
• unzip phpredis.zip
• cd phpredis-develop
• /usr/local/php-fpm/bin/phpize
• yum install -y autoconf
• ./configure --with-php-config=/usr/local/php-fpm/bin/php-config
• make
• make install
• vim /usr/local/php-fpm/etc/php.ini//增加extension=redis.so
• /usr/local/php-fpm/bin/php -m|grep redis//看是否有redis模块
• 重启php-fpm服务service php-fpm start 启动服务
• ps aux |grep php-fpm 查看服务
• redis-cli 进入redis
redis中存储session
#在php-fpm的配置文件对应的pool中增加:
#这里自己有设置虚拟主机配置文件所以先找到具体文件位置
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf #php-fpm配置文件有定义
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379"
• wget http://study.lishiming.net/.mem_se.txt
• mv .mem_se.txt/usr/local/apache2/htdocs/session.php
• 其中session.php内容可以参考https://coding.net/u/aminglinux/p/yuanke_centos7/git/blob/master/21NOSQL/session.php
• curl localhost/session.php //结果类似于1443702394
1443702394
i44nunao0g3o7vf2su0hnc5440
• 命令行连接redis,也可以查看到该key以及对应的值
• 如果想用php连接redis cluster,需要使用predis扩展
• 安装方法类似phpredis,predis扩展地址https://github.com/nrk/predis
redis主从配置

这里测试所以一台机器开启两个redis来测试其主从同步是否正常



• cp /etc/redis.conf/etc/redis2.conf
• vim /etc/redis2.conf//需要修改port,dir,pidfile,logfile
port 6380
pidfile /var/run/redis_6380.pid
logfile "/tmp/log/redis2.log"
dir /data/redis2_data/
• 还要增加一行
• slaveof 127.0.0.1 6379
• 如果主上设置了密码,还需要增加
• masterauth 123456 //设置主的密码
• 启动之前创建新的dir目录
mkdir /data/redis2_data/
• redis-server /etc/redis2.conf
ps aux |grep redis
netstat -lntp |grep redis
info #查看主从是否正常
[[email protected] ~]# redis-cli -p 6379
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:ps8ohkch31ar3h4973t3aakuo1"
2) "ket2"
3) "PHPREDIS_SESSION:c65qqo3cf61q6ma3jhv2de1d36"
4) "key2"
5) "PHPREDIS_SESSION:k8o6avic1kiqeks31k90h1pqk6"
6) "quyifan"
7) "key3"
8) "key1"
127.0.0.1:6379> exit
[[email protected] ~]# redis-cli -p 6380
127.0.0.1:6380> keys *
1) "PHPREDIS_SESSION:c65qqo3cf61q6ma3jhv2de1d36"
2) "ket2"
3) "PHPREDIS_SESSION:ps8ohkch31ar3h4973t3aakuo1"
4) "key1"
5) "quyifan"
6) "key3"
7) "key2"
8) "PHPREDIS_SESSION:k8o6avic1kiqeks31k90h1pqk6"
127.0.0.1:6379> info #查看主从是否正常
127.0.0.1:6380> info #查看主从是否正常
#如果有报错
cat /var/log/redis.log
2887:S 13 Oct 18:27:42.837 * Connecting to MASTER 192.168.59.131:6379
2887:S 13 Oct 18:27:42.837 * MASTER <-> SLAVE sync started
2887:S 13 Oct 18:27:42.838 # Error condition on socket for SYNC: Connection refused
2887:S 13 Oct 18:27:43.846 * Connecting to MASTER 192.168.59.131:6379
在 Redis 主 服务器上的redis.conf中修改bind字段,将
bind 127.0.0.1修改为0.0.0.0

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台