發布時間:2022-04-28 文章來源:xp下載站 瀏覽:
網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 在Linux中,我們可以根據不同的需求來調整/proc/sys/net/ipv4/目錄下的內核網絡參數,通過合理的配置這里內核網絡參數,從而達到提高網絡的安全性和系統的穩定性的目的。因為這方面的文獻比較少,所以我們不可能進行全面的介紹,F在已經有linux組織正在從事這方面的文檔的寫作,相信在不久的將來,我們就會看到比較完整的文檔。下面我們就來看一看一些比較常用的內核網絡參數。 注意: 1. 參數值帶有速度(rate)的參數不能在loopback接口上工作。 2. 因為內核是以HZ為單位的內部時鐘來定義速度的,通常速度為100HZ,所以設定一個參數值為100就表示允許1個包/秒,假如為20則允許5個包/秒。 3. 所有內核網絡參數配置文件位于/proc/sys/net/ipv4/目錄下。 一、icmp相關內核配置參數 概述:通常我們使用icmp包來探測目的主機上的其它協議(如tcp和udp)是否可用。比如包含“destination unreachable”信息的icmp包就是最常見的icmp包。 ◆1. icmp_destunreach_rate:設置內容為“Destination Unreachable”icmp包的響應速率。設置值應為整數。 應用實例: 假設有A、B兩部主機,首先我們在主機A上執行以下ipchains語句: ipchains -A input -p icmp -j REJECT 這里的REJECT和DENY不同,DENY會丟掉符合條件的包如同沒有接收到該包一樣,而REJECT會在丟掉該包的同時給請求主機發回一個“Destination Unreachable”的icmp。 然后在主機B上ping主機A,這時候我們會發現“Destination Unreachable”icmp包的響應速度是很及時的。接著我們在主機A上執行: echo "1000" > /proc/sys/net/ipv4/icmp_destunreach_rate 也即每10秒鐘響應一個“Destination Unreachable”的icmp包。 這時候再從主機B上ping主機A就會發現“Destination Unreachable”icmp包的響應速度已經明顯變慢,我很好奇的測試了一下,發現剛好是每10秒響應一次。 ◆2. icmp_echo_ignore_broadcasts:設置是否響應icmp echo請求廣播,設置值應為布爾值,0表示響應icmp echo請求廣播,1表示忽略。 注意:windows系統是不響應icmp echo請求廣播的。 應用實例: 在我的RedHat6.x和RedHat7上該值缺省為0,這樣當有個用ping我的服務器所在的網段的網絡地址時,所有的linux服務器就會響應,從而也能讓讓該用戶得到我的服務器的ip地址,可以執行 echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 來關閉該功能。從而防止icmp風暴,防止網絡阻塞。 ◆3. icmp_echoreply_rate:設置系統響應icmp echo請求的icmp包的響應速度,設置值為整數。 應用實例: 假設有A、B兩部主機,首先我們在主機B上ping主機A,可以看到響應很正常,然后在主機A上執行echo "1000" > /proc/sys/net/ipv4/icmp_echoreply_rate。 也即每10秒鐘響應一個icmp echo請求包。然后再ping主機A就可以看到響應速度已經變成10秒一次。最好合理的調整該參數的值來防止icmp風暴。 ◆4. icmp_echo_ignore_all:設置系統是否忽略所有的icmp echo請求,如果設置了一個非0值,系統將忽略所有的icmp echo請求。其實這是icmp_echoreply_rate的一種極端情況。參數值為布爾值,1表示忽略,0表示響應。 ◆5. icmp_paramprob_rate:當系統接收到數據報的損壞的ip或tcp頭時,就會向源發出一個包含有該錯誤信息的icmp包。這個參數就是用來設置向源發送這種icmp包的速度。當然,在通常情況下ip或tcp頭出錯是很少見的。參數值為整數。 ◆6.icmp_timeexceed_rate:數據報在網絡上傳輸時,其生存時間(time to live)字段會不斷減少,當生存時間為0時,正在處理該數據報的路由器就會丟棄該數據報,同時給源主機發送一個“time to live exceeded”的icmp包。該參數就是用來設置這種icmp包的發送的速度。當然,這通常用于充當路由器的linux主機。 二、ip相關內核配置參數 linux內核網絡參數中關于ip的配置參數通常是用來定義或調整ip包的一些特定的參數,除此之外還定義了系統的一些網絡特性。 1.ip_default_ttl:設置從本機發出的ip包的生存時間,參數值為整數,范圍為0~128,缺省值為64。在windows系統中,ip 包的生存時間通常為128。如果你的系統經常得到“Time to live exceeded”的icmp回應,可以適當增大該參數的值,但是也不能過大,因為如果你的路由的環路的話,就會增加系統報錯的時間。 2.ip_dynaddr:該參數通常用于使用撥號連接的情況,可以使系統動能夠立即改變ip包的源地址為該ip地址,同時中斷原有的tcp對話而用新地址重新發出一個syn請求包,開始新的tcp對話。在使用ip欺騙時,該參數可以立即改變偽裝地址為新的ip地址。該參數的參數值可以是: 1:啟用該功能 2:使用冗余模式啟用該功能 0:禁止該功能 應用實例: 在使用ipchains配置ip欺騙帶動局域網共享一個ppp連接上網時,有時會出現剛開時連接一個站點連不通,再次刷新又可以連接的情況,這時候就可以設置該參數的值為1,從而立即改變偽裝地址為新的ip地址,就可以解決這類問題。命令為: echo "1" > /proc/sys/net/ipv4/ip_dynaddr 3. ip_forward:可以通過該參數來啟用包轉發功能,從而使系統充當路由器。參數值為1時啟用ip轉發,為0時禁止ip轉發。注意,我們可以在單網卡或雙網卡的主機上實現ip轉發。 應用實例: 假設我們使用一部裝有雙網卡的linux主機充當防火墻,這時候我們就必須執行以下命令來打開ip轉發功能: echo "1" > /proc/sys/net/ipv4/ip_forward 4. ip_local_port_range:設置當本地系統向外發起tcp或udp連接請求時使用的端口范圍。設置值為兩個整數,缺省為“1024 4999”。 應用實例: echo "1450 6000" > /proc/sys/net/ipv4/ip_local_port_range 網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。 |
上一篇:什么是網絡安全中的“DMZ”?