<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    nginx 安全:如何強化服務器配置

    Andrew2020-08-25 10:20:13

    當前,nginx是最流行的 Web服務器,最近擊敗了Apache。它輕量級,快速,強大,并支持所有主要操作系統。它是Netflix,WordPress.com和其他高流量站點的首選Web服務器。Nginx服務器可以輕松地處理10,000個不活動的HTTP連接,而其內存只有2.5 MB。我們將提供關于nginx服務器安全的技巧,向你展示如何保護你的ngin

    為此,請在安裝過程中使用configure選項。在下面的示例中,我們禁用了自動索引模塊,該模塊會生成自動目錄列表,然后重新編譯nginx。

    # ./configure --without-http_autoindex_module
    # make
    # make install
    

    步驟2.禁用nginx server_tokens

    默認情況下,nginx中的server_tokens指令顯示nginx版本號。它在所有自動生成的錯誤頁面中直接可見,但也出現在Server標頭中的所有HTTP響應中。

    這可能會導致信息泄露–未經授權的用戶可能會了解您使用的nginx版本。您應該通過設置禁用Nginx配置文件中的server_tokens指令server_tokens off

    步驟3.控制資源和限制

    為了防止對nginx進行潛在的DoS攻擊,您可以為所有客戶端設置緩沖區大小限制。您可以使用以下指令在nginx配置文件中執行此操作:

    • client_body_buffer_size –使用此偽指令指定客戶端請求主體緩沖區的大小。默認值是8k或16k的,但建議設置該低1K: client_body_buffer_size 1k
    • client_header_buffer_size –使用此偽指令為客戶端請求標頭指定標頭緩沖區大小。1k的緩沖區大小足以應付大多數請求。
    • client_max_body_size –使用此偽指令為客戶端請求指定可接受的最大正文大小。1k指令應足夠,但如果通過POST方法接收文件上傳,則需要增加該數值。
    • large_client_header_buffers –使用此偽指令指定用于讀取大型客戶端請求標頭的緩沖區的最大數量和大小。甲large_client_header_buffers 2 1k指令集緩沖器的2的最大數目,每個具有1K的最大尺寸。該指令將接受2 kB數據URI。

    注意:一些消息來源建議,如果在nginx中發現了此類漏洞,則設置此類限制可能會防止潛在的緩沖區溢出攻擊

    步驟4.禁用所有不需要的HTTP方法

    我們建議您禁用將不被使用并且不需要在Web服務器上實現的任何HTTP方法。如果在nginx虛擬主機配置文件的位置塊中添加以下條件,則服務器將僅允許GET,HEAD和POST方法,并將過濾掉DELETE和TRACE等方法。

    location / {
    limit_except GET HEAD POST { deny all; }
    }
    

    另一種方法是在服務器部分(或服務器塊)中添加以下條件。它可以被認為是更通用的,但是您應該小心if位置上下文中的語句

    if ($request_method !~ ^(GET|HEAD|POST)$ ) {
        return 444; }
    

    步驟5.為您的Nginx Web服務器安裝ModSecurity

    ModSecurity是充當Web應用程序防火墻的開源模塊。它的功能包括過濾,服務器身份屏蔽和空字節攻擊防護。該模塊還允許您執行實時流量監控。我們建議您遵循ModSecurity手冊來安裝mod_security模塊,以增強安全性選項。

    請注意,如果ModSecurity無法滿足您的需求,您還可以使用其他免費的WAF解決方案s)。

    步驟6.設置和配置nginx訪問和錯誤日志

    Nginx訪問和錯誤日志默認情況下處于啟用狀態,分別位于logs / error.loglogs / access.log中。如果要更改位置,可以在nginx配置文件中使用error_log指令。您還可以使用此偽指令來指定將根據其嚴重性級別記錄的日志。例如,一個暴擊的嚴重性級別會導致nginx的登錄關鍵問題和具有比更高的嚴重性級別的所有問題的暴擊。要將嚴重級別設置為crit,請如下設置error_log指令:

    error_log logs/error.log crit;
    

    您可以在Nginx *官方文檔中找到error_log*嚴重性級別的完整列表。

    您還可以修改nginx配置文件中的access_log指令,以為訪問日志指定非默認位置。最后,您可以使用log_format指令來配置已記錄消息的格式。

    步驟7.監視nginx訪問和錯誤日志

    如果您持續監視和管理Nginx日志文件,則可以更好地了解對Web服務器的請求,并注意到任何遇到的錯誤。這將幫助您發現任何攻擊嘗試,并確定可以采取哪些措施來優化服務器性能。

    您可以使用日志管理工具(例如logrotate)來旋轉和壓縮舊日志并釋放磁盤空間。同樣,ngx_http_stub_status_module模塊提供對基本狀態信息的訪問。您還可以投資Nginx的商業版本nginx Plus,它提供對流量,負載和其他性能指標的實時活動監視。

    步驟8.將Nginx配置為包括安全標題

    為了進一步加強Nginx Web服務器的性能,您可以添加幾個不同的HTTP標頭。這是我們推薦的一些選項。

    X框架選項

    您可以使用X-Frame-Options HTTP響應標頭指示是否應允許瀏覽器在*中*呈現頁面。這可以防止點擊劫持攻擊。因此,我們建議您為Nginx服務器啟用此選項。

    為此,請將以下參數添加到服務器部分的nginx配置文件中:

    add_header X-Frame-Options "SAMEORIGIN";
    

    嚴格的運輸安全

    HTTP嚴格傳輸安全性(HSTS)是網站用來聲明僅應使用安全連接(HTTPS)訪問它們的一種方法。如果網站聲明了HSTS策略,則瀏覽器必須拒絕所有HTTP連接并阻止用戶接受不安全的SSL證書。要將HSTS標頭添加到您的nginx服務器,可以在服務器部分添加以下指令:

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
    

    CSP和X-XSS保護

    內容安全策略(CSP)保護您的Web服務器免受某些類型的攻擊,包括跨站點腳本攻擊(XSS)和數據注入攻擊。您可以通過添加以下示例Content-Security-Policy標頭來實現CSP (請注意,實際標頭應配置為符合您的獨特要求):

    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
    

    IE和Safari支持HTTP X-XSS-Protection標頭,如果您具有強大的內容安全策略,則對于現代瀏覽器而言則不是必需的。但是,為防止在較舊的瀏覽器(尚不支持CSP)中使用XSS,可以將X-XSS Protection標頭添加到服務器部分:

    add_header X-XSS-Protection "1; mode=block";
    

    步驟9.配置SSL和密碼套件

    Nginx 的默認配置允許您使用不安全的舊版TLS協議(根據官方文檔:ssl_protocols TLSv1 TLSv1.1 TLSv1.2)。這可能導致諸如BEAST攻擊之類的攻擊。因此,我們建議您不要使用舊的TLS協議,并更改配置以僅支持更新的安全TLS版本。

    為此,請在nginx配置文件的server部分中添加以下指令:

    ssl_protocols TLSv1.2 TLSv1.3;
    

    此外,您應指定密碼套件,以確保不支持任何易受攻擊的套件。要選擇最佳的密碼套件,請閱讀有關TLS密碼強化的文章,并在服務器部分添加ssl_ciphers指令以選擇密碼(如關于密碼強化的文章中所建議)。我們還建議您將以下指令添加到服務器部分:

    
    該指令將使使用哪種密碼的決定在服務器端而不是客戶端。
    
    ## 步驟10.定期更新服務器
    
    與任何其他軟件一樣,我們建議您始終將nginx服務器更新為最新的穩定版本。新更新通常包含對先前版本中標識的漏洞的修復,例如在0.7.63之前的nginx版本和在0.8.17之前的0.8.x中存在的目錄遍歷漏洞(CVE-2009-3898)。更新還經常包括新的安全功能和改進。在nginx.org網站上,您可以[在專門的部分中找到安全公告,并在主頁上找到有關最新更新的新聞。
    
    ## 步驟11.使用Gixy檢查您的配置
    
    Gixy是一個開源工具,可讓您檢查nginx Web服務器中是否存在典型的錯誤配置。準備好nginx配置后,最好使用Gixy對其進行檢查。
    
    
    ## 步驟12。您不必手動進行
    
    如果您不想手動配置nginx,則可以使用DigitalOcean提供的免費在線視覺配置工具。
    
    nginx服務器配置
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    當前,nginx是最流行的 Web服務器,最近擊敗了Apache。這可能會導致信息泄露–未經授權的用戶可能會了解您使用的nginx版本。該指令將接受2 kB數據URI。例如,一個暴擊的嚴重性級別會導致nginx的登錄關鍵問題和具有比更高的嚴重性級別的所有問題的暴擊。如果網站聲明了HSTS策略,則瀏覽器必須拒絕所有HTTP連接并阻止用戶接受不安全的SSL證書。
    配置好后可一建生成nginx.conf文件,同時可控制nginx使用此文件進行啟動與重載,完成對nginx的圖形化控制閉環。本系統通過Let's encrypt申請證書,使用acme.sh腳本進行自動化申請和續簽,開啟續簽的證書將在每天凌晨2點進行續簽, 只有超過60天的證書才會進行續簽,只支持在linux下簽發證書。
    神器 Nginx 的學習手冊
    2022-02-23 07:35:52
    Nginx 是一個高性能的 HTTP 和反向代理服務器,特點是占用內存少,并發能力強,事實上 Nginx 的并發能力確實在同類型的網頁服務器中表現較好。 Nginx 專為性能優化而開發,性能是其最重要的要求,十分注重效率,有報告 Nginx 能支持高達 50000 個并發連接數。 01 Nginx 知識網結構圖 Nginx 的知識網結構圖如下:
    這樣一旦運行的服務器宕機,就把備份的服務器運行起來。冷備的方案比較容易實現,但冷備的缺點是主機出現故障時備機不會自動接管,需要主動切換服務。當一臺服務器宕機后,自動切換到另一臺備用機使用。
    一般有運行nginx服務器的用戶組,nginx進程pid存放路徑,日志存放路徑,配置文件引入,允許生成worker process數等。#user administrator administrators; #配置用戶或者組,默認為nobody nobody。keepalive_requests 120;#單連接請求上限次數。
    NGINX開箱即用,將文件上傳限制為1MB。您可以使用client_max_body_size指令來控制它。你需要什么 為了完成這項工作,您需要安裝并配置NGINX才能運行您的網站。我將在Ubuntu Server 上進行演示,但是此過程應在支持NGINX的任何平臺上都可以工作。保存并關閉文件。使用以下命令運行NGINX配置測試: sudo nginx -t 您應該不會看到任何錯誤。您的NGINX服務器現在可以抵御DoS攻擊,同時仍然允許用戶上傳文件。當然,這并不是預防DoS攻擊的萬能措施,針對大量DDOS攻擊建議使用專業的硬件防火墻。
    內網滲透合集(三)
    2023-01-28 09:44:16
    jsp端口轉發滲透過程中,由于windows和linux的差別以及運行語言環境的限制導致端口轉發經常出現問題。于是自己寫了個簡單的JSP的端口轉發腳本。仿造 LCX的功能,具有正向、反向、監聽三種模式。對于目前數量眾多的JAVA WEB網站來說,可以比較方便的實現端口轉發。在這里發布出來,小伙伴們使用過程中,如果發現什么bug歡迎提交哈~參數說明/KPortTran.jsp?lip = local ip / 本地ip //一般為內網主機IP. lp = local port / 本地端口 //一般為內網主機端口
    對于黑名單之內的 IP ,拒絕提供服務。為了方便管理和共享,我們選擇通過 Nginx+Lua+Redis 的架構實現 IP 黑名單的功能,架構圖如下:實現1、安裝 Nginx+Lua模塊,推薦使用 OpenResty,這是一個集成了各種 Lua 模塊的 Nginx 服務器:2、安裝并啟動 Redis 服務器;3、配置 Nginx 示例:Nginx 配置其中lua_shared_dict ip_blacklist 1m;指定 lua 腳本位置。
    您所使用的設備(IP:*下:嚇我一跳,定睛一看,端口6379,不是radis的默認端口嗎?前些陣子寫項目就用自己的服務器搭了一個radis服務器,不會被黑了吧?用騰訊云自動實例檢測,提示CPU近期占有率高達92%,但是我在服務器中就掛了一個radis和nginx,有鬼!我最后用VNC登錄方式成功登錄,書到用時方恨少,Linux的運維命令又忘了不少,下面記記Linux問題排查的命令吧問題排查查看CPU狀態:top
    Andrew
    暫無描述
      亚洲 欧美 自拍 唯美 另类