首頁  >  文章  >  運維  >  針對OpenSSL安全漏洞怎麼調整Nginx伺服器

針對OpenSSL安全漏洞怎麼調整Nginx伺服器

WBOY
WBOY轉載
2023-05-12 20:55:041299瀏覽

1. 概述
    目前爆出了openssl漏洞,會洩露隱私訊息,涉及的機器較多,環境迥異,導致修復方案都有所不同。不少伺服器使用的nginx,是靜態編譯opensssl,直接將openssl編譯到nginx裡面去了,這就意味著,單純升級openssl是沒有任何效果,nginx不會載入外部的openssl動態連結函式庫的,必須將nginx重新編譯才可以根治。

 
2. 辨識nginx是否是靜態編譯的

  以下三種方法都可以確認nginx是否靜態編譯openssl。
   2.1 查看nginx編譯參數

       輸入下列指令,檢視nginx的編譯參數:

# ./sbin/nginx -v

如果編譯參數含有--with-openssl =...,則表示nginx是靜態編譯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的依賴函式庫

      為進一步確認,可以檢視程序的依賴函式庫,輸入以下指令:

# ldd `which nginx` | grep ssl

顯示

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

注意:如果輸出中不包含libssl.so的檔案(),就說明是靜態編譯的openssl的

再輸入指令以決定openssl以確定函式庫所屬的openssl版本,但不會太詳細,例如本來應該是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開啟的檔案來檢視是否靜態編譯,輸入以下指令:

# ps aux | grep nginx
# lsof -p 111111<这里换成nginx的进程pid> | grep ssl

如果沒有開啟openssl的函式庫檔案,就說明是靜態編譯openssl的,如下圖所:

針對OpenSSL安全漏洞怎麼調整Nginx伺服器

#3. 重新編譯nginx


在網路公司裡,很少有統一的nginx版本,都是各部門根據自己的業務需求選擇相應的插件,然後自己編譯的,所以在編譯的時候一定要注意插件這塊,不要忘記編譯某些插件,盡量保持nginx特性不變。

以上是針對OpenSSL安全漏洞怎麼調整Nginx伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除