最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx安全防護(hù)與HTTPS部署實(shí)戰(zhàn)

 更新時(shí)間:2026年04月09日 08:55:18   作者:枕布響丸辣  
文章介紹了Nginx安全加固與HTTPS部署,從編譯安裝、隱藏版本號(hào)、限制危險(xiǎn)請(qǐng)求、請(qǐng)求限制、防盜鏈、動(dòng)態(tài)黑名單、HTTPS部署等方面進(jìn)行了詳細(xì)說(shuō)明,需要的朋友可以參考下

前言

在互聯(lián)網(wǎng)高速發(fā)展的今天,Web 服務(wù)安全已成為企業(yè)與開發(fā)者必須重視的核心問題。Nginx 憑借輕量、高并發(fā)、模塊化設(shè)計(jì),占據(jù)全球近三分之一 Web 服務(wù)器市場(chǎng)。但 DDoS、CC 攻擊、惡意爬蟲、SQL 注入等威脅層出不窮,加之 GDPR、等保 2.0 等法規(guī)要求,掌握 Nginx 安全加固與 HTTPS 部署,已是運(yùn)維與開發(fā)人員的必備技能。

一、Nginx 核心安全配置(生產(chǎn)必配)

1. 編譯安裝 Nginx(安全基礎(chǔ))

生產(chǎn)環(huán)境不推薦 yum 直接安裝,編譯安裝可按需開啟模塊、關(guān)閉危險(xiǎn)功能,安全性更高。

(1)安裝依賴包

dnf install -y gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker git wget tar

(2)創(chuàng)建專用運(yùn)行用戶(最小權(quán)限原則)

禁止 nginx 使用 root 運(yùn)行,降低入侵后風(fēng)險(xiǎn):

useradd -M -s /sbin/nologin nginx
mkdir -p /var/log/nginx
chown -R nginx:nginx /var/log/nginx

(3)編譯配置(開啟安全必備模塊)

tar zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
./configure \
  --prefix=/usr/local/nginx \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_realip_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --with-pcre \
  --with-stream

make && make install

(4)創(chuàng)建軟鏈接、配置系統(tǒng)服務(wù)

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

新建 systemd 服務(wù)文件:

vi /lib/systemd/system/nginx.service

寫入內(nèi)容:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
ExecStartPre=/usr/local/sbin/nginx -t
ExecStart=/usr/local/sbin/nginx
ExecReload=/usr/local/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
User=root
Group=root
[Install]
WantedBy=multi-user.target

啟動(dòng)并設(shè)置開機(jī)自啟:

systemctl daemon-reload
systemctl start nginx
systemctl enable nginx

2. 隱藏 Nginx 版本號(hào)(防版本定向攻擊)

攻擊者可通過(guò)版本號(hào)查找對(duì)應(yīng) CVE 漏洞,生產(chǎn)環(huán)境必須隱藏

查看版本號(hào)

curl -I 192.168.10.101
# 返回:Server: nginx/1.26.3

關(guān)閉版本顯示

vi /usr/local/nginx/conf/nginx.conf

http塊中添加:

http {
    server_tokens off;
}

重載配置:

nginx -t && nginx -s reload

再次驗(yàn)證:

curl -I 192.168.10.101
# 返回:Server: nginx(無(wú)版本號(hào))

3. 限制危險(xiǎn) HTTP 請(qǐng)求方法

HTTP 中PUT/DELETE/CONNECT/TRACE等方法存在高危風(fēng)險(xiǎn):

  • PUT/DELETE:可上傳 / 刪除文件
  • TRACE:易導(dǎo)致 XST 攻擊
  • CONNECT:可被用于代理濫用

只放行GET/HEAD/POST,其他直接返回 444 斷開連接。

配置:

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

測(cè)試:

curl -XPUT -I 192.168.10.101
# 返回 Empty reply from server

