nginx安全加固
nginx模組
http_substitutions_filter_module
modsecurity
Tengine支援了動態載入模組
增加modsecurity模組
modsecurity傾向於過濾和阻止web危險
http://waringid.blog.51cto.com/65148/1629905
關閉伺服器標記 http{server_tokens off} 隱藏nginx版本
自定義快取
server
{
client_body_buffer_size 16K;
client_header_buffer_size 1k;
client_max_body_size 1m;
large_client_header_buffers 4 8k;
}
設定timeout設低來防禦DOS攻擊
http
{
client_body_timeout 10;
client_header_timeout 30;
keepalive_timeout 30 30;
send_timeout 10;
}
限制訪問的方法
server
{
if($request_method !~ ^(GET|HEAD|POST)$) {
return404;
}
}
實際中應該使用444
日誌切割
kill-USR1 $(cat /var/run/nginx/nginx.pid)
模組 ngx_http_access_module 允許限制某些IP地址的客戶端訪問
location/ {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}
在原來的編譯引數的首行加入–add-module=/root/install/naxsi-core-0.51-1/naxsi_src
nbs.rules檔案
增加IP限制功能
模組ngx_http_limit_conn_module和來ngx_http_limit_req_module
http {
limit_req_zone$binary_remote_addr zone=one:10m rate=10r/s;
limit_conn_zone$binary_remote_addr zone=two:10m;
}
server{
limit_req zone=one burst=5;
limit_conn two 15;
}
增加WAF模組
增加fail2ban防止非法IP
ngx_http_stub_status_module 模組
Nginx模組GeoIP匹配處理IP所在國家、城市
if ( $geoip_country_code !~ ^(CN|US)$ ) {
return 403;
}
自定義nginx版本號
http://purplegrape.blog.51cto.com/1330104/1291871
封殺各種user-agent
if ($http_user_agent ~* “java|python|perl|ruby|curl|bash|echo|uname|base64|decode|md5sum|select|concat|httprequest|httpclient|nmap|scan” ) {
return 403;
}
if ($http_user_agent ~* “” ) {
return 403;
}
封殺特定的url
location ~* .(bak|save|sh|sql|mdb|svn|git|old)$ {
rewrite ^/(.*)$ $host permanent;
}
location /(admin|phpadmin|status) { deny all; }
封殺特定的http方法和行為
if ($request_method !~ ^(GET|POST|HEAD)$ ) {
return 405;
}
if ($http_range ~ “d{9,}”) {
return 444;
}
強制網站使用域名訪問,可以逃過IP掃描
if ( $host !~* `abc.com` ) {
return 403;
}
url 引數過濾敏感字
if ($query_string ~* “union.*select.*(“) {
rewrite ^/(.*)$ $host permanent;
}
if ($query_string ~* “concat.*(“) {
rewrite ^/(.*)$ $host permanent;
}
強制要求referer
if ($http_referer = “” ) {
return 403;
}
老外的配置
set $add 1;
location /index.php {
limit_except GET POST {
deny all;
}
set $ban “”;
if ($http_referer = “” ) {set $ban $ban$add;}
if ($request_method = POST ) {set $ban $ban$add;}
if ($query_string = “action=login” ){set $ban $ban$add;}
if ($ban = 111 ) {
access_log /var/log/[133]nginx/ban IP;
return 404;
}
proxy_pass http://127.0.0.1:8000; #here is a patch
}
目錄只讀
mount –bind /data /var/www/html
mount -o remount,ro –bind /data /var/www/html
極大程度上可以防止提權篡改
本文轉自 liqius 51CTO部落格,原文連結:http://blog.51cto.com/szgb17/1710068,如需轉載請自行聯絡原作者
相關文章
- Nginx伺服器安全加固tips整理Nginx伺服器
- ios安全加固 ios 加固方案iOS
- 系統安全加固
- JavaScript混淆安全加固JavaScript
- 密碼安全加固密碼
- open Euler安全加固
- MySQL安全加固方法分享MySql
- AIX作業系統安全加固AI作業系統
- 伺服器安全加固 - Linux伺服器Linux
- iOS安全加固方法及實現iOS
- 【中介軟體安全】IIS6安全加固規範
- Redis服務安全加固的說明Redis
- 【Linux】Linux安全加固指令碼Linux指令碼
- linux 賬號密碼安全加固Linux密碼
- PbootCMS模板安全設定與加固方法boot
- nginx安全Nginx
- GNU/Linux安全基線與加固-0.1Linux
- 加固Oracle安全,為監聽設定口令Oracle
- 初級安全入門——Windows作業系統的安全加固Windows作業系統
- 頂象端加固保障App安全與合規APP
- 物理機伺服器系統安全加固方法伺服器
- linux安全加固常見加密協議(續)Linux加密協議
- 深入分析Linux系統深度安全加固Linux
- Java助力加固Excel檔案,保障資料安全JavaExcel
- 藉助keepalived + nginx雙機熱備加固flume線路Nginx
- 如何安全加固樂娛API介面,遠離漏洞風險?API
- ecshop漏洞修復以及如何加固ecshop網站安全網站
- 程式碼安全之程式碼混淆及加固(Android)?Android
- 深入分析Linux系統深度安全加固(轉)Linux
- 在Linux中,如何進行系統安全加固?Linux
- 幾維安全APP安全加固率先實現Android Q Beta相容支援APPAndroid
- Nginx安全配置研究Nginx
- Nginx安全基線Nginx
- 安全開發運維必備,如何進行Nginx代理Web伺服器效能優化與安全加固配置,看這篇指南就夠了運維NginxWeb伺服器優化
- 15、資料庫加固-redis 加固資料庫Redis
- 微信小程式之滲透測試、加固、安全檢測微信小程式
- 【知識分享】伺服器IIS如何進行安全加固伺服器
- 走在安全前列的公牛如何做App 應用加固?APP