Nginx 是最流行的 Web 服務器,能夠只佔用 2.5 MB 的內存,卻能夠輕鬆處理 1w 的 http 請求。nginx
作爲網站的入口,Nginx 的安全設置重要性不言而喻。web
下面帶你一塊兒去認識一下這些安全配置吧!瀏覽器
nginx.conf是 Nginx 最主要的配置文件,大部分的安全配置都在這個文件上進行。安全
自動安裝的 Nginx 會內置不少模塊,並非全部的模塊都須要,對於非必須的模塊能夠禁用,如 autoindex module ,下面展現如何禁用服務器
# ./configure --without-http_autoindex_module # make # make install
默認狀況下,Nginx 的 server tokens 會在錯誤頁面顯示 Nginx 的版本號,這可能會致使信息泄露,未經受權的用戶可能會了解你使用的nginx版本。 應該在 nginx.conf 經過設置 server_tokens off 來禁用dom
爲了防止對 Nginx 進行潛在的 DOS 攻擊,能夠爲全部客戶端設置緩衝區大小限制,配置以下:工具
禁用全部不須要的 HTTP 方法,下面設置意思是隻容許 GET、HEAD、POST 方法,過濾掉 DELETE 和 TRACE 等方法。性能
location / { limit_except GET HEAD POST { deny all; } }
另外一種方法是在 server 塊 設置,不過這樣是全局設置的,要注意評估影響優化
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; }
持續監控和管理 Nginx 的錯誤日誌,就能更好的瞭解對 web 服務器的請求,注意到任何遇到的錯誤,有助於發現任何攻擊嘗試,並肯定您能夠執行哪些操做來優化服務器性能。網站
能夠使用日誌管理工具(例如 logrotate )來旋轉和壓縮舊日誌並釋放磁盤空間。 一樣,ngx_http_stub_status_module 模塊提供對基本狀態信息的訪問。
爲了進一步增強 Nginx web 的性能,能夠添加幾個不一樣的響應頭,推薦
X-Frame-Options
能夠使用 X-Frame-Options HTTP 響應頭指示是否應容許瀏覽器在 <frame> 或 <iframe> 中呈現頁面。 這樣能夠防止點擊劫持攻擊。
配置文件中添加:
add_header X-Frame-Options "SAMEORIGIN";
Strict-Transport-Security
HTTP Strict Transport Security,簡稱爲 HSTS。它容許一個 HTTPS 網站,要求瀏覽器老是經過 HTTPS 來訪問它,同時會拒絕來自 HTTP 的請求,操做以下:
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
CSP
Content Security Policy (CSP) 保護你的網站避免被使用如 XSS,SQL注入等手段進行攻擊,操做以下:
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
Nginx 默認容許使用不安全的舊 SSL 協議,ssl_protocols TLSv1 TLSv1.1 TLSv1.2,建議作以下修改:
ssl_protocols TLSv1.2 TLSv1.3;
此外要指定 cipher suites ,能夠確保在 TLSv1 握手時,使用服務端的配置項,以加強安全性。
ssl_prefer_server_ciphers on
舊版的 Nginx 總會存在各類各樣的漏洞,因此最好更新到最新版。
漏洞能夠去各大 CVE 網站去查詢,Nginx 最新版則去官網查看。
來源:https://www.toutiao.com/i6901...