注意:TRACE/CONNECT 會(huì)被 Nginx 核心層直接攔截,返回 405/400,不會(huì)進(jìn)入 if 判斷。

4. 請(qǐng)求限制(CC 攻擊防御核心)

CC 攻擊通過(guò)海量請(qǐng)求耗盡服務(wù)器資源,Nginx 自帶limit_req模塊可精準(zhǔn)限速。

配置請(qǐng)求速率限制

http {
    # 定義限流區(qū)域:10M內(nèi)存,按IP限速,10請(qǐng)求/秒
    limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
    server {
        location / {
            root html;
            index index.html;
            # 突發(fā)隊(duì)列20,不延遲直接處理
            limit_req zone=req_limit burst=20 nodelay;
        }
    }
}

關(guān)鍵參數(shù)說(shuō)明

  • limit_req_zone:定義共享內(nèi)存,存儲(chǔ) IP 訪問狀態(tài)
  • $binary_remote_addr:以客戶端 IP 為維度限流
  • rate=10r/s:每秒最多 10 個(gè)請(qǐng)求
  • burst=20:緩沖隊(duì)列,超出速率的請(qǐng)求排隊(duì)
  • nodelay:隊(duì)列請(qǐng)求立即處理,否則會(huì)延遲返回

壓力測(cè)試驗(yàn)證

安裝 ab 工具:

dnf install httpd-tools -y

發(fā)起 300 請(qǐng)求,30 并發(fā):

ab -n 300 -c 30 http://192.168.10.101/

查看日志:

tail -300 /usr/local/nginx/logs/access.log | grep -c 503

大量請(qǐng)求返回 503,限流生效。

5. 防盜鏈配置(保護(hù)靜態(tài)資源)

盜鏈會(huì)消耗服務(wù)器帶寬、侵犯版權(quán),Nginx 可通過(guò)referer機(jī)制攔截。

實(shí)驗(yàn)環(huán)境

  • 源站:www.aaa.com 192.168.10.101
  • 盜鏈站:www.bbb.com 192.168.10.102

配置防盜鏈

location ~* \.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|webp|ico)$ {
    root html;
    # 信任域名
    valid_referers aaa.com *.aaa.com;
    # 非法referer返回403
    if ($invalid_referer) {
        return 403;
    }
}

配置后,盜鏈網(wǎng)站直接顯示圖片 403,防護(hù)生效。

二、Nginx 高級(jí)防護(hù)(進(jìn)階安全)

1. 動(dòng)態(tài)黑名單(實(shí)時(shí)封禁惡意 IP)

靜態(tài)allow/deny需要重啟服務(wù),動(dòng)態(tài)黑名單可熱加載,無(wú)需重啟。

(1)創(chuàng)建黑名單文件

vi /usr/local/nginx/conf/blockips.conf

寫入:

192.168.1.0/24 1;
192.168.10.102 1;

數(shù)字含義

  • 0:允許
  • 1:返回 403 封禁
  • 2:返回 444 斷開
  • 3:返回 503

(2)主配置加載

http {
    geo $block_ip {
        default 0;
        include /usr/local/nginx/conf/blockips.conf;
    }
    server {
        if ($block_ip) {
            return 403;
        }
    }
}

重載:

nginx -t && nginx -s reload

(3)自動(dòng)封禁高頻 IP 腳本

#!/bin/bash
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | awk '{if($1>100) print $2" 1;"}' > /usr/local/nginx/conf/blockips.conf

訪問量超 100 的 IP 自動(dòng)加入黑名單,配合定時(shí)任務(wù)使用。

三、Nginx HTTPS 部署(全站加密)

1. HTTPS 核心原理

HTTPS = HTTP + SSL/TLS,解決 HTTP 三大風(fēng)險(xiǎn):

  • 竊 聽風(fēng)險(xiǎn):明文傳輸可被截取
  • 篡改風(fēng)險(xiǎn):數(shù)據(jù)被中間人修改
  • 冒充風(fēng)險(xiǎn):訪問釣魚網(wǎng)站

