針對OpenSSL安全漏洞怎么調(diào)整Nginx服務(wù)器

1. 概述
??? 當(dāng)前爆出了openssl漏洞,會泄露隱私信息,涉及的機(jī)器較多,環(huán)境迥異,導(dǎo)致修復(fù)方案都有所不同。不少服務(wù)器使用的nginx,是靜態(tài)編譯 opensssl,直接將openssl編譯到nginx里面去了,這就意味著,單純升級openssl是沒有任何效果,nginx不會加載外部的 openssl動態(tài)鏈接庫的,必須將nginx重新編譯才可以根治。

?
2. 識別nginx是否是靜態(tài)編譯的

? 以下三種方法都可以確認(rèn)nginx是否靜態(tài)編譯openssl。
?? 2.1 查看nginx編譯參數(shù)

?????? 輸入以下指令,查看nginx的編譯參數(shù):

#?./sbin/nginx?-v

如果編譯參數(shù)中含有–with-openssl=…,則表明nginx是靜態(tài)編譯openssl,如下所示:

nginx?version:?nginx/1.4.1 built?by?gcc?4.4.7?20120313?(red?hat?4.4.7-3)?(gcc) tls?sni?support?enabled configure?arguments:?--prefix=/opt/app/nginx?--with-http_ssl_module?--with-openssl=/opt/app/openssl-1.0.1e?--add-module=/opt/app/ngx_cache_purge-2.1

2.2 查看nginx的依賴庫

????? 為進(jìn)一步確認(rèn),可以查看一下程序的依賴庫,輸入以下指令:

#?ldd?`which?nginx`?|?grep?ssl

顯示

libssl.so.10?=>?/usr/lib/libssl.so.10?(0xb76c6000)

注意:如果輸出中不包含libssl.so的文件(),就說明是靜態(tài)編譯的openssl的

再輸入命令以確定openssl以確定庫所屬的openssl版本,但是不會太詳細(xì),比如本應(yīng)該是1.0.1e.5.7,但是卻只輸出1.0.1e:

#?strings?/usr/lib/libssl.so.10?|?grep?"^openssl?" openssl?1.0.1e-fips?11?feb?2013

2.3 查看nginx打開的文件

????? 也可以通過查看nginx打開的文件來查看是否靜態(tài)編譯,輸入以下指令:

#?ps?aux?|?grep?nginx #?lsof?-p?111111?|?grep?ssl

如果沒有打開openssl的庫文件,就說明是靜態(tài)編譯openssl的,如下圖所:

針對OpenSSL安全漏洞怎么調(diào)整Nginx服務(wù)器

3. 重新編譯nginx

在互聯(lián)網(wǎng)公司里,很少有統(tǒng)一的nginx版本,都是各部門根據(jù)自己的業(yè)務(wù)需求選擇相應(yīng)的插件,然后自己編譯的,所以在編譯的時候一定要注意插件這塊,不 要忘記編譯某些插件,盡量保持nginx特性不變。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊13 分享