檢查Nginx進程啟動賬號
描述
Nginx進程啟動賬號狀態,降低被攻擊概率
加固建議
修改Nginx進程啟動賬號: 1、打開conf/nginx.conf配置文件; 2、查看配置文件的user配置項,確認是非root啟動的; 3、如果是root啟動,修改成nobody或者nginx賬號; 備注: 4、修改完配置文件之后需要重新啟動Nginx。
Nginx的WEB訪問日志記錄狀態
描述
應為每個核心站點啟用access_log指令。默認情況下啟用。
加固建議
開啟Nginx的WEB訪問日志記錄: 1、打開conf/nginx.conf配置文件,含主配置文件中include項包含的子配置文件; 2、在http下配置access_log項
access_log logs/host.access.log main; 3、並在主配置文件,及主配置文件下的include文件中 刪除off項或配置為適當值
隱藏Nginx服務的Banner
描述
Nginx服務的Banner隱藏狀態
加固建議
Nginx后端服務指定的Header隱藏狀態隱藏Nginx服務Banner的狀態: 1、打開conf/nginx.conf配置文件; 2、在server欄目下,配置server_tokens項 server_tokens off; 如出現多項不支持,執行ln <conf_path> /etc/nginx/nginx.conf
確保NGINX配置文件權限為644
描述
把控配置文件權限以抵御外來攻擊
加固建議
修改Nginx配置文件權限: 執行chmod 644 <conf_path>來限制Nginx配置文件的權限;(<conf_path>為配置文件的路徑,如默認/安裝目錄/conf/nginx.conf或者/etc/nginx/nginx.conf,或用戶自定義,請 自行查找)
針對Nginx SSL協議進行安全加固
描述
Nginx SSL協議的加密策略進行加固
加固建議
Nginx SSL協議采用TLSv1.2: 1、打開conf/nginx.conf配置文件(或主配置文件中的inlude文件); 2、配置
server {
...
ssl_protocols TLSv1.2;
...
}
備注:配置此項請確認nginx支持OpenSSL,運行nginx -V 如果返回中包含built with OpenSSL則表示支持OpenSSL。 如不支持,可能需要增加配置ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 如果尚未配置ssl協議,請盡快配置(參考連接https://www.nginx.cn/doc/optional/ssl.html)
確保已禁用自動索引模塊
描述
自動索引模塊處理以斜杠字符結尾的請求。此功能啟用目錄列表,這在攻擊者偵察中可能很有用,因此應將其禁用。
加固建議
執行以下操作以禁用自動索引模塊: 搜索NGINX配置文件(NGINX.conf和任何包含的配置文件)以查找autoindex指令。
egrep -i '^\s*autoindex\s+' <main_config_path> egrep -i '^\s*autoindex\s+' <sub_config_path>
在location下刪除或者修改為 autoindex off;
檢查是否配置Nginx賬號鎖定策略。
描述
1.執行系統命令passwd -S nginx來查看鎖定狀態
出現Password locked證明鎖定成功
如:nginx LK ..... (Password locked.)或nginx L ....
2.默認符合,修改后才有(默認已符合)
3.執行系統命令passwd -l nginx進行鎖定
加固建議
配置Nginx賬號登錄鎖定策略: Nginx服務建議使用非root用戶(如nginx,nobody)啟動,並且確保啟動用戶的狀態為鎖定狀態。可執行passwd -l <Nginx啟動用戶> 如passwd -l nginx 來鎖定Nginx服務的啟動用戶。命令 passwd -S <用戶> 如passwd -S nginx可查看用戶狀態。 修改配置文件中的nginx啟動用戶修改為nginx或nobody 如: user nobody; 如果您是docker用戶,可忽略該項(或添加白名單)