HTTPS 采用混合加密

  • 握手階段:非對(duì)稱加密(公鑰 / 私鑰)交換會(huì)話密鑰
  • 傳輸階段:對(duì)稱加密加密業(yè)務(wù)數(shù)據(jù),效率更高

數(shù)字證書解決公鑰信任問題,由 CA 機(jī)構(gòu)簽名,系統(tǒng)內(nèi)置根證書信任。

2. 生成自簽名證書(測(cè)試環(huán)境)

生產(chǎn)請(qǐng)使用 Let’s Encrypt、DigiCert 等正規(guī) CA 證書。

mkdir -p /etc/nginx/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx-selfsigned.key -out /etc/nginx/ssl/nginx-selfsigned.crt -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/CN=localhost"

3. Nginx 配置 HTTPS

server {
    listen 443 ssl;
    server_name localhost;
    # 證書路徑
    ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;
    # 安全協(xié)議與加密套件
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;
    location / {
        root /usr/local/nginx/html;
        index index.html;
    }
}
# HTTP強(qiáng)制跳轉(zhuǎn)HTTPS
server {
    listen 80;
    server_name localhost;
    return 301 https://$host$request_uri;
}

重載配置:

nginx -t && nginx -s reload

4. 驗(yàn)證 HTTPS

訪問https://服務(wù)器IP,瀏覽器提示證書不安全(自簽名),測(cè)試環(huán)境可忽略。生產(chǎn)環(huán)境使用受信任證書后,瀏覽器顯示安全鎖,支持 HTTP/2,SEO 權(quán)重更高。

四、生產(chǎn)環(huán)境安全加固總結(jié)

  1. 最小權(quán)限:使用專用 nginx 用戶,禁止 root 運(yùn)行
  2. 隱藏信息:關(guān)閉版本號(hào)、隱藏服務(wù)器信息
  3. 請(qǐng)求限流:limit_req 防 CC,limit_conn 防并發(fā)過(guò)量
  4. 方法限制:只放行 GET/HEAD/POST
  5. 防盜鏈:保護(hù)靜態(tài)資源,減少帶寬浪費(fèi)
  6. 動(dòng)態(tài)黑名單:實(shí)時(shí)封禁惡意 IP
  7. 全站 HTTPS:開啟 TLS1.2+,禁用不安全協(xié)議
  8. 定期更新:Nginx 保持最新版,修復(fù) CVE 漏洞

五、結(jié)語(yǔ)

Nginx 安全防護(hù)不是一次性配置,而是持續(xù)優(yōu)化的過(guò)程。本文覆蓋的編譯加固、版本隱藏、請(qǐng)求限流、防盜鏈、動(dòng)態(tài)黑名單、HTTPS 部署,可直接應(yīng)用于中小企業(yè)生產(chǎn)環(huán)境,大幅提升 Web 服務(wù)安全性。

