Linux網(wǎng)站架構(gòu)系列之a(chǎn)pache----調(diào)優(yōu)篇
其次是安全考慮,這樣會(huì)允許用戶自己修改服務(wù)器的配置,這可能會(huì)導(dǎo)致某些意想不到的修改,所以請(qǐng)認(rèn)真考慮是否應(yīng)當(dāng)給予用戶這樣的特權(quán)。
1、禁用AllowOverride選項(xiàng)
我們通過修改apache主配置文件中的
Options none
AllowOverride None #禁止該選項(xiàng),防止用戶重復(fù)載入
Require all granted
通過該設(shè)置加快了服務(wù)器響應(yīng)速度,因?yàn)樗辉僮屆總€(gè)請(qǐng)求去尋求每個(gè)目錄的訪問控制文件(.htaccess)
2、關(guān)閉.htaccess文件使用
默認(rèn)在Unix平臺(tái)下能夠使用.htaccess來對(duì)目錄權(quán)限進(jìn)行規(guī)則定義,但是這是不安全的,建議關(guān)閉,默認(rèn)的選項(xiàng):
AccessFileName .htaccess
這里我們將它關(guān)閉注釋掉
#AccessFileName .htaccess
全部目錄權(quán)限定義使用中的定義,不使用.htaccess進(jìn)行定義。
十三、關(guān)閉自帶CGI功能
生產(chǎn)環(huán)境中,一般我們不使用apache自帶的cgi的功能,如果使用的話,可以用mod_perl模塊來替代。因此我們這里需要將apache主配置文件中有關(guān)cgi的內(nèi)容刪除掉。
刪除部分:
ScriptAlias /cgi-bin/ /usr/local/apache2.4.6/cgi-bin/
AllowOverride None
Options None
Require all granted
十四、禁止PHP解析指定站點(diǎn)的目錄
企業(yè)的站點(diǎn)有時(shí)會(huì)提供用戶進(jìn)行上傳操作,而用戶上傳文件的存放目錄,我們是不能給php的解析權(quán)限的,否則會(huì)對(duì)apache服務(wù)和系統(tǒng)造成危害。
十五、apache的安全模塊
我們需要對(duì)apache站點(diǎn)增加一些擴(kuò)展的安全模塊,如:mod_evasive20防DDOS、mod_limitipconn(針對(duì)單站點(diǎn))配置、mod_security2防SQL注入等等之類的工具。
另外,下面是推薦給大家的幾個(gè)工具。
1、makejail
它是一個(gè)自動(dòng)把建立jail所需要的程序放到j(luò)ail內(nèi)的軟件,使用python編寫,他有debian和openbsd的版本。
2、mod-security
它是apche的一個(gè)模塊,它不僅可以實(shí)現(xiàn)過濾請(qǐng)求和日志審計(jì)等功能,而且可以防止SQLInjection和跨站腳本攻擊等是個(gè)很不錯(cuò)的安全模塊。
十六、使用tmpfs文件系統(tǒng)替代頻繁訪問的目錄
tmpfs是一種基于內(nèi)存的文件系統(tǒng)。它最主要的兩個(gè)優(yōu)勢(shì)就是動(dòng)態(tài)文件系統(tǒng)大小和速度快。因?yàn)榈湫偷膖mpfs文件系統(tǒng)會(huì)完全駐留在RAM中,讀寫幾乎可以是瞬間的。即使用了一些交換分區(qū),性能仍然是卓越的。因此對(duì)于那些頻繁訪問的目錄,建議使用tmpfs文件系統(tǒng)進(jìn)行替代。
十七、優(yōu)化系統(tǒng)內(nèi)核參數(shù)
對(duì)系統(tǒng)內(nèi)核的優(yōu)化參數(shù),我們?cè)谙到y(tǒng)的基礎(chǔ)優(yōu)化這邊博文已經(jīng)講過了。系統(tǒng)內(nèi)核優(yōu)化最主要的目的就是減少TIME-WAIT的TCP連接數(shù)。
由于在基礎(chǔ)優(yōu)化篇我們已經(jīng)對(duì)apache進(jìn)行了內(nèi)核參數(shù)的優(yōu)化,因此這里我就不再操作了。這里我將為大家對(duì)優(yōu)化的參數(shù)進(jìn)行講解。
net.ipv4.tcp_fin_timeout #表示如果套接字由本端要求關(guān)閉,這個(gè)參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時(shí)間,默認(rèn)值是60秒。
net.ipv4.tcp_tw_reuse #表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)值為0,表示關(guān)閉。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_tw_reuse 0
net.ipv4.tcp_tw_recycle #表示開啟TCP連接中TIME-WAIT sockets的快速回收該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_tw_recycle提示:reuse和recycle兩個(gè)參數(shù)為了防止生產(chǎn)環(huán)境下web,squid等time_wait過多設(shè)置的。
net.ipv4.tcp_syncookies #表示開啟SYN Cookies功能。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來處理,可防范少量SYN攻擊,Centos5系列默認(rèn)值為1,表示開啟。因此這個(gè)參數(shù)也可以不添加。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_syncookies,默認(rèn)為1
net.ipv4.tcp_keepalive_time #表示當(dāng)keepalive起用的時(shí)候,TCP發(fā)送keepalive消息的頻度。缺省是2小時(shí),改為10分鐘。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_keepalive_time,默認(rèn)為7200秒。
net.ipv4.ip_local_port_range #選項(xiàng)用來設(shè)定允許系統(tǒng)打開的端口范圍。即用于向外連接的端口范圍。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/ip_local_port_range 32768 61000
net.ipv4.tcp_max_syn_backlog #表示SYN隊(duì)列的長(zhǎng)度,默認(rèn)為1024,加大隊(duì)列長(zhǎng)度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。選項(xiàng)為服務(wù)器端用來記錄那些尚未收到客戶端確認(rèn)信息的連接請(qǐng)求的最大值。
該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_max_syn_backlog
net.ipv4.tcp_max_tw_buckets #表示系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量,如果超過這個(gè)數(shù)字,TIME_WAIT套接字將立刻被清楚并打印警告信息。默認(rèn)為180000,對(duì)于Apache、Nginx等服務(wù)器來說可以調(diào)整低一點(diǎn),如改為5000-30000,不同業(yè)務(wù)的服務(wù)器也可以給大一旦,比如lvs,squid。上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量,但是對(duì)于Squid效果卻不大。此項(xiàng)參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT套接字拖死。此參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_max_tw_buckets
net.ipv4.tcp_synack_retries #參數(shù)的值決定了內(nèi)核放棄連續(xù)之前發(fā)送SYN+ACK包的數(shù)量。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_synack_retries默認(rèn)值為5
net.ipv4.tcp_syn_retries #表示在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_syn_retries 5
net.ipv4.tcp_max_orphans #選項(xiàng)用于設(shè)定系統(tǒng)中最多有多少個(gè)TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件句柄上。如果超過這個(gè)數(shù)字,孤立連接將立即被復(fù)位并打印出警告信息。這個(gè)限制這是為了防止簡(jiǎn)單的Dos攻擊,不能過分依靠這個(gè)限制甚至認(rèn)為減少這個(gè)值,更多的情況是增加這個(gè)值。該參數(shù)對(duì)應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_max_orphans 65536
評(píng)論