51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6212|回复: 0
打印 上一主题 下一主题

[原创文章] redis加认证密码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-11-8 11:04:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
redis很多时候我们都是使用不加密,默认端口,所以存在较大的风险。
乌云漏洞说明:http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/
针对这种情况,我们需要给所有redis加上密码认证
所谓牵一发动全身,事实也是这样,改一个配置,不仅仅是redis本身和程序软件修改就可以,作为运维,还会有其他监控,启动脚本等诸多地方要修改.
修改内容:
1、配置文件:
requirepass hellotest
redis比较多,一个个修改比较慢,写一个语句操作起来简单方便
  1. sed -i "s/# requirepass foobared/requirepass hellotest/g"  redis6379.conf

复制代码
如果是从库,除了上面的一行,还需要增加一行
  1. masterauth hellotest
复制代码
用命令来操作
  1. grep slaveof redis6379.conf |grep -v "#" && sed -i "s/# masterauth /masterauth hellotest/g" redis6379.conf
复制代码



2redis 并不需要重启,可以直接设置
  1. config set requirepass hellotest
  2. config set masterauth hellotest
复制代码


3、启动关闭文件修改
  1. PWD=$(cat $CONF |grep requirepass|grep -v "#" |awk '{print $2}' )

复制代码
stop 的命令执行时需要加入这行

  1. if [ -n "$PWD" ];then  
  2.         $CLIEXEC -p $REDISPORT -a $PWD shutdown
  3. else
  4.         $CLIEXEC -p $REDISPORT  shutdown      
  5. fi

复制代码



4nagios监控修改
command.cfg中,找到check_redis命令,给他加个参数  -x 密码


5cacti修改
cacti修改是在程序里,还需要把程序找出来。
首先在模板中找到所有的脚本,我们用的是ss_get_by_ssh.php ,大概大部分人用的也是这个吧
找到这个函数,然后增加红色的两行即可


  1. function redis_get ( $options ) {
  2.    global $redis_port;
  3.    echo "===========================\n";
  4.    $port = isset($options['port2'])  ? $options['port2'] : $redis_port;
  5.    $sock = fsockopen($options['host'], $port, $errno, $errstr);
  6.    if ( !$sock ) {
  7.       debug("Cannot open socket to $options[host]:$port: "
  8.          . ($errno  ? " err $errno"  : "")
  9.          . ($errmsg ? " msg $errmsg" : ""));
  10.       return;
  11.    }
  12.    fwrite($sock,"auth 你的密码\r\n");
  13.    $data1 = fread($sock, 4096);
  14.    //echo $data1;
  15.    //sleep(1);
  16.    $res = fwrite($sock, "INFO\r\n");
  17.    if ( !$res ) {
  18.       debug("Can't write to socket");
  19.       return;
  20.    }
  21.    $data = fread($sock, 4096); # should be WAY more than enough for INFO
  22.    if ( !$data ) {
  23.       debug("Cannot read from socket");
  24.       return;
  25.    }
  26.    echo $data;
  27.    $res = fclose($sock);
  28.    if ( !$res ) {
  29.       debug("Can't close socket");
  30.    }
  31.    return $data;
  32. }

复制代码

6、应用程序配置修改
这个最重要,不会忘记



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 07:27 , Processed in 0.061980 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表