以上就是Nginx安全防護(hù)與HTTPS部署實(shí)戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于Nginx安全防護(hù)與HTTPS部署的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例

    Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例

    這篇文章主要介紹了Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例,本文通過(guò)分析github發(fā)現(xiàn)這個(gè)應(yīng)用,可以避免在https的網(wǎng)站中出現(xiàn)http鏈接,需要的朋友可以參考下
    2015-03-03
  • Nginx中動(dòng)態(tài)upstream域名解析失效問題解決的幾種方法

    Nginx中動(dòng)態(tài)upstream域名解析失效問題解決的幾種方法

    本文主要介紹了Nginx中實(shí)現(xiàn)動(dòng)態(tài)解析upstream域名的方法,強(qiáng)調(diào)了使用resolver指令與變量觸發(fā)、作用域正確、配置兼容三要素的重要性,并提供了四種解決方案,下面就來(lái)詳細(xì)的介紹一下
    2026-04-04
  • Nginx實(shí)現(xiàn)UDP四層轉(zhuǎn)發(fā)的過(guò)程

    Nginx實(shí)現(xiàn)UDP四層轉(zhuǎn)發(fā)的過(guò)程

    為了解決VPN連接速度慢的問題,可以通過(guò)Nginx實(shí)現(xiàn)UDP的四層轉(zhuǎn)發(fā),首先檢查Nginx是否安裝了with-stream模塊,然后修改nginx.conf配置文件進(jìn)行UDP端口的轉(zhuǎn)發(fā)設(shè)置,使用nginx-t檢查配置文件語(yǔ)法,無(wú)誤后重新加載Nginx,這樣通過(guò)國(guó)內(nèi)服務(wù)器中轉(zhuǎn),可以提升連接到國(guó)外服務(wù)器的速率
    2024-09-09
  • 解決使用了nginx獲取IP地址都是127.0.0.1 的問題

    解決使用了nginx獲取IP地址都是127.0.0.1 的問題

    這篇文章主要介紹了解決使用了nginx獲取IP地址都是127.0.0.1 的問題,獲取i工具的完整代碼文中給大家提到,具體實(shí)例代碼跟隨小編一起看看吧
    2021-09-09
  • nginx中配置pathinfo模式示例

    nginx中配置pathinfo模式示例

    這篇文章主要介紹了nginx中配置pathinfo模式示例,本文詳細(xì)記錄了摸索過(guò)程和成功的配置案例,需要的朋友可以參考下
    2014-08-08
  • nginx slice模塊的使用和源碼分析小結(jié)

    nginx slice模塊的使用和源碼分析小結(jié)

    很多請(qǐng)求都會(huì)去訪問一個(gè)巨大的文件,這個(gè)時(shí)候slice模塊就有了用武之地,本文主要介紹了nginx slice模塊的使用和源碼分析,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • nginx 訪問限制與訪問控制的實(shí)現(xiàn)

    nginx 訪問限制與訪問控制的實(shí)現(xiàn)

    訪問控制要做的事情是控制客戶端的資源訪問權(quán)限,本文主要介紹了nginx 訪問限制與訪問控制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • 排查Openresty獲取不到Host請(qǐng)求頭解決過(guò)程詳解

    排查Openresty獲取不到Host請(qǐng)求頭解決過(guò)程詳解

    這篇文章主要為大家介紹了排查Openresty獲取不到Host請(qǐng)求頭解決過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 安裝配置php-fpm來(lái)搭建Nginx+PHP的生產(chǎn)環(huán)境

    安裝配置php-fpm來(lái)搭建Nginx+PHP的生產(chǎn)環(huán)境

    這篇文章主要介紹了安裝配置php-fpm來(lái)搭建Nginx+PHP的生產(chǎn)環(huán)境的方法,php-fpm的作用是將FastCGI進(jìn)程管理整合進(jìn)PHP包,需要的朋友可以參考下
    2016-01-01
  • 阿里云部署Ubuntu 1.4 Flask + WSGI + Nginx 詳解

    阿里云部署Ubuntu 1.4 Flask + WSGI + Nginx 詳解

    本文解決的是 Flask 最后一公里的問題:Linux 部署,需要的朋友可以參考下
    2017-12-12

最新評(píng)論

奇台县| 密山市| 商都县| 会宁县| 新安县| 沛县| 汝南县| 西昌市| 久治县| 永昌县| 临汾市| 凌云县| 永年县| 巨野县| 吴川市| 祥云县| 夏邑县| 会东县| 平顶山市| 克山县| 道真| 枞阳县| 旬阳县| 宝山区| 剑阁县| 白河县| 平邑县| 防城港市| 安顺市| 自治县| 伊宁市| 江津市| 安溪县| 孟州市| 三穗县| 凉城县| 花垣县| 宁乡县| 大渡口区| 天峻县| 金阳县|