1. 背景
苦惱於互聯網上現有的基線資源不具備實時性,適用的版本比較老舊,甚至已逐步被企業淘汰。博主本着學習實驗的心態,寫下這篇博客,希望能給那些同我有着相同困擾的安全基線初學者鋪塊磚。恭候各位路過的大佬的指正!
2. 環境准備
操作系統:CentOS 7
1. 添加CentOS 7 EPEL倉庫
sudo yum install epel-release
2. 安裝Nginx
sudo yum install nginx
3. 查看是否正確安裝
rpm -qa | grep nginx
4. 啟動Nginx
sudo systemctl start nginx //啟動Nginx
sudo systemctl status nginx//查看Nginx狀態
ps -ef |grep nginx|grep -v grep
nginx會自動根據當前主機的CPU的內核數目創建對應的進程數量。nginx進程在啟動的時候,會附帶一個守護進程,用於保護正式進程不被異常終止;如果守護進程一旦返現nginx繼承被終止了,會自動重啟該進程。守護進程一般會稱為master進程,業務進程被稱為worker進程
5. 設置開機自啟Nginx
sudo systemctl enable nginx
6. 查看默認頁面
如果正在運行防火牆,運行以下命令以允許HTTP和HTTPS通信:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在瀏覽器訪問:http://Nginx服務器IP地址/,默認頁面如下:
至此,已完成測試環境的搭建。
7. 查看配置文件nginx.conf
Nginx使用最多的三個核心功能是反向代理、負載均衡和靜態服務器,不同的功能的使用,都跟Nginx的配置密切相關。
Nginx服務器的配置信息主要集中在nginx.conf這個配置文件中,可分為6個部分。
- main:用於進行nginx全局信息的配置
- events:用於nginx工作模式的配置
- http:用於進行http協議信息的一些配置
- server:用於進行服務器訪問信息的配置
- location:用於進行訪問路由的配置
- upstream:用於進行負載均衡的配置
接下去步入正題,測試安全配置加固項。
2. 安全配置
2.1 禁止Nginx顯示目錄列表
名稱 |
禁止Nginx顯示目錄列表 |
描述 |
Nginx服務器默認目錄:/usr/share/nginx/html 若文件根目錄里有 index.html,瀏覽器就會顯示 index.html的內容 若不存在 index.html,瀏覽器就會顯示文件根目錄的目錄列表,目錄列表包括文件根目錄下的文件和子目錄 |
問題影響 |
在nginx中開啟autoindex,配置不規范而造成目錄遍歷漏洞 |
檢查方法 |
核查配置文件cat /etc/nginx/nginx.conf |grep autoindex 確認autoindex不為ON |
參考值 |
autoindex off; //默認情況下為off |
加固步驟 |
1.備份nginx.conf cp nginx.conf nginx.conf.bak 2.配置nginx.conf,設置 autoindex off; 或者注釋#autoindex on; |
回退步驟 |
恢復原有配置 cp nginx.conf.bak nginx.conf |