升级修复openssl的heartbleed漏洞,顺便升级修复nginx的一个缓冲区溢出漏洞的方法
openssl的heartbleed漏洞就不介绍了,如果你的站点没用到SSL(https)则不受影响。
nginx缓存区溢出漏洞,不受影响的版本:1.5.12+, 1.4.7+。详见这里。
我只是把之前的一篇文章稍微修改了一下。我知道你懒,所以重新整理了下,如下:
0.查看下当前nginx的版本,及参数。前面是路径,你的跟我的安装路径可能有所不同。
# /usr/local/webserv/nginx/sbin/nginx -V
显示如下:
nginx version: nginx/1.4.4
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-54)
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/webserv/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_perl_module --with-openssl=../openssl-1.0.1e
把configure arguments:后面的那串拷到记事本中。
1.到某个文件夹下。
# cd /cdata
到官网下载nginx,目前最新稳定版为1.4.7。
# wget http://nginx.org/download/nginx-1.4.7.tar.gz
解压:
# tar -zxvf nginx-1.4.0.tar.gz
#cd ../
到官网下载openssl,日前最新稳定版为1.0.1g
#wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
解压:
#tar -zxvf openssl-1.0.1g.tar.gz
到解压后的nginx目录下:
#cd nginx-1.4.7
4.为了防止当前会话中断,创建一个screen
# screen -S upnginx
如果断了,可以 screen -r upnginx 重新回去。
开始配置configure, 把记事本上的那串复制过来,--with-openssl=后面改成刚才openssl的解压路径
# ./configure --user=nginx --group=nginx --prefix=/usr/local/webserv/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_perl_module --with-openssl=../openssl-1.0.1g
注意:这里你的nginx安装路径:--prefix=/usr/local/webserv/nginx 和openssl解压路径:../openssl-1.0.1g
可能跟我有所不同,请自行修改!
然后编译安装
#make
#make install
执行升级
# cat Makefile
其中“upgrade:”下面就是升级命令,一行一行拷进去运行,注意路径/usr/local/nginx/是否为你的安装路径。
/usr/local/nginx/sbin/nginx -t
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
然后可以到这里验证下heartbleed漏洞还存不存在
类别:OperationMaintenance 阅读(0) 评论(0) 发表时间:2014-04-11 20:27 星期五