linux复盘:redis主从配置等

redis安全设置

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

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

解决方法:nginx

  1. 设置密码-a登陆
  2. 修改磨人的6379端口防止全网被扫描
  3. 监听内网ip,用空格分割内网ip
  4. 设定专用的redis登陆帐户
  5. 修改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<br><br>1443702394<br><br>i44nunao0g3o7vf2su0hnc5440
• 命令行链接redis,也能够查看到该key以及对应的值
• 若是想用php链接redis cluster,须要使用predis扩展
• 安装方法相似phpredis,predis扩展地址https://github.com/nrk/predis

redis主从配置

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

• 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 #查看主从是否正常
[root@quyifan ~]# 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
[root@quyifan ~]# 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
相关文章
相关标签/搜索