LINUX性能調(diào)優(yōu)方法總結(jié)_第1頁
LINUX性能調(diào)優(yōu)方法總結(jié)_第2頁
LINUX性能調(diào)優(yōu)方法總結(jié)_第3頁
LINUX性能調(diào)優(yōu)方法總結(jié)_第4頁
LINUX性能調(diào)優(yōu)方法總結(jié)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、LINUX 性能調(diào)優(yōu)方法總結(jié)大多數(shù) Linux 發(fā)布版都定義了適當(dāng)?shù)木彌_區(qū)和其他 Transmission Control Protocol(TCP )參數(shù)??梢孕薷倪@些參數(shù)來分配更多的內(nèi)存,從而改進(jìn)網(wǎng)絡(luò)性能。設(shè)置內(nèi)核參數(shù)的方法是通過 proc 接口,也就是通過讀寫 /proc 中的值。幸運(yùn)的是,sysctl 可以讀取 /etc/sysctl.conf 中的值并根據(jù)需要填充/proc,這樣就能夠更輕松地管理這些參數(shù)。清單 2 展示在互聯(lián)網(wǎng)服務(wù)器上應(yīng)用于 Internet 服務(wù)器的一些比較激進(jìn)的網(wǎng)絡(luò)設(shè)置。# Use TCP syncookies when needednet.ipv4.tcp_s

2、yncookies = 1# Enable TCP window scalingnet.ipv4.tcp_window_scaling: = 1# Increase TCP max buffer sizenet.core.rmem_max = 16777216net.core.wmem_max = 16777216# Increase Linux autotuning TCP buffer limitsnet.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216# Increase number o

3、f ports availablenet.ipv4.ip_local_port_range = 1024 65000將這些設(shè)置添加到 /etc/sysctl.conf 的現(xiàn)有內(nèi)容中。第一個(gè)設(shè)置啟用 TCP SYN cookie。當(dāng)從客戶機(jī)發(fā)來新的 TCP 連接時(shí),數(shù)據(jù)包設(shè)置了 SYN 位,服務(wù)器就為這個(gè)半開的連接創(chuàng)建一個(gè)條目,并用一個(gè) SYN-ACK 數(shù)據(jù)包進(jìn)行響應(yīng)。在正常操作中,遠(yuǎn)程客戶機(jī)用一個(gè) ACK 數(shù)據(jù)包進(jìn)行響應(yīng),這會使半開的連接轉(zhuǎn)換為全開的。有一種稱為 SYN 泛濫(SYN flood) 的網(wǎng)絡(luò)攻擊,它使 ACK 數(shù)據(jù)包無法返回,導(dǎo)致服務(wù)器用光內(nèi)存空間,無法處理到來的連接。SYNco

4、okie 特性可以識別出這種情況,并使用一種優(yōu)雅的方法保留隊(duì)列中的空間(細(xì)節(jié)參見 參考資料 一節(jié))。大多數(shù)系統(tǒng)都默認(rèn)啟用這個(gè)特性,但是確保配置這個(gè)特性更可靠。啟用 TCP 窗口伸縮使客戶機(jī)能夠以更高的速度下載數(shù)據(jù)。TCP 允許在未從遠(yuǎn)程端收到確認(rèn)的情況下發(fā)送多個(gè)數(shù)據(jù)包,默認(rèn)設(shè)置是最多 64 KB ,在與延遲比較大的遠(yuǎn)程客戶機(jī)進(jìn)行通信時(shí)這個(gè)設(shè)置可能不夠。窗口伸縮會在頭中啟用更多的位,從而增加窗口大小。后面四個(gè)配置項(xiàng)增加 TCP 發(fā)送和接收緩沖區(qū)。這使應(yīng)用程序可以更快地丟掉它的數(shù)據(jù),從而為另一個(gè)請求服務(wù)。還可以強(qiáng)化遠(yuǎn)程客戶機(jī)在服務(wù)器繁忙時(shí)發(fā)送數(shù)據(jù)的能力。最后一個(gè)配置項(xiàng)增加可用的本地端口數(shù)量,這樣就

5、增加了可以同時(shí)服務(wù)的最大連接數(shù)量。 在下一次引導(dǎo)系統(tǒng)時(shí),或者下一次運(yùn)行 sysctl -p /etc/sysctl.conf 時(shí),這些設(shè)置就會生效。-磁盤子系統(tǒng)的調(diào)優(yōu)磁盤在 LAMP 架構(gòu)中扮演著重要的角色。靜態(tài)文件、模板和代碼都來自磁盤,組成數(shù)據(jù)庫的數(shù)據(jù)表和索引也來自磁盤。對磁盤的許多調(diào)優(yōu)(尤其是對于數(shù)據(jù)庫)集中于避免磁盤訪問,因?yàn)榇疟P訪問的延遲相當(dāng)高。因此,花一些時(shí)間對磁盤硬件進(jìn)行優(yōu)化是有意義的。首先要做的是,確保在文件系統(tǒng)上禁用 atime 日志記錄特性。atime 是最近訪問文件的時(shí)間,每當(dāng)訪問文件時(shí),底層文件系統(tǒng)必須記錄這個(gè)時(shí)間戳。因?yàn)橄到y(tǒng)管理員很少使用 atime,禁用它可以減少磁

6、盤訪問時(shí)間。禁用這個(gè)特性的方法是,在 /etc/fstab 的第四列中添加 noatime 選項(xiàng)。演示如何啟用 noatime 的 fstab 示例/dev/VolGroup00/LogVol00 / ext3 defaults,noatime 1 1 LABEL=/boot /boot ext3 defaults,noatime 1 2 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults 0 0 proc /proc proc defaults 0 0sysfs /sys sysfs defaults

7、 0 0LABEL=SWAP-hdb2 swap swap defaults 0 0 LABEL=SWAP-hda3 swap swap defaults 0 0有多種磁盤硬件組合,而且 Linux 不一定能夠探測出訪問磁盤的最佳方式??梢允褂?hdparm 命令查明和設(shè)置用來訪問 IDE 磁盤的方法。hdparm -t/path/to/device 執(zhí)行速度測試,可以將這個(gè)測試結(jié)果作為性能基準(zhǔn)。為了使結(jié)果盡可能準(zhǔn)確,在運(yùn)行這個(gè)命令時(shí)系統(tǒng)應(yīng)該是空閑的。在 /dev/hd 上執(zhí)行的速度測試# hdparm -t /dev/hda/dev/hda:Timing buffered disk read

8、s: 182 MB in 3.02 seconds = 60.31 MB/sechdparm 的常用選項(xiàng)選項(xiàng) 描述-vi 向磁盤查詢它支持的設(shè)置以及它正在使用的設(shè)置。-c 查詢/啟用 (EIDE 32 位 I/O 支持。hdparm -c 1 /dev/hda 啟用這個(gè)設(shè)置。-m 查詢/設(shè)置每中斷多扇區(qū)模式。如果設(shè)置大于零,設(shè)置值就是每個(gè)中斷可以傳輸?shù)淖畲笊葏^(qū)數(shù)量。 -d 1 -X 啟用直接內(nèi)存訪問(DMA )傳輸并設(shè)置 IDE 傳輸模式。hdparm 手冊頁詳細(xì)說明了在 -X 后面可以設(shè)置的數(shù)字。只有在 -vi 說明目前并未使用最快速的模式的情況下,才需要進(jìn)行這個(gè)設(shè)置。不幸的是,對于 Fib

9、er Channel and Small Computer Systems Interface(SCSI )系統(tǒng),調(diào)優(yōu)依賴于具體的驅(qū)動(dòng)器。必須將有幫助的設(shè)置添加到啟動(dòng)腳本中,比如 rc.local。-TCP/IP子系統(tǒng)的調(diào)優(yōu)所有的TCP/IP調(diào)優(yōu)參數(shù)都位于/proc/sys/net/目錄. 例如, 下面是最重要的一些調(diào)優(yōu)參數(shù), 后面是它們的含義:1. /proc/sys/net/core/rmem_max 最大的TCP 數(shù)據(jù)接收緩沖2. /proc/sys/net/core/wmem_max 最大的TCP 數(shù)據(jù)發(fā)送緩沖3. /proc/sys/net/ipv4/tcp_timestamps 時(shí)

10、間戳在(請參考RFC 1323TCP的包頭增加12個(gè)字節(jié)4. /proc/sys/net/ipv4/tcp_sack 有選擇的應(yīng)答5. /proc/sys/net/ipv4/tcp_window_scaling 支持更大的TCP 窗口. 如果TCP 窗口最大超過65535(64K, 必須設(shè)置該數(shù)值為16. rmem_default 默認(rèn)的接收窗口大小7. rmem_max 接收窗口的最大大小8. wmem_default 默認(rèn)的發(fā)送窗口大小9. wmem_max 發(fā)送窗口的最大大小/proc目錄下的所有內(nèi)容都是臨時(shí)性的, 所以重啟動(dòng)系統(tǒng)后任何修改都會丟失.建議在系統(tǒng)啟動(dòng)時(shí)自動(dòng)修改TCP/IP參

11、數(shù):把下面代碼增加到/etc/rc.local文件, 然后保存文件, 系統(tǒng)重新引導(dǎo)的時(shí)候會自動(dòng)修改下面的TCP/IP參數(shù):echo 256960 > /proc/sys/net/core/rmem_defaultecho 256960 > /proc/sys/net/core/rmem_maxecho 256960 > /proc/sys/net/core/wmem_defaultecho 256960 > /proc/sys/net/core/wmem_maxecho 0 > /proc/sys/net/ipv4/tcp_timestampsecho 1 >

12、; /proc/sys/net/ipv4/tcp_sackecho 1 > /proc/sys/net/ipv4/tcp_window_scalingTCP/IP參數(shù)都是自解釋的, TCP窗口大小設(shè)置為256960, 禁止TCP 的時(shí)間戳(取消在每個(gè)數(shù)據(jù)包的頭中增加12字節(jié), 支持更大的TCP 窗口和TCP 有選擇的應(yīng)答.上面數(shù)值的設(shè)定是根據(jù)互連網(wǎng)連接和最大帶寬/延遲率來決定.注: 上面實(shí)例中的數(shù)值可以實(shí)際應(yīng)用, 但它只包含了一部分參數(shù).另外一個(gè)方法: 使用 /etc/sysctl.conf 在系統(tǒng)啟動(dòng)時(shí)將參數(shù)配置成您所設(shè)置的值: net.core.rmem_default = 2569

13、60net.core.rmem_max = 256960net.core.wmem_default = 256960net.core.wmem_max = 256960net.ipv4.tcp_timestamps = 0net.ipv4.tcp_sack =1net.ipv4.tcp_window_scaling = 1-文件子系統(tǒng)的調(diào)優(yōu)ulimit -a 用來顯示當(dāng)前的各種用戶進(jìn)程限制。Linux 對于每個(gè)用戶,系統(tǒng)限制其最大進(jìn)程數(shù)。為提高性能,可以根據(jù)設(shè)備資源情況, 設(shè)置各linux 用戶的最大進(jìn)程數(shù),下面我把某linux 用戶的最大進(jìn)程數(shù)設(shè)為10000個(gè): ulimit -u 1000

14、0對于需要做許多 socket 連接并使它們處于打開狀態(tài)的 Java 應(yīng)用程序而言,最好通過使用 ulimit -n xx 修改每個(gè)進(jìn)程可打開的文件數(shù),缺省值是 1024。ulimit -n 4096 將每個(gè)進(jìn)程可以打開的文件數(shù)目加大到4096,缺省為1024其他建議設(shè)置成無限制(unlimited )的一些重要設(shè)置是:數(shù)據(jù)段長度:ulimit -d unlimited最大內(nèi)存大?。簎limit -m unlimited堆棧大?。簎limit -s unlimitedCPU 時(shí)間:ulimit -t unlimited虛擬內(nèi)存:ulimit -v unlimited暫時(shí)地,適用于通過 ulim

15、it 命令登錄 shell 會話期間。永久地,通過將一個(gè)相應(yīng)的 ulimit 語句添加到由登錄 shell 讀取的文件中, 即特定于 shell 的用戶資源文件,如:1 、解除 Linux 系統(tǒng)的最大進(jìn)程數(shù)和最大文件打開數(shù)限制:vi /etc/security/limits.conf# 添加如下的行* soft noproc 11000* hard noproc 11000* soft nofile 4100* hard nofile 4100說明:* 代表針對所有用戶noproc 是代表最大進(jìn)程數(shù)nofile 是代表最大文件打開數(shù)2 、讓 SSH 接受 Login 程式的登入,方便在 ssh

16、 客戶端查看 ulimit -a 資源限制: a 、vi /etc/ssh/sshd_config把 UserLogin 的值改為 yes,并把 # 注釋去掉b 、重啟 sshd 服務(wù):/etc/init.d/sshd restart3 、修改所有 linux 用戶的環(huán)境變量文件:vi /etc/profileulimit -u 10000ulimit -n 4096ulimit -d unlimitedulimit -m unlimitedulimit -s unlimitedulimit -t unlimitedulimit -v unlimited/*有時(shí)候在程序里面需要打開多個(gè)文件,進(jìn)

17、行分析,系統(tǒng)一般默認(rèn)數(shù)量是1024,(用ulimit -a可以看到)對于正常使用是夠了,但是對于程序來講,就太少了。修改2個(gè)文件。1./etc/security/limits.confvi /etc/security/limits.conf加上:* soft nofile 8192* hard nofile 204802./etc/pam.d/loginsession required /lib/security/pam_limits.so*另外確保/etc/pam.d/system-auth文件有下面內(nèi)容session required /lib/security/$ISA/pam_limi

18、ts.so這一行確保系統(tǒng)會執(zhí)行這個(gè)限制。*3. 一般用戶的.bash_profile#ulimit -n 1024重新登陸ok-內(nèi)存子系統(tǒng)的調(diào)優(yōu)內(nèi)存子系統(tǒng)的調(diào)優(yōu)不是很容易,需要不停地監(jiān)測來保證內(nèi)存的改變不會對服務(wù)器的其他子系統(tǒng)造成負(fù)面影響。如果要改變虛擬內(nèi)存參數(shù)(在/proc/sys/vm,建議您每次只改變一個(gè)參數(shù)然后監(jiān)測效果。對與虛擬內(nèi)存的調(diào)整包括以下幾個(gè)項(xiàng)目:配置Linux 內(nèi)核如何更新dirty buffers到磁盤。磁盤緩沖區(qū)用于暫存磁盤的數(shù)據(jù)。相對于內(nèi)存來講,磁盤緩沖區(qū)的速度很慢。因此,如果服務(wù)器使用這類內(nèi)存,性能會成問題。當(dāng)緩沖區(qū)內(nèi)的數(shù)據(jù)完全dirty ,使用:sysctl -w

19、vm.bdflush="30 500 0 0 500 3000 60 20 0"vm.bdflush 有9個(gè)參數(shù),但是建議您只改變其中的3個(gè):1 nfract, 為排隊(duì)寫入磁盤前,bdflush daemon允許的緩沖區(qū)最大百分比2 ndirty, 為bdflush 即刻寫的最大緩沖區(qū)的值。如果這個(gè)值很大,bdflush 需要更多的時(shí)間完成磁盤的數(shù)據(jù)更新。7 nfract_sync, 發(fā)生同步前,緩沖區(qū)變dirty 的最大百分比配置kswapd daemon,指定Linux 的內(nèi)存頁數(shù)量sysctl -w vm.kswapd="1024 32 64"三個(gè)

20、參數(shù)的描述如下: tries_base 相當(dāng)于內(nèi)核每次所的“頁”的數(shù)量的四倍。對于有很多交換信息的系統(tǒng),增加這個(gè)值可以改進(jìn)性能。 tries_min 是每次kswapd swaps出去的pages 的最小數(shù)量。 swap_cluster 是kswapd 即刻寫如的pages 數(shù)量。數(shù)值小,會提高磁盤I/O的性能;數(shù)值大可能也會對請求隊(duì)列產(chǎn)生負(fù)面影響。如果要對這些參數(shù)進(jìn)行改動(dòng),請使用工具vmstat 檢查對性能的影響。其它可以改進(jìn)性能的虛擬內(nèi)存參數(shù)為:_ buffermem_ freepages_ overcommit_memory_ page-cluster_ pagecache_ paget

21、able_cache-網(wǎng)絡(luò)子系統(tǒng)的調(diào)優(yōu)操作系統(tǒng)安裝完畢,就要對網(wǎng)絡(luò)子系統(tǒng)進(jìn)行調(diào)優(yōu)。對其它子系統(tǒng)的影響:影響CPU 利用率,尤其在有大量TCP 連接、塊尺寸又非常小時(shí),內(nèi)存的使用會明顯增加。如何預(yù)防性能下降如下的sysctl 命令用于改變安全設(shè)置,但是它也可以防止網(wǎng)絡(luò)性能的下降。這些命令被設(shè)置為缺省值。關(guān)閉如下參數(shù)可以防止黑客對服務(wù)器IP 地址的攻擊sysctl -w net.ipv4.conf.eth0.accept_source_route=0sysctl -w net.ipv4.conf.lo.accept_source_route=0sysctl -w net.ipv4.conf.def

22、ault.accept_source_route=0sysctl -w net.ipv4.conf.all.accept_source_route=0開啟TCP SYN cookies,保護(hù)服務(wù)器避免受syn-flood 攻擊,包括服務(wù)取決denial-of-service (DoS 或者分布式服務(wù)拒絕distributed denial-of-service (DDoS (僅適用Red Hat Enterprise Linux ASsysctl -w net.ipv4.tcp_syncookies=1以下命令使服務(wù)器忽略來自被列入網(wǎng)關(guān)的服務(wù)器的重定向。因重定向可以被用來進(jìn)行攻擊,所以我們只接

23、受有可靠來源的重定向。sysctl -w net.ipv4.conf.eth0.secure_redirects=1sysctl -w net.ipv4.conf.lo.secure_redirects=1sysctl -w net.ipv4.conf.default.secure_redirects=1sysctl -w net.ipv4.conf.all.secure_redirects=1另外,你可以配置接受或拒絕任何ICMP 重定向。ICMP 重定向是器傳輸信息的機(jī)制。比如,當(dāng)網(wǎng)關(guān)接收到來自所接網(wǎng)絡(luò)主機(jī)的Internet 數(shù)據(jù)報(bào)時(shí),網(wǎng)關(guān)可以發(fā)送重定向信息到一臺主機(jī)。網(wǎng)關(guān)檢查路由表獲得下

24、一個(gè)網(wǎng)關(guān)的地址, 第二個(gè)網(wǎng)關(guān)將數(shù)據(jù)報(bào)路由到目標(biāo)網(wǎng)絡(luò). 關(guān)閉這些重定向得命令如下:sysctl -w net.ipv4.conf.eth0.accept_redirects=0sysctl -w net.ipv4.conf.lo.accept_redirects=0sysctl -w net.ipv4.conf.default.accept_redirects=0sysctl -w net.ipv4.conf.all.accept_redirects=0如果這個(gè)服務(wù)器不是一臺路由器, 那么它不會發(fā)送重定向, 所以可以關(guān)閉該功能:sysctl -w net.ipv4.conf.eth0.send_

25、redirects=0sysctl -w net.ipv4.conf.lo.send_redirects=0sysctl -w net.ipv4.conf.default.send_redirects=0sysctl -w net.ipv4.conf.all.send_redirects=0配置服務(wù)器拒絕接受廣播風(fēng)暴或者smurf 攻擊attacks:sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1忽略所有icmp 包或者pings:sysctl -w net.ipv4.icmp_echo_ignore_all=1有些路由器針對廣播禎發(fā)送無效的回

26、應(yīng), 每個(gè)都產(chǎn)生警告并在內(nèi)核產(chǎn)生日志. 這些回應(yīng)可以被忽略:sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1針對TCP 和UDP 的調(diào)優(yōu)下邊的命令用來對連接數(shù)量非常大的服務(wù)器進(jìn)行調(diào)優(yōu).對于同時(shí)支持很多連接的服務(wù)器, 新的連接可以重新使用TIME-WAIT 套接字. 這對于Web 服務(wù)器非常有效:sysctl -w net.ipv4.tcp_tw_reuse=1如果你使用該命令, 還要啟動(dòng)TIME-WAIT 套接字狀態(tài)的快速循環(huán)功能:sysctl -w net.ipv4.tcp_tw_recycle=1圖Figure 10-7顯示出將這

27、些功能啟用, 連接數(shù)量明顯降低. 因?yàn)槊總€(gè)TCP 傳輸都包含遠(yuǎn)程客戶端的信息緩存, 所以有利于提高性能. 緩存中存放round-trip 時(shí)間、最大segment 大小、擁塞窗口的信息。參數(shù)tcp_fin_timeout 是套接字關(guān)閉時(shí),保持FIN-WAIT-2狀態(tài)的時(shí)間。一個(gè)TCP 連接以three-segment SYN序列開始, 以three-segment FIN序列結(jié)束. 均不保留數(shù)據(jù). 通過改變tcp_fin_timeout的值, 從FIN 序列到內(nèi)存可以空閑出來處理新連接的時(shí)間縮短了, 使性能得到改進(jìn). 改變這個(gè)值的前要經(jīng)過認(rèn)真的監(jiān)測, 避免因?yàn)樗捞捉幼衷斐蓛?nèi)存溢出.sysctl

28、 -w net.ipv4.tcp_fin_timeout=30服務(wù)器的一個(gè)問題是, 同一時(shí)刻的大量TCP 連接里有很多的連接被打開但是沒有使用. TCP的keepalive 功能檢測到這些連接, 缺省情況下, 在2小時(shí)之后丟掉. 2個(gè)小時(shí)的可能導(dǎo)致內(nèi)存過度使用, 降低性能. 因此改成1800秒(30分鐘 是個(gè)更好的選擇: sysctl -w net.ipv4.tcp_keepalive_time=1800對于所有的隊(duì)列, 設(shè)置最大系統(tǒng)發(fā)送緩存(wmem 和接收緩存(rmem到8MBsysctl -w net.ipv4.core.wmem_max=8388608sysctl -w net.ipv

29、4.core.rmem_max=8388608這些設(shè)置指定了創(chuàng)建TCP 套接字時(shí)為其分配的內(nèi)存容量. 另外, 使用如下命令發(fā)送和接收緩存. 該命令設(shè)定了三個(gè)值:最小值、初始值和最大值:sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608"sysclt -w net.ipv4.tcp.wmem="4096 87380 8388608"第三個(gè)值必須小于或等于wmem_max和rmem_max。(SUSE LINUX Enterprise Server適用 通過保留路徑驗(yàn)證來源數(shù)據(jù)包。缺省情況下,路由器轉(zhuǎn)發(fā)所有的數(shù)據(jù)包

30、,即便是明顯的異常網(wǎng)絡(luò)流量。通過啟動(dòng)和是的過濾功能,丟掉這些數(shù)據(jù)包:sysctl -w net.ipv4.conf.eth0.rp_filter=1sysctl -w net.ipv4.conf.lo.rp_filter=1sysctl -w net.ipv4.conf.default.rp_filter=1sysctl -w net.ipv4.conf.all.rp_filter=1當(dāng)服務(wù)器負(fù)載繁重或者是有很多客戶端都是超長延時(shí)的連接故障,可能會導(dǎo)致half-open 連接數(shù)量的增加。這對于Web 服務(wù)器很來講很平常, 尤其有很多撥號客戶時(shí). 這些half-open 連接保存在 backlo

31、g connections 隊(duì)列中. 將這個(gè)值最少設(shè)置為4096 (缺省為1024. 即便是服務(wù)器不接收這類連接, 設(shè)置這個(gè)值還能防止受到denial-of-service (syn-flood的攻擊.sysctl -w net.ipv4.tcp_max_syn_backlog=4096設(shè)置ipfrag 參數(shù), 尤其是NFS 和Samba 服務(wù)器。這里, 我們可以設(shè)置用于重新組合IP 碎片的最大、最小內(nèi)存。當(dāng)ipfrag_high_thresh值被指派,碎片會被丟棄直到達(dá)到ipfrag_low_thres值。當(dāng)TCP 數(shù)據(jù)包傳輸發(fā)生錯(cuò)誤時(shí),開始碎片整理。有效的數(shù)據(jù)包保留在內(nèi)存,同時(shí)損壞的數(shù)據(jù)包

32、被轉(zhuǎn)發(fā)。例如,設(shè)置可用內(nèi)存范圍從256 MB到384 MBsysctl -w net.ipv4.ipfrag_low_thresh=262144sysctl -w net.ipv4.ipfrag_high_thresh=393216-網(wǎng)絡(luò)安全設(shè)置:TCP SYN Flood 攻擊TCP SYN Flood是一種常見,而且有效的遠(yuǎn)端(遠(yuǎn)程 拒絕服務(wù)(Denial of Service攻擊方式,它透過一定的操作破壞TCP 三次握手建立正常連接,佔(zhàn)用並耗費(fèi)系統(tǒng)資源,使得提供TCP 服務(wù)的主機(jī)系統(tǒng)無法正常工作。 由於TCP SYN Flood是透過網(wǎng)路底層對服務(wù)器Server 進(jìn)行攻擊的,它可以在任意

33、改變自己的網(wǎng)路IP 地址的同時(shí),不被網(wǎng)路上的其他設(shè)備所識別,這樣就給防範(fàn)網(wǎng)路犯罪部門追查犯罪來源造成很大的困難。系統(tǒng)檢查一般情況下,可以一些簡單步驟進(jìn)行檢查,來判斷系統(tǒng)是否正在遭受TCP SYN Flood攻擊。1、 服務(wù)端無法提供正常的TCP 服務(wù)。連接請求被拒絕或超時(shí)。2、透過 netstat -an 命令檢查系統(tǒng),發(fā)現(xiàn)有大量的SYN_RECV連接狀態(tài)。3. iptables的設(shè)置,引用自CU防止同步包洪水(Sync Flood)# iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -j ACCEPT也有人寫作#iptables -A

34、INPUT -p tcp -syn -m limit -limit 1/s -j ACCEPT-limit 1/s 限制syn 并發(fā)數(shù)每秒1次,可以根據(jù)自己的需要修改防止各種端口掃描# iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT Ping 洪水攻擊(Ping of Death)# iptables -A FORWARD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT-暫定步驟:修改/etc

35、/profile文件,加入:ulimit -u 10240ulimit -n 4096ulimit -d unlimitedulimit -m unlimitedulimit -s unlimitedulimit -t unlimitedulimit -v unlimited修改/etc/rc.d/rc.local,加入:echo 131072 > /proc/sys/fs/file-maxecho 131072 > /proc/sys/fs/inode-max(1G內(nèi)存值修改成:65535 2G內(nèi)存值修改成:131072 4G內(nèi)存值修改成:262144 修改/etc/sysctl

36、.conf文件,加入:net.core.rmem_default = 8388608net.core.rmem_max = 8388608net.core.wmem_default = 8388608net.core.wmem_max = 8388608net.ipv4.tcp_timestamps = 0net.ipv4.tcp_sack =1net.ipv4.tcp_window_scaling = 1dev_max_backlog=3000#Modify i-nodesys.fs.file-max= 65535sys.fs.inode-max= 65535#Set System Memo

37、ryvm.bdflush="30 500 0 0 500 3000 60 20 0"vm.kswapd="1024 32 64"#Disable HackAttack!net.ipv4.conf.eth0.accept_source_route=0net.ipv4.conf.lo.accept_source_route=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.all.accept_source_route=0net.ipv4.conf.lo.accept_redirects=0n

38、et.ipv4.conf.all.accept_redirects=0net.ipv4.conf.eth0.accept_redirects=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.lo.secure_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.eth0.secure_redirects=0net.ipv4.conf.default.secure_redirects=0net.ipv4.conf.eth0.send_redirects=0net.i

39、pv4.conf.lo.send_redirects=0net.ipv4.conf.default.send_redirects=0net.ipv4.conf.all.send_redirects=0net.ipv4.tcp_syncookies=1net.ipv4.icmp_echo_ignore_broadcasts=1net.ipv4.icmp_ignore_bogus_error_responses=1#Web Serversnet.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_fin_timeout=30net.ip

40、v4.tcp_keepalive_time=1800net.ipv4.core.wmem_max=16777216net.ipv4.core.rmem_max=16777216net.ipv4.tcp_rmem="4096 87380 8388608"net.ipv4.tcp.wmem="4096 87380 8388608"net.ipv4.tcp_max_syn_backlog=8192防火墻安全:iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -j ACCEPT也有人寫作譽(yù)天 Cisco /

41、Linux 認(rèn)證社區(qū) iptables -A INPUT -p tcp -syn -m limit -limit 1/s -j ACCEPT -limit 1/s 限制 syn 并發(fā)數(shù)每秒 1 次,可以根據(jù)自己的需要修改 防止各種端口掃描 iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT Ping 洪水攻擊(Ping of Death) iptables -A FORWARD -p icmp -icmp-type echo-request -m limit -limit

42、 1/s -j ACCEPT 備注說明: (相對比較激進(jìn)的網(wǎng)絡(luò)參數(shù)調(diào)整) # Use TCP syncookies when needed net.ipv4.tcp_syncookies = 1 # Enable TCP window scaling net.ipv4.tcp_window_scaling: = 1 # Increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # Increase Linux autotuning TCP buffer limits net.ip

43、v4.tcp_rmem = 4096 87380 8388608 net.ipv4.tcp_wmem = 4096 65536 8388608 # Increase number of ports available net.ipv4.ip_local_port_range = 1024 65000 -LINUX 安全設(shè)置步驟: 刪除所有那些不能在你系統(tǒng)上使用的默認(rèn)用戶和組賬戶: lp,sync,shutdown,halt, news, uucp, operator, games, gopher ROOT 自動(dòng)從 shell 注銷 編輯你的配置文件”vi /etc/profile”,在某個(gè)地方

44、加入如下行, “HISTFILESIZE=” TMOUT=3600 我們?yōu)樽兞俊盩MOUT=”輸入的這個(gè)值使用秒表示的、代表一個(gè)小時(shí)(60*60=3600 秒) 。如果你 將此行加入你的 “/etc/profile” 文件,那么在一小時(shí)的 非活動(dòng)狀態(tài)之后將要系統(tǒng)里的所有用戶自動(dòng)注銷。你可以在用戶私人的”.bashrc”文件里面 設(shè)置這個(gè)變量,可以在一個(gè)確定的時(shí)間以后自動(dòng)注銷他們。 禁止并且卸載所有沒有用的服務(wù) 你必須禁止別切卸載所有你不用的的服務(wù),那樣的話,你就能少擔(dān)心一些??纯茨愕摹?/etc/inetd.conf”文件, 用注釋的方法禁用(在一行的開始加個(gè)# ) ,然后給 inetd 進(jìn)程

45、發(fā)送一個(gè) SIGHUP 命令去更新到當(dāng)前的”inetd.conf”文件。這樣做: 第一步把”/etc/inetd.conf”更改許可權(quán)限成 600,那樣的話,就只有 root 可以讀和寫。 Rootkapil /# chmod 600 /etc/inetd.conf 第二步確?!?etc/inetd.conf”的所有者是 root。 第三步編輯 inetd.conf 文件(vi /etc/inetd.conf) ,并且禁止一些服務(wù),就像:ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop 武漢譽(yù)天.獨(dú)家授權(quán) Cisco

46、/ RHCE 培訓(xùn) 譽(yù)天 Cisco / Linux 認(rèn)證社區(qū) -3, finger, auth 等等,除非你打算用它。關(guān)閉這些服務(wù)就降低一些風(fēng)險(xiǎn)。 第四步給你的 inetd 進(jìn)程發(fā)送一個(gè) HUP 信號rootkapil /# killall -HUP inetd 第五步設(shè)置”/etc/inetd.conf”文件為不可更改,使用 chattr 命令,這樣的話,沒人能修改那個(gè)文 件。*簡單的設(shè)置文件為不可更改,執(zhí)行如下命令: rootkapil /# chattr +i /etc/inetd.conf 這將防止對”inetd.conf”文件的任何更改(意外的更改或者其他更改) 。只有超級用戶 root 能設(shè)置 或者清除這個(gè)文件屬性。修改 inetd.conf *簡單的取 消不可更改的設(shè)置,執(zhí)行如下命令: rootkapil /# c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論