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

nginx安全防護與https部署全過程

 更新時間:2025年05月06日 16:28:44   作者:阿薩德791  
這篇文章主要介紹了nginx安全防護與https部署全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

核心安全配置

編制安裝nginx

安裝支持軟件

[root@localhost ^]# dnf install -y gcc make pcre-deve1 zlib-developenssl-devel perl-ExtUtils-MakeMaker git wget tar

創(chuàng)建運行用戶,組和日志目錄

[root@localhost~]# useradd -M -s /sbin/nologin nginx
[root@localhost~]# mkdir-p/var/log/nginx
[root@localhost~]# chown -R nginx:nginx /var/log/nginx

編譯安裝

[root@localhost ^]# tar zxf nginx-1.26.3.tar.gz
[root@localhost ^]# cd nginx-1.26.3
[root@localhost 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

[root@localhost nginx-1.26.3]# make & make install

為主程序 nginx創(chuàng)建鏈接文件

[root@localhost nginx-1.26.3]# In -s /usr/local/nginx/sbin/nginx/usr/local/sbin/

添加nginx系統(tǒng)服務

[root@localhost ^]# vi /lib/systemd/system/nginx.service

[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
[Instal1]
WantedBy=multi-user.target

[root@localhost^]# systemctl daemon-reload
[root@localhost~]# systemctl start nginx
[root@localhost^]# systemctl enable nginx

隱藏版本號

在生產(chǎn)環(huán)境中,需要隱藏Nginx的版本號,以避免泄漏Nginx白的版本,使攻擊者不能針對特定版本進行攻擊。

[root@localhost ~]# curl -I 192.168.10.101
HTTP/1.1 200 OK
Server: nginx/1.26.3

修改配置文件

[root@localhost^]# vi /usr/local/nginx/conf/nginx.conf

http {
include mime.types;
default_type application/octet-stream;
server_tokens off;

.......

[root@localhost^]#nginx -t
[root@localhost~]#nginx -s reload
[root@localhost~]# curl -I 192.168.10.101

HTTP/1.1 200 OK
Server: nginx

限制危險請求方法

不安全的請求方式,是潛在的安全風險,TRACE(易引發(fā)XST攻擊)、PUT/DELETE(文件修改風險)、CONNECT(代理濫用),通過正則表達式匹配請求方法,非白名單方法返回444(無響應關閉連接)

修改配置文件

[root@localhost ^]# vi /usr/local/nginx/conf/nginx.conf

server {
($request_method !~ (GET|HEAD|POST)$) {
return 444;

}
}

驗證

[root@localhost ^]# curl -XPUT -I 192.168.10.10]
curl: (52) Empty reply from server

請求限制(cc攻擊防御)

CC攻擊(Challenge Collapsar攻擊)是一種常見的網(wǎng)絡J攻擊方式,通過大量合法或偽造的小流量請求來耗盡服務器資源,導致正常用戶無去訪問網(wǎng)站。要在Nginx中有效防止CC攻擊,可以采用多種策略和方法

CC攻擊,也稱為連接數(shù)攻擊或請求速率限制攻擊,通過模擬大量用戶訪問來消耗服務器資源,從而使得正常用戶無法正常訪問網(wǎng)站。為了防止此類攻擊,可以使用Nginx提供的模塊來限制請求速率和并發(fā)連接數(shù)

使用nginx的limit_req模塊限制請求速率

[root@localhost ^]# vi /usr/local/nginx/conf/nginx.conf

http {
limit_req_zone_$binary_remote_addr_zone=req_limit:10m rate=10r/s;
server {
location / {
root html;
index index.html index.php;
limit_req zone=req_limit burst=20 nodelay;

}
}
}

壓力測試驗證

安裝ab測試工具

[root@localhost ^]# dnf install httpd-tools -y

[root@localhost~]# ab -n 300 -c 30 http://192.168.10.101/

[root@localhost ^]# tail -300 /usr/local/nginx/logs/access. log | grep -c
503
279
  • -n 300:表示總請求數(shù)為300次,即模擬客戶端向服務器發(fā)送300 次HTTP請求
  • -c 30:表示并發(fā)用戶數(shù)為30,即同時有30個請求并行發(fā)送到服務器。

防盜鏈

防盜鏈是一種重要的安全設置,旨在防止未經(jīng)授權的用戶盜用網(wǎng)站(靜態(tài))資源。盜鏈行為不僅侵犯了內容創(chuàng)作者的版權,還可能導致原網(wǎng)站帶寬和資源的過度消耗,影響正常用戶的訪問速度和體驗。

修改 Windows 的 C:\Windows\System32 drivers\etc\hossts文件,設置域名和IP映射關系

192.168.10.101 www.aaa.com

192.168.10.102 www.bbb.com

修改兩臺OpenEuler的hosts文件,設置域名和IP映射關系。

192.168.10.101 www.aaa.com

192.168.10.102www.bbb.com

把圖片kgc.png放到源主機(www.aaa.com的工作目錄下

[root@localhost ^]# ls /usr/local/nginx/html
Index. html kgc.png

編輯原網(wǎng)站首頁文件

[root@localhost ^]# vi /usr/local/nginx/html/index.html

<html>
<body>
<h1>aaa It work!</h1>
<img src="kgc.png"/>

<body>

</html>

使用瀏覽器訪問進行驗證即可

編輯盜鏈網(wǎng)站首頁文件

[root@localhost ^]# dnf -y install httpd
[root@localhost~]# vi /usr/local/nginx/html/index.html

<html
<body>
<h1>bbb It work! </hl>
<img src="http://www.aaa.com/kgc.png
</body>
</html>

[root@localhost~]# systemctl stop firewalld
[root@localhost`]# systemctl start httpd

測試訪問盜鏈網(wǎng)站(使用瀏覽器)

配置Nginx防盜鏈

[root@localhost ^]# vi /usr/local/nginx/conf/nginx.conf
location ^* \. (gif|jpg|jpeg|png|bmp|swf|flv|mp4|webp|ico)s{
root html;
valid_referers aaa.com *.aaa.com;
if($invalid referer){
return 403;

}

}

[root@localhost^]#nginx -t
[root@localhost~]#nginx -s reload

測試訪問盜鏈網(wǎng)站(盜鏈失敗403)

高級防護

動態(tài)黑名單

動態(tài)黑名單是Nginx中一種實時攔截惡意請求的安全機制,它允許在不重啟服務的情況下,動態(tài)更新需要封禁的IP地址或網(wǎng)段。

相比靜態(tài)配置的allow/deny指令,動態(tài)黑名單更靈活高效,適用于高并發(fā)、多變的攻擊擊防護場景。

編輯黑名單配置文件

[root@localhost ^]# vi /usr/local/nginx/conf/blockips.conf

192.168.1.0/24 1;
192.168.10.102 1;

編輯主配置文件

[root@localhost^]# vi /usr/local/nginx/conf/nginx.conf

http {
geo $block_ip {
default 0;
finclude /usr/local/nginx/conf/blockips.conf;

}

server
if
($block_ip) {
return 403;

}

}

}
[root@localhost^]# nginx -t
[root@localhost~]# nginx -s reload

使用封禁ip測試訪問

[root@localhost ~]# curl 192.168.10.101

<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

自動添加黑名單

#!/bin/bash
#自動封禁訪問超過100次的IP
awk '{print$1}'/var/log/nginx/access.log|sort|uniq -c?ssort -nr | awk'{if($1>100) print $2"1;"}' >/usr/local/nginx/conf/bllockips.conf
  • uniq-c:統(tǒng)計連續(xù)出現(xiàn)的次數(shù),并在行首顯示次數(shù)
  • sort-nr:按數(shù)值排序

nginx https配置

https概念

眾所周知,http(超文本傳輸協(xié)議)是客戶端瀏覽器與web服務器之間的通信協(xié)議,而https協(xié)議可以認為是HTTP+SSL/TLS,在http之下tcp之上加了ss1一層,用于對應用層數(shù)據(jù)的加解密。

如下所示:

  • http
  • ssl/tsl
  • tcp
  • ip

http為什么不安全

HTTP由于是明文傳輸,主要存在三大風險:竊 聽風險、篡改區(qū)險、冒充風險。

  • 竊 聽風險
  • 中間人可以獲取到通信內容,由于內容是明文,所以獲取明文后有安全風險
  • 篡改風險
  • 中間人可以篡改報文內容后再發(fā)送給對方,風險極大。
  • 冒充風險
  • 比如你以為是在和某寶通信,但實際上是在和一個釣魚網(wǎng)站通信。

安全通信的四大原則

通信需要包括以下四個原則:機密性、完整性,身份認證和不可否認。

  • 機密性:即對數(shù)據(jù)加密,解決了竊 聽風險,因為即使被中間人竊 聽,由于數(shù)據(jù)是加密的,他也拿不到明文:
  • 完整性:指數(shù)據(jù)在傳輸過程中沒有被篡改,不多不少,保持原樣,中途如果哪怕改了一個標點符號,接收方也能識別出來,從來判定定接收報文不合法
  • 身份認證:確認對方的真實身份,即證明"你媽是你媽"的問題,這樣就解決了冒充風險,用戶不用擔心訪問的是某寶結果卻在和釣魚網(wǎng)網(wǎng)站通信的問題:
  • 不可否認:即不可否認已發(fā)生的行為,比如小明向小紅借了1000元,但沒打借條,或者打了借條但沒有簽名,就會造成小紅的資金損失夫。

https通信原理簡述

既然HTTP是明文傳輸?shù)?,那我們給報文加密不就行了,既然要加密,我們肯定需要通信雙方協(xié)商好密鑰吧。一種是通信雙方使用同一把密鑰,即對稱加密的方式來給報文進行加解密。

非對稱加密即加解密雙方使用不同的密鑰,一把作為公鑰,可以公開的,把作為私鑰,不能公開,公鑰加密的密文只有私鑰可以解密,私鑰簽名的內容,也只有公鑰可以驗簽。

數(shù)字證書,解決公鑰傳輸信任問題

證書是由站點管理者向CA申請,申請的時候會提交域名、組織單位信息和公鑰等數(shù)據(jù)(這些數(shù)據(jù)組成了Certificate Signing Request證書簽名請求簡稱CSR),CA會根據(jù)這些信息生成證書

https總結

server傳輸CA頒發(fā)的證書給client,client收到證書后使用系統(tǒng)內置的CA證書的公鑰來驗簽,驗簽通過證明證書是受信任的,證書受信任那么證書中的公鑰也就是受信任的,這樣的話就解決了公鑰傳輸過程中被調包的風險。

nginx配置https證書

由于ssl證書需要向CA組織申購,實驗采用自簽名證書(也就是自己給自己簽名并頒發(fā)證書,當然這種證書是不被信任的)

使用openssl 生成證書和私鑰生成證書和私鑰

創(chuàng)建證書存儲目錄

[root@localhost ^]# mkdir -p /etc/nginx/ssl

生成自簽名證書

[root@localhost ^]# 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/0=MyOrg/CN=localhost

Ps:

CA簽名證書:

需要由受信任的第三方證書頒發(fā)機構(CA)簽發(fā)。

流程如下:

  • 1.用戶生成私鑰和CSR(證書簽名請求)。
  • 2.將CSR提交給CA(如Let'sEncrypt、DigiCert等)。
  • 3.CA機構驗證身份后,用CA的私鑰對證書簽名,生成最終證書。

自簽名證書:

  • 證書的頒發(fā)者(Issuer)和主體(Subject)是同一個實體((即自己)。
  • 無需第三方CA參與,直接用工具(如0penSSL)生成私鑰和證書。
  • 簽名時使用自己的私鑰,而不是CA的私鑰。
  • 適用于測試、內部環(huán)境或無需公開信任的場景。

nginx啟用https

編輯nginx配置文件

[root@localhost ~]#vi /usr/local/nginx/conf/nginx.conf
server {
listen 443 ssl; #監(jiān)聽 HTTPS 端口
server_namelocalhost; #域名或IP
#指定證書和私鑰路徑
ssl_certificate
/etc/nginx/ssl/nginx-selfsigned.crt;
/etc/nginx/ssl/nginx-selfsigned.key;
issl_certificate_key

server {
listen 80;
server_name localhost;
return 301 https://$host$request_uri;

}
[root@localhost ^]#nginx -t
[root@localhost ^]#nginx -s reload

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • Nginx報:Nginx?-?504?Gateway?Time-out問題解決辦法

    Nginx報:Nginx?-?504?Gateway?Time-out問題解決辦法

    這篇文章主要給大家介紹了關于Nginx報:Nginx?-?504?Gateway?Time-out問題的解決辦法,一般是由于程序執(zhí)行時間過長導致響應超時,例如程序需要執(zhí)行90秒,而nginx最大響應等待時間為30秒,這樣就會出現(xiàn)超時,需要的朋友可以參考下
    2024-01-01
  • Laravel的Nginx重寫規(guī)則實例代碼

    Laravel的Nginx重寫規(guī)則實例代碼

    這篇文章主要介紹了Laravel的Nginx重寫規(guī)則實例代碼,需要的朋友可以參考下
    2017-09-09
  • nginx多域名轉發(fā)的實現(xiàn)

    nginx多域名轉發(fā)的實現(xiàn)

    本文主要介紹了nginx多域名轉發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • nginx日志過大問題解決

    nginx日志過大問題解決

    nginx默認的日志在logs/access.log,并且是一直累加寫入,時間長了就會非常大,本文主要介紹了nginx日志過大問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Nginx如何限制IP訪問只允許特定域名訪問

    Nginx如何限制IP訪問只允許特定域名訪問

    我們在使用的時候會遇到很多的惡意IP攻擊,這個時候就要用到Nginx 禁止IP訪問了,下面這篇文章主要給大家介紹了關于Nginx如何限制IP訪問只允許特定域名訪問的相關資料,需要的朋友可以參考下
    2022-07-07
  • Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法

    Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法

    這篇文章主要介紹了Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Nginx配置Basic Auth登錄認證的實現(xiàn)方法

    Nginx配置Basic Auth登錄認證的實現(xiàn)方法

    這篇文章主要介紹了Nginx配置Basic Auth登錄認證的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Nginx搶購限流配置實現(xiàn)解析

    Nginx搶購限流配置實現(xiàn)解析

    這篇文章主要介紹了Nginx搶購限流配置實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Ubuntu中Nginx虛擬主機設置的項目實踐

    Ubuntu中Nginx虛擬主機設置的項目實踐

    通過配置虛擬主機,可以在同一臺服務器上運行多個獨立的網(wǎng)站,本文主要介紹了Ubuntu中Nginx虛擬主機設置的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • nginx如何設置多個靜態(tài)訪問的文件夾

    nginx如何設置多個靜態(tài)訪問的文件夾

    這篇文章主要介紹了nginx如何設置多個靜態(tài)訪問的文件夾問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評論

丰县| 晴隆县| 临海市| 格尔木市| 紫阳县| 苍溪县| 赞皇县| 德惠市| 宜城市| 抚州市| 北海市| 紫阳县| 资阳市| 榆中县| 两当县| 南投市| 和田市| 固原市| 白银市| 仲巴县| 湖南省| 新余市| 天祝| 措勤县| 新邵县| 洞头县| 顺平县| 柳江县| 荣成市| 德兴市| 四平市| 华宁县| 芜湖县| 扶沟县| 乌兰察布市| 舞阳县| 玉环县| 合山市| 思茅市| 齐齐哈尔市| 禄丰县|