redis加认证密码
redis很多时候我们都是使用不加密,默认端口,所以存在较大的风险。乌云漏洞说明:http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/ 针对这种情况,我们需要给所有redis加上密码认证所谓牵一发动全身,事实也是这样,改一个配置,不仅仅是redis本身和程序软件修改就可以,作为运维,还会有其他监控,启动脚本等诸多地方要修改. 修改内容:1、配置文件:requirepass hellotest redis比较多,一个个修改比较慢,写一个语句操作起来简单方便sed -i "s/# requirepass foobared/requirepass hellotest/g"redis6379.conf如果是从库,除了上面的一行,还需要增加一行masterauth hellotest用命令来操作grep slaveof redis6379.conf |grep -v "#" && sed -i "s/# masterauth /masterauth hellotest/g" redis6379.conf
2、redis 并不需要重启,可以直接设置config set requirepass hellotest
config set masterauth hellotest
3、启动关闭文件修改PWD=$(cat $CONF |grep requirepass|grep -v "#" |awk '{print $2}' )
在stop 的命令执行时需要加入这行
if [ -n "$PWD" ];then
$CLIEXEC -p $REDISPORT -a $PWD shutdown
else
$CLIEXEC -p $REDISPORTshutdown
fi
4、nagios监控修改在 command.cfg中,找到check_redis命令,给他加个参数-x 密码
5、cacti修改cacti修改是在程序里,还需要把程序找出来。首先在模板中找到所有的脚本,我们用的是ss_get_by_ssh.php ,大概大部分人用的也是这个吧找到这个函数,然后增加红色的两行即可
function redis_get ( $options ) {
global $redis_port;
echo "===========================\n";
$port = isset($options['port2'])? $options['port2'] : $redis_port;
$sock = fsockopen($options['host'], $port, $errno, $errstr);
if ( !$sock ) {
debug("Cannot open socket to $options:$port: "
. ($errno? " err $errno": "")
. ($errmsg ? " msg $errmsg" : ""));
return;
}
fwrite($sock,"auth 你的密码\r\n");
$data1 = fread($sock, 4096);
//echo $data1;
//sleep(1);
$res = fwrite($sock, "INFO\r\n");
if ( !$res ) {
debug("Can't write to socket");
return;
}
$data = fread($sock, 4096); # should be WAY more than enough for INFO
if ( !$data ) {
debug("Cannot read from socket");
return;
}
echo $data;
$res = fclose($sock);
if ( !$res ) {
debug("Can't close socket");
}
return $data;
}
6、应用程序配置修改这个最重要,不会忘记
页:
[1]