配置WEB安全
創(chuàng)新互聯(lián)建站成立于2013年,先為宜都等服務(wù)建站,宜都等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為宜都企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
WEB安全是系統(tǒng)提供的最常見(jiàn)的服務(wù)之一,WEB安全服務(wù)器主要存在的漏洞包括:
物理路徑泄露
CGI源代碼泄露
目錄遍歷
執(zhí)行任意命令
緩沖區(qū)溢出
拒絕服務(wù)
跨站乳酸執(zhí)行
Windows平臺(tái)上使用的WEB服務(wù)器軟件是IIS,無(wú)論哪種操作系統(tǒng)平臺(tái),只要對(duì)外提供WEB服務(wù),就會(huì)面臨著來(lái)自外部的攻擊可能,所以需要對(duì)WEB服務(wù)器進(jìn)行有效的安全防護(hù)。
針對(duì)WEB服務(wù)器采取的一些有效措施包括:
a. 打補(bǔ)丁
針對(duì)IIS存在的系統(tǒng)漏洞,應(yīng)該定期下載安全補(bǔ)丁,及時(shí)發(fā)現(xiàn)和堵上漏洞。
b. 只開(kāi)放WEB服務(wù)端口
如果不需要其它的服務(wù),在安裝服務(wù)的時(shí)候選擇只安裝WEB服務(wù),并使用80端口,禁用其他的不必要的服務(wù),例如FTP和SMTP服務(wù)
c. WEB服務(wù)器應(yīng)該放在一個(gè)專門(mén)的區(qū)域中,利用防火墻保護(hù)WEB服務(wù)器。
這個(gè)專門(mén)的區(qū)域使WEB服務(wù)器與外網(wǎng)相對(duì)隔%C
為了更好的指導(dǎo)部署與測(cè)試藝術(shù)升系統(tǒng)nginx網(wǎng)站服務(wù)器高性能同時(shí)下安全穩(wěn)定運(yùn)行,需要對(duì)nginx服務(wù)進(jìn)行調(diào)優(yōu)與加固;
本次進(jìn)行Nginx服務(wù)調(diào)優(yōu)加固主要從以下幾個(gè)部分:
本文檔僅供內(nèi)部使用,禁止外傳,幫助研發(fā)人員,運(yùn)維人員對(duì)系統(tǒng)長(zhǎng)期穩(wěn)定的運(yùn)行提供技術(shù)文檔參考。
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。Nginx作為負(fù)載均衡服務(wù)器, Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP 程序?qū)ν膺M(jìn)行服務(wù),也可以支持作為 HTTP代理服務(wù)器對(duì)外進(jìn)行服務(wù)。
Nginx版本選擇:
項(xiàng)目結(jié)構(gòu):
Nginx文檔幫助:
Nginx首頁(yè)地址目錄: /usr/share/nginx/html
Nginx配置文件:
localtion 請(qǐng)求匹配的url實(shí)是一個(gè)正則表達(dá)式:
Nginx 匹配判斷表達(dá)式:
例如,匹配末尾為如下后綴的靜態(tài)并判斷是否存在該文件, 如不存在則404。
查看可用模塊編譯參數(shù):
http_gzip模塊
開(kāi)啟gzip壓縮輸出(常常是大于1kb的靜態(tài)文件),減少網(wǎng)絡(luò)傳輸;
http_fastcgi_module模塊
nginx可以用來(lái)請(qǐng)求路由到FastCGI服務(wù)器運(yùn)行應(yīng)用程序由各種框架和PHP編程語(yǔ)言等。可以開(kāi)啟FastCGI的緩存功能以及將靜態(tài)資源進(jìn)行剝離,從而提高性能。
keepalive模塊
長(zhǎng)連接對(duì)性能有很大的影響,通過(guò)減少CPU和網(wǎng)絡(luò)開(kāi)銷需要開(kāi)啟或關(guān)閉連接;
http_ssl_module模塊
Nginx開(kāi)啟支持Https協(xié)議的SSL模塊
Linux內(nèi)核參數(shù)部分默認(rèn)值不適合高并發(fā),Linux內(nèi)核調(diào)優(yōu),主要涉及到網(wǎng)絡(luò)和文件系統(tǒng)、內(nèi)存等的優(yōu)化,
下面是我常用的內(nèi)核調(diào)優(yōu)配置:
文件描述符
文件描述符是操作系統(tǒng)資源,用于表示連接、打開(kāi)的文件,以及其他信息。NGINX 每個(gè)連接可以使用兩個(gè)文件描述符。
例如如果NGINX充當(dāng)代理時(shí),通常一個(gè)文件描述符表示客戶端連接,另一個(gè)連接到代理服務(wù)器,如果開(kāi)啟了HTTP 保持連接,這個(gè)比例會(huì)更低(譯注:為什么更低呢)。
對(duì)于有大量連接服務(wù)的系統(tǒng),下面的設(shè)置可能需要調(diào)整一下:
精簡(jiǎn)模塊:Nginx由于不斷添加新的功能,附帶的模塊也越來(lái)越多,建議一般常用的服務(wù)器軟件使用源碼編譯安裝管理;
(1) 減小Nginx編譯后的文件大小
(2) 指定GCC編譯參數(shù)
修改GCC編譯參數(shù)提高編譯優(yōu)化級(jí)別穩(wěn)妥起見(jiàn)采用 -O2 這也是大多數(shù)軟件編譯推薦的優(yōu)化級(jí)別。
GCC編譯參數(shù)優(yōu)化 [可選項(xiàng)] 總共提供了5級(jí)編譯優(yōu)化級(jí)別:
常用編譯參數(shù):
緩存和壓縮與限制可以提高性能
NGINX的一些額外功能可用于提高Web應(yīng)用的性能,調(diào)優(yōu)的時(shí)候web應(yīng)用不需要關(guān)掉但值得一提,因?yàn)樗鼈兊挠绊懣赡芎苤匾?/p>
簡(jiǎn)單示例:
1) 永久重定向
例如,配置 http 向 https 跳轉(zhuǎn) (永久)
nginx配置文件指令優(yōu)化一覽表
描述:Nginx因?yàn)榘踩渲貌缓线m導(dǎo)致的安全問(wèn)題,Nginx的默認(rèn)配置中存在一些安全問(wèn)題,例如版本號(hào)信息泄露、未配置使用SSL協(xié)議等。
對(duì)Nginx進(jìn)行安全配置可以有效的防范一些常見(jiàn)安全問(wèn)題,按照基線標(biāo)準(zhǔn)做好安全配置能夠減少安全事件的發(fā)生,保證采用Nginx服務(wù)器系統(tǒng)應(yīng)用安全運(yùn)行;
Nginx安全配置項(xiàng):
溫馨提示: 在修改相應(yīng)的源代碼文件后需重新編譯。
設(shè)置成功后驗(yàn)證:
應(yīng)配置非root低權(quán)限用戶來(lái)運(yùn)行nginx服務(wù),設(shè)置如下建立Nginx用戶組和用戶,采用user指令指運(yùn)行用戶
加固方法:
我們應(yīng)該為提供的站點(diǎn)配置Secure Sockets Layer Protocol (SSL協(xié)議),配置其是為了數(shù)據(jù)傳輸?shù)陌踩?,SSL依靠證書(shū)來(lái)驗(yàn)證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密。
不應(yīng)使用不安全SSLv2、SSLv3協(xié)議即以下和存在脆弱性的加密套件(ciphers), 我們應(yīng)該使用較新的TLS協(xié)議也應(yīng)該優(yōu)于舊的,并使用安全的加密套件。
HTTP Referrer Spam是垃圾信息發(fā)送者用來(lái)提高他們正在嘗試推廣的網(wǎng)站的互聯(lián)網(wǎng)搜索引擎排名一種技術(shù),如果他們的垃圾信息鏈接顯示在訪問(wèn)日志中,并且這些日志被搜索引擎掃描,則會(huì)對(duì)網(wǎng)站排名產(chǎn)生不利影響
加固方法:
當(dāng)惡意攻擊者采用掃描器進(jìn)行掃描時(shí)候利用use-agent判斷是否是常用的工具掃描以及特定的版本,是則返回錯(cuò)誤或者重定向;
Nginx支持webdav,雖然默認(rèn)情況下不會(huì)編譯。如果使用webdav,則應(yīng)該在Nginx策略中禁用此規(guī)則。
加固方法: dav_methods 應(yīng)設(shè)置為off
當(dāng)訪問(wèn)一個(gè)特制的URL時(shí),如"../nginx.status",stub_status模塊提供一個(gè)簡(jiǎn)短的Nginx服務(wù)器狀態(tài)摘要,大多數(shù)情況下不應(yīng)啟用此模塊。
加固方法:nginx.conf文件中stub_status不應(yīng)設(shè)置為:on
如果在瀏覽器中出現(xiàn)Nginx自動(dòng)生成的錯(cuò)誤消息,默認(rèn)情況下會(huì)包含Nginx的版本號(hào),這些信息可以被攻擊者用來(lái)幫助他們發(fā)現(xiàn)服務(wù)器的潛在漏洞
加固方法: 關(guān)閉"Server"響應(yīng)頭中輸出的Nginx版本號(hào)將server_tokens應(yīng)設(shè)置為:off
client_body_timeout設(shè)置請(qǐng)求體(request body)的讀超時(shí)時(shí)間。僅當(dāng)在一次readstep中,沒(méi)有得到請(qǐng)求體,就會(huì)設(shè)為超時(shí)。超時(shí)后Nginx返回HTTP狀態(tài)碼408(Request timed out)。
加固方法:nginx.conf文件中client_body_timeout應(yīng)設(shè)置為:10
client_header_timeout設(shè)置等待client發(fā)送一個(gè)請(qǐng)求頭的超時(shí)時(shí)間(例如:GET / HTTP/1.1)。僅當(dāng)在一次read中沒(méi)有收到請(qǐng)求頭,才會(huì)設(shè)為超時(shí)。超時(shí)后Nginx返回HTTP狀態(tài)碼408(Request timed out)。
加固方法:nginx.conf文件中client_header_timeout應(yīng)設(shè)置為:10
keepalive_timeout設(shè)置與client的keep-alive連接超時(shí)時(shí)間。服務(wù)器將會(huì)在這個(gè)時(shí)間后關(guān)閉連接。
加固方法:nginx.conf文件中keepalive_timeout應(yīng)設(shè)置為:55
send_timeout設(shè)置客戶端的響應(yīng)超時(shí)時(shí)間。這個(gè)設(shè)置不會(huì)用于整個(gè)轉(zhuǎn)發(fā)器,而是在兩次客戶端讀取操作之間。如果在這段時(shí)間內(nèi),客戶端沒(méi)有讀取任何數(shù)據(jù),Nginx就會(huì)關(guān)閉連接。
加固方法:nginx.conf文件中send_timeout應(yīng)設(shè)置為:10
GET和POST是Internet上最常用的方法。Web服務(wù)器方法在RFC 2616中定義禁用不需要實(shí)現(xiàn)的可用方法。
加固方法:
limit_zone 配置項(xiàng)限制來(lái)自客戶端的同時(shí)連接數(shù)。通過(guò)此模塊可以從一個(gè)地址限制分配會(huì)話的同時(shí)連接數(shù)量或特殊情況。
加固方法:nginx.conf文件中l(wèi)imit_zone應(yīng)設(shè)置為:slimits $binary_remote_addr 5m
該配置項(xiàng)控制一個(gè)會(huì)話同時(shí)連接的最大數(shù)量,即限制來(lái)自單個(gè)IP地址的連接數(shù)量。
加固方法:nginx.conf 文件中 limit_conn 應(yīng)設(shè)置為: slimits 5
加固方法:
加固方法:
解決辦法:
描述后端獲取Proxy后的真實(shí)Client的IP獲取需要安裝--with-http_realip_module,然后后端程序采用JAVA(request.getAttribute("X-Real-IP"))進(jìn)行獲取;
描述: 如果要使用geoip地區(qū)選擇,我們需要再nginx編譯時(shí)加入 --with-http_geoip_module 編譯參數(shù)。
描述: 為了防止外部站點(diǎn)引用我們的靜態(tài)資源,我們需要設(shè)置那些域名可以訪問(wèn)我們的靜態(tài)資源。
描述: 下面收集了Web服務(wù)中常規(guī)的安全響應(yīng)頭, 它可以保證不受到某些攻擊,建議在指定的 server{} 代碼塊進(jìn)行配置。
描述: 為了防止某些未備案的域名或者惡意鏡像站域名綁定到我們服務(wù)器上, 導(dǎo)致服務(wù)器被警告關(guān)停,將會(huì)對(duì)業(yè)務(wù)或者SEO排名以及企業(yè)形象造成影響,我們可以通過(guò)如下方式進(jìn)行防范。
執(zhí)行結(jié)果:
描述: 有時(shí)你的網(wǎng)站可能只需要被某一IP或者IP段的地址請(qǐng)求訪問(wèn),那么非白名單中的地址訪問(wèn)將被阻止訪問(wèn), 我們可以如下配置;
常用nginx配置文件解釋:
(1) 阿里巴巴提供的Concat或者Google的PageSpeed模塊實(shí)現(xiàn)這個(gè)合并文件的功能。
(2) PHP-FPM的優(yōu)化
如果您高負(fù)載網(wǎng)站使用PHP-FPM管理FastCGI對(duì)于PHP-FPM的優(yōu)化非常重要
(3) 配置Resin on Linux或者Windows為我們可以打開(kāi) resin-3.1.9/bin/httpd.sh 在不影響其他代碼的地方加入:-Dhttps.protocols=TLSv1.2, 例如
原文地址:
1.禁用ROOT權(quán)限登錄。(重要)
2.安全組收縮不使用的端口,建議除443/80以及ssh登錄等必要端口外全部關(guān)閉。
3.防火墻收縮不使用的端口,建議除443/80以及ssh登錄端口外全部關(guān)閉。
4.更改ssh默認(rèn)端口22
5.除登錄USER,禁止其他用戶su到root進(jìn)程,并且ssh開(kāi)啟秘鑰及密碼雙層驗(yàn)證登錄。(重要)
6.限制除登錄USER外的其他用戶登錄。
7.安裝DenyHosts,防止ddos攻擊。
8.禁止系統(tǒng)響應(yīng)任何從外部/內(nèi)部來(lái)的ping請(qǐng)求。
9.保持每天自動(dòng)檢測(cè)更新。
10.禁止除root之外的用戶進(jìn)程安裝軟件及服務(wù),如有需要?jiǎng)troot安裝,chown給到用戶。
11.定時(shí)給服務(wù)器做快照。
12.更改下列文件權(quán)限:
13.限制普通用戶使用特殊命令,比如wget,curl等命令更改使用權(quán)限,一般的挖礦程序主要使用這幾種命令操作。
1.nginx進(jìn)程運(yùn)行在最小權(quán)限的子用戶中,禁止使用root用戶啟動(dòng)nginx。(重要)
2.配置nginx.conf,防范常見(jiàn)漏洞:
1.禁止root權(quán)限啟動(dòng)apache服務(wù)!禁止root權(quán)限啟動(dòng)apache服務(wù)!禁止root權(quán)限啟動(dòng)apache服務(wù)!重要的事情說(shuō)三遍!因?yàn)檫@個(gè)問(wèn)題被搞了兩次。
2.改掉默認(rèn)端口。
3.清空webapps下除自己服務(wù)外的其他文件,刪除用戶管理文件,防止給木馬留下后門(mén)。
4.限制apache啟動(dòng)進(jìn)程su到root進(jìn)程以及ssh登錄,限制啟動(dòng)進(jìn)程訪問(wèn)除/home/xx自身目錄外的其他文件。
5.限制apache啟動(dòng)進(jìn)程操作刪除以及編輯文件,一般a+x即可。
1.關(guān)閉外網(wǎng)連接,與java/php服務(wù)使用內(nèi)網(wǎng)連接。
2.在滿足java/php服務(wù)的基礎(chǔ)上,新建最小權(quán)限USER給到服務(wù)使用,禁止USER權(quán)限訪問(wèn)其他項(xiàng)目的庫(kù)。
3.root密碼不要與普通USER相同。
4.建議使用云庫(kù),云庫(kù)具備實(shí)時(shí)備份,動(dòng)態(tài)擴(kuò)容,數(shù)據(jù)回退等功能,減少操作風(fēng)險(xiǎn)。
1.關(guān)閉外網(wǎng)連接,只允許內(nèi)網(wǎng)交互,基本這個(gè)做了之后就已經(jīng)穩(wěn)了。
2.禁止root權(quán)限啟動(dòng),運(yùn)行在普通用戶進(jìn)程里。
3.更改默認(rèn)端口。
4.添加登錄密碼。
以上是自己做的防范手段,不成熟見(jiàn)解,有一些方案待驗(yàn)證,不定時(shí)更新,歡迎大佬補(bǔ)充!
本文標(biāo)題:web服務(wù)器基本安全配置 詳述web服務(wù)安全設(shè)置有哪些關(guān)鍵要素?
本文來(lái)源:http://sd-ha.com/article40/dojsceo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站營(yíng)銷、標(biāo)簽優(yōu)化、網(wǎng)站排名、網(wǎng)站內(nèi)鏈、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)