linux入侵檢測
Ⅰ 基於linux伺服器的免費入侵檢測系統都有哪些
通常由LIDS Tripwire logcheck 這些軟體包綜合組成全方位的 IDS
http://www.lids.org/
Ⅱ 請問linux上的aide入侵檢測文件監控的問題
有點麻煩,需要修改,凡是涉及Linux函數介面都需要改成Win相應的函數介面,如果這個函數介面在LINUX和WIN下都有,如圖形介面opengl庫,可以不作修改。一般在LINUX下開發的都會針對LINUX平台的,所以要在WIN下運行,修改的工程量還是很大的。
Ⅲ linux 入侵檢測系統 源代碼 具體怎麼實現的最好可以指導下
Jargon File中對「黑客」一詞給出了很多個定義,大部分定義都涉及高超的編程技術,強烈的解決問題和克服限制的慾望。如果你想知道如何成為一名黑客,那麼好,只有兩方面是重要的。(態度和技術)
長久以來,存在一個專家級程序員和網路高手的共享文化社群,其歷史可以追溯到幾十年前第一台分時共享的小型機和最早的ARPAnet實驗時期。 這個文化的參與者們創造了「黑客」這個詞。 黑客們建起了Internet。黑客們使Unix操作系統成為今天這個樣子。黑客們搭起了Usenet。黑客們讓WWW正常運轉。如果你是這個文化的一部分,如果你已經為它作了些貢獻,而且圈內的其他人也知道你是誰並稱你為一個黑客,那麼你就是一名黑客。
黑客精神並不僅僅局限於軟體黑客文化圈中。有些人同樣以黑客態度對待其它事情如電子和音樂---事實上,你可以在任何較高級別的科學和藝術中發現它。軟體黑客們識別出這些在其他領域同類並把他們也稱作黑客---有人宣稱黑客實際上是獨立於他們工作領域的。 但在本文中,我們將注意力集中在軟體黑客的技術和態度,以及發明了「黑客」一詞的哪個共享文化傳統之上。
另外還有一群人,他們大聲嚷嚷著自己是黑客,實際上他們卻不是。他們是一些蓄意破壞計算機和電話系統的人(多數是青春期的少年)。真正的黑客把這些人叫做「駭客」(cracker),並不屑與之為伍。多數真正的黑客認為駭客們是些不負責任的懶傢伙,還沒什麼大本事。專門以破壞別人安全為目的的行為並不能使你成為一名黑客, 正如拿根鐵絲能打開汽車並不能使你成為一個汽車工程師。不幸的是,很多記者和作家往往錯把「駭客」當成黑客;這種做法激怒真正的黑客。
根本的區別是:黑客們建設,而駭客們破壞。
如果你想成為一名黑客,繼續讀下去。如果你想做一個駭客,去讀 alt.2600 新聞組,並在發現你並不像自己想像的那麼聰明的時候去坐5到10次監獄。 關於駭客,我只想說這么多。
---黑客的態度
黑客們解決問題,建設事物,信仰自由和雙向的幫助,人人為我, 我為人人。
要想被認為是一名黑客,你的行為必須顯示出你已經具備了這種態度。要想做的好象你具備這種態度,你就不得不真的具備這種態度。但是如果你想靠培養黑客態度在黑客文化中得到承認,那就大錯特錯了。因為成為具備這些特質的這種人對你自己非常重要,有助於你學習,並給你提供源源不斷的活力。同所有有創造性的藝術一樣,成為大師的最有效方法就是模仿大師的精神---不是僅從理智上,更要從感情上進行模仿。
So,如果你想做一名黑客,請重復以下事情直到你相信它們:
1 這世界充滿待解決的迷人問題
做一名黑客有很多樂趣,但卻是些要費很多氣力方能得到的樂趣。 這些努力需要動力。成功的運動員從健壯體魄,挑戰自我極限中汲取動力。同樣,做黑客,你必須
要有從解決問題,磨練技術,鍛煉智力中得到基本的熱望。如果你還不是這類人又想做黑客,你就要設法成為這樣的人。否則你會發現,你的黑客熱情會被其他誘惑無情地吞噬掉---如金錢、性和社會上的虛名。
(同樣你必須對你自己的學習能力建立信心---相信盡管你對某問題所知不多,但如果你一點一點地學習、試探,你最終會掌握並解決它。)
2. 一個問題不應該被解決兩次
聰明的腦瓜是寶貴的,有限的資源。當這個世界還充滿其他有待解決的有趣問題之時,他們不應該被浪費在重新發明輪子這些事情上。 作為一名黑客,你必須相信其他黑客的思考時間是寶貴的---因此共享信息,解決問題並發布結果給其他黑客幾乎是一種道義,這樣其他人就可以去解決新問題而不是重復地對付舊問題。
(你不必認為你一定要把你的發明創造公布出去,但這樣做的黑客是贏得大家尊敬最多的人。賣些錢來給自己養家糊口,買房買車買計算機甚至發大財和黑客價值也是相容的,只要你別忘記你還是個黑客。)
3. 無聊和乏味的工作是罪惡
黑客們應該從來不會被愚蠢的重復性勞動所困擾,因為當這種事情發生時就意味著他們沒有在做只有他們才能做的事情---解決新問題。這樣的浪費傷害每一個人。因此,無聊和乏味的工作不僅僅是令人不舒服而已,它們是極大的犯罪。 要想做的象個黑客,你必須完全相信這點並盡可能多地將乏味的工作自動化,不僅為你自己,也為了其他人(尤其是其他黑客們)。
(對此有一個明顯的例外。黑客們有時也做一些重復性的枯燥工作以進行「腦力休息」,或是為練熟了某個技巧,或是獲得一些除此無法獲得的經驗。但這是他自己的選擇---有腦子的人不應該被迫做無聊的活兒。)
4 自由就是好
黑客們是天生的反權威主義者。任何能向你發命令的人會迫使你停止解決令你著迷的問題,同時,按照權威的一般思路,他通常會給出一些極其愚昧的理由。因此,不論何時何地,任何權威,只要他壓迫你或其他黑客,就要和他斗到底。
(這並非說任何權力都不必要。兒童需要監護,罪犯也要被看管起來。 如果服從命令得到某種東西比起用其他方式得到它更節約時間,黑客會同意接受某種形式的權威。但這是一個有限的、特意的交易;權力想要的那種個人服從不是你的給予,而是無條件的服從。)
權力喜愛審查和保密。他們不信任自願的合作和信息共享---他們只喜歡由他們控制的合作。因此,要想做的象個黑客,你得對審查、保密,以及使用武力或欺騙去壓迫人們的做法有一種本能的反感和敵意。
5. 態度不能替代能力
要做一名黑客,你必須培養起這些態度。但只具備這些態度並不能使你成為一名黑客,就象這並不能使你成為一個運動健將和搖滾明星一樣。成為一名黑客需要花費智力,實踐,奉獻和辛苦。
因此,你必須學會不相信態度,並尊重各種各樣的能力。黑客們不會為那些故意裝模做樣的人浪費時間,但他們卻非常尊重能力---尤其是做黑客的能力,不過任何能力總歸是好的。具備很少人才能掌握的技術方面的能力尤其為好,而具備那些涉及腦力、技巧和聚精會神的能力為最好。
如果你尊敬能力,你會享受提高自己能力的樂趣---辛苦的工作和奉獻會變成一種高度娛樂而非賤役。 要想成為一名黑客,這一點非常重要。
基本黑客技術
黑客態度是重要的,但技術更加重要。態度無法替代技術,在你被別的黑客稱為黑客之前,有一套基本的技術你必須掌握。 這套基本技術隨著新技術的出現和老技術的過時也隨時間在緩慢改變。例如,過去包括使用機器碼編程,而知道最近才包括了HTML語言。但現在明顯包括以下技術:
1 學習如何編程
這當然是最基本的黑客技術。如果你還不會任何計算機語言,我建議你從Python開始。它設計清晰,文檔齊全,對初學者很合適。盡管是一門很好的初級語言,它不僅僅只是個玩具。它非常強大,靈活,也適合做大型項目。
但是記住,如果你只會一門語言,你將不會達到黑客所要求的技術水平,甚至也不能達到一個普通程序員的水平---你需要學會如何以一個通用的方法思考編程問題,獨立於任何語言。要做一名真正的黑客,你需要學會如何在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種不同的語言。
如果要做一些重要的編程,你將不得不學習C語言,Unix的核心語言。其他對黑客而言比較重要的語言包括Perl和LISP。 Perl很實用,值得一學;它被廣泛用於活動網頁和系統管理,因此即便你從不用Perl寫程序,至少也應該能讀懂它。 LISP 值得學習是因為當你最終掌握了它你會得到豐富的經驗;這些經驗使你在以後的日子裡成為一個更好的程序員,即使你實際上可能很少使用LISP本身。
當然,實際上你最好四種都會。 (Python, C, Perl, and LISP). 除了是最重要的四種基本語言,它們還代表了四種非常不同的編程方法,每種都會讓你受益非淺。
這里我無法完整地教會你如何編程---這是個復雜的活兒。但我可以告訴你,書本和課程也不能作到。幾乎所有最好的黑客都是自學成材的。真正能起作用的就是去親自讀代碼和寫代碼。
學習如何編程就象學慣用自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,又讀些,又寫點....如此往復,直到你達到自己在範文中看到的簡潔和力量。
過去找到好的代碼去讀是困難的,因為很少有大型程序的可用源代碼能讓新手練手。這種狀況已經得到了很大的改善;現在有很多可用的開放源碼軟體,編程工具和操作系統(全都有黑客寫成)。這使我們自然地來到第二個話題...
2 得到一個開放源碼的Unix並學會使用、運行它
我假設你已經擁有了一台個人計算機或者有一個可用的( 今天的孩子們真幸福 :-) )。新手們最基本的一步就是得到一份Linux或BSD-Unix,安裝在個人計算機上,並運行它。
當然,這世界上除了Unix還有其他操作系統。但它們都是以二進制形式發送的---你無法讀到它的源碼,更不可能修改它。嘗試在DOS或Windows的機器上學習黑客技術,就象是在腿上綁了鐵塊去學跳舞。
除此之外,Unix還是Internet的操作系統。你可以不知道Unix而學會用Internet,但不懂它你就無法成為一名Internet黑客。因為這個原因,今天的黑客文化在很大程度上是以Unix為中心的。(這點並不總是真的,一些很早的黑客對此很不高興,但Unix和Internet之間的共生關系已是如此之強,甚至連微軟也無可奈何)
So,裝一個Unix---我個人喜歡Linux,不過也有其他選擇。(你也可以在同一台機器上同時運行DOS,Windows和Linux)學會它。運行它。用它跟Internet對話。讀它的代碼。試著去修改他。你會得到比微軟操作系統上好的多的編程工具(包括C,Lisp, Python, and Perl),你會得到樂趣,並將學到比你想像的更多知識。
關於學習Unix的更多信息,請看 The Loginataka.
要得到Linux,請看: 哪裡能得到 Linux.
3 學會如何使用WWW和寫HTML
大多黑客文化建造的東西都在你看不見的地方發揮著作用,幫助工廠、辦公室和大學正常運轉,表面上很難看到它對他人的生活的影響。Web是一個大大的例外。即便政客也同意,這個巨大而耀眼的黑客玩具正在改變整個世界。單是這個原因(還有許多其它的), 你就需要學習如何掌握Web。
這並不是僅僅意味著如何使用瀏覽器(誰都會),而是要學會如何寫HTML,Web的標記語言。如果你不會編程,寫HTML會教你一些有助於學習的思考習慣。因此,先建起自己的主頁。
但僅僅建一個主頁也不能使你成為一名黑客。 Web里充滿了各種網頁。多數是無意義的,零信息量垃圾。
要想有價值,你的網頁必須有內容---必須有趣或對其它黑客有用。這樣,我們來到下一個話題....
黑客文化中的地位大教堂與集市」,解釋了許多Linux和開放源碼文化的運做原理。我還在它的續集「大教堂與集市」,解釋了許多Linux和開放源碼文化的運做原理。我還在它的續集「開拓智域」一文中有更直接的論述。
FAQ(常問問題解答)
問:你會教我如何做黑客嗎?
自從第一次發布此頁,我每周都會得到一些請求,要我「教會他如何做黑客」;遺憾的是,我沒有足夠的時間和精力來做這個;我自己的編程項目已經佔用了我110%的時間。
甚至即便我想教你也不可能,黑客基本上是一項需要你自行修煉的的態度和技術。你會發現即使真正的黑客想幫助你,如果你乞求他們填鴨一樣教你的話,你不會贏得他們的尊敬。
首先去學習。顯示你在嘗試,你能靠自己去學習。然後再去向黑客們請教問題。
問:你會幫我「黑」掉一個站點嗎?或者教我怎麼黑它?
No. 任何在讀完FAQ後還問此問題人,都是愚不可及的傢伙,即使有時間我也不會理睬。 任何發給我的此類mail都會被忽略或被痛斥。
問:哪裡能找到真正的可以與之交流的黑客?
最佳辦法是就近參加一個Unix或Linux的用戶組,參加他們的會議。
問:我該先學哪種語言?
HTML, 如果你還不會的話.
但它不是一個真正的編程語言。當你准備編程時,我建議你從 Python開始. 會有很多人向你推薦Perl,它比Python還受歡迎,但卻難學一些。
C 是非常重要的,但它卻是最難學的。不要一開始就嘗試學C。
問:開放源碼的自由軟體不會使程序員餓肚子嗎?
這似乎不大可能---到目前,開放源碼軟體產業創造了而不是消滅了大量工作機會。
如果寫一個程序比不寫一個程序只是個純粹經濟上的收益的話,無論它是否免費,只要它被完成,程序員都會從中得到回報。而且,無論軟體是由多麼的free的方法開發的,對更新的軟體應用的需求總是會有的。
問:我從何學起?哪裡有免費的Unix?
本頁的其他地方指向最常用的免費Unix。要做一名黑客,你需要自立自強,以及自我教育的能力。
現在開始吧......
參考資料:
另外,虛機團上產品團購,超級便宜
Ⅳ 簡述入侵檢測常用的四種方法
入侵檢測系統所採用的技術可分為特徵檢測與異常檢測兩種。
1、特徵檢測
特徵檢測(Signature-based detection) 又稱Misuse detection ,這一檢測假設入侵者活動可以用一種模式來表示,系統的目標是檢測主體活動是否符合這些模式。
它可以將已有的入侵方法檢查出來,但對新的入侵方法無能為力。其難點在於如何設計模式既能夠表達「入侵」現象又不會將正常的活動包含進來。
2、異常檢測
異常檢測(Anomaly detection) 的假設是入侵者活動異常於正常主體的活動。根據這一理念建立主體正常活動的「活動簡檔」,將當前主體的活動狀況與「活動簡檔」相比較,當違反其統計規律時,認為該活動可能是「入侵」行為。
異常檢測的難題在於如何建立「活動簡檔」以及如何設計統計演算法,從而不把正常的操作作為「入侵」或忽略真正的「入侵」行為。
(4)linux入侵檢測擴展閱讀
入侵分類:
1、基於主機
一般主要使用操作系統的審計、跟蹤日誌作為數據源,某些也會主動與主機系統進行交互以獲得不存在於系統日誌中的信息以檢測入侵。
這種類型的檢測系統不需要額外的硬體.對網路流量不敏感,效率高,能准確定位入侵並及時進行反應,但是佔用主機資源,依賴於主機的可靠性,所能檢測的攻擊類型受限。不能檢測網路攻擊。
2、基於網路
通過被動地監聽網路上傳輸的原始流量,對獲取的網路數據進行處理,從中提取有用的信息,再通過與已知攻擊特徵相匹配或與正常網路行為原型相比較來識別攻擊事件。
此類檢測系統不依賴操作系統作為檢測資源,可應用於不同的操作系統平台;配置簡單,不需要任何特殊的審計和登錄機制;可檢測協議攻擊、特定環境的攻擊等多種攻擊。
但它只能監視經過本網段的活動,無法得到主機系統的實時狀態,精確度較差。大部分入侵檢測工具都是基於網路的入侵檢測系統。
3、分布式
這種入侵檢測系統一般為分布式結構,由多個部件組成,在關鍵主機上採用主機入侵檢測,在網路關鍵節點上採用網路入侵檢測,同時分析來自主機系統的審計日誌和來自網路的數據流,判斷被保護系統是否受到攻擊。
Ⅳ lids是linux intrusion detection system的簡寫,意即linux入侵檢測系統,請問以下
1.概述
入侵檢測(Intrusion Detection),顧名思義,便是對入侵行為的發覺。它通過對計算機網路或計算機系統中的若干關鍵點收集信息並對其進行分析,從中發現網路或系統中是否有違反安全策略的行為和被攻擊的跡象。進行入侵檢測的軟體與硬體的組合便是入侵檢測系統(Intrusion Detection System,簡稱IDS)。與其他安全產品不同的是,入侵檢測系統需要更多的智能,它必須可以將得到的數據進行分析,並得出有用的結果。一個合格的入侵檢測系統能大大的簡化管理員的工作,保證網路安全的運行。
日誌是使系統順利運行的重要保障。它會告訴我們系統發生了什麼和什麼沒有發生。然而,由於日誌記錄增加得太快了,鋪天蓋地的日誌使系統管理員茫然無措,最終使日誌成為浪費大量磁碟空間的垃圾。日誌具有無可替代的價值,但不幸的是它們經常被忽略,因為系統管理員在並不充裕的時間里難以查看大量的信息。標準的日誌功能不能自動過濾和檢查日誌記錄,並提供系統管理員所需要的信息。
對於入侵者來說,要做的第一件事就是清除入侵的痕跡。這需要入侵者獲得root許可權,而一旦系統日誌被修改,就無法追查到攻擊的情況。因此,好的系統管理員應該建立日誌文件檢測。有很多工具可以實現日誌檢測的功能,其中就有Logcheck和Swatch。本文將對Logcheck和Swatch逐一進行介紹。
Ⅵ 如何看Linux伺服器是否被攻擊
以下幾種方法檢測linux伺服器是否被攻擊:
1、檢查系統密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
2、查看一下進程,看看有沒有奇怪的進程
重點查看進程:ps –aef | grep inetd inetd是UNIX系統的守護進程,正常的inetd的pid都比較靠前,如果看到輸出了一個類似inetd –s
/tmp/.xxx之類的進程,著重看inetd
–s後面的內容。在正常情況下,LINUX系統中的inetd服務後面是沒有-s參數的,當然也沒有用inetd去啟動某個文件;而solaris系統中
也僅僅是inetd
–s,同樣沒有用inetd去啟動某個特定的文件;如果使用ps命令看到inetd啟動了某個文件,而自己又沒有用inetd啟動這個文件,那就說明已經有人入侵了系統,並且以root許可權起了一個簡單的後門。
3、檢查系統守護進程
檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep –v 「^#」,輸出的信息就是這台機器所開啟的遠程服務。
一般入侵者可以通過直接替換in.xxx程序來創建一個後門,比如用/bin/sh 替換掉in.telnetd,然後重新啟動inetd服務,那麼telnet到伺服器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。
4、檢查網路連接和監聽埠
輸入netstat -an,列出本機所有的連接和監聽的埠,查看有沒有非法連接。
輸入netstat –rn,查看本機的路由、網關設置是否正確。
輸入 ifconfig –a,查看網卡設置。
5、檢查系統日誌
命令last |
more查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴於syslog進程,這已經成為入侵者攻擊的重要目標。入侵者通常會停止系
統的syslog,查看系統syslog進程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執行的,如果發現
syslog被非法動過,那說明有重大的入侵事件。
在linux下輸入ls –al /var/log
檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。
6、檢查系統中的core文件
通過發送畸形請求來攻擊伺服器的某一服務來入侵系統是一種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說並不能
100%保證成功入侵系統,而且通常會在伺服器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core
–exec ls –l {} \; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。
7、檢查系統文件完整性
檢查文件的完整性有多種方法,通常通過輸入ls –l
文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V
`rpm –qf 文件名`
來查詢,查詢的結果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man
rpm來獲得更多的格式。
Ⅶ 如何在Linux上安裝Suricata入侵檢測系統
在Linux上安裝Suricata IDS
不妨用源代碼構建Suricata。你先要安裝幾個所需的依賴項,如下所示。
在Debian、Ubuntu或Linux Mint上安裝依賴項
$ sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev
在CentOS、Fedora或RHEL上安裝依賴項
$ sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel
一旦你安裝了所有必需的程序包,現在可以安裝Suricata了,如下所示。
首先,從http://suricata-ids.org/download/下載最新的Suricata源代碼,編譯代碼。截至本文撰稿時,最新版本是2.0.8。
$ wget http://www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz
$ tar -xvf suricata-2.0.8.tar.gz
$ cd suricata-2.0.8
$ ./configure --sysconfdir=/etc --localstatedir=/var
這是配置的示例輸出結果。
Suricata Configuration:
AF_PACKET support: yes
PF_RING support: no
NFQueue support: no
NFLOG support: no
IPFW support: no
DAG enabled: no
Napatech enabled: no
Unix socket enabled: yes
Detection enabled: yes
libnss support: yes
libnspr support: yes
libjansson support: yes
Prelude support: no
PCRE jit: yes
LUA support: no
libluajit: no
libgeoip: no
Non-bundled htp: no
Old barnyard2 support: no
CUDA enabled: no
現在編譯並安裝它。
$ make
$ sudo make install
Suricata源代碼隨帶默認的配置文件。不妨安裝這些默認的配置文件,如下所示。
$ sudo make install-conf
正如你所知,要是沒有IDS規則集,Suricata毫無用處。頗為方便的是,Makefile隨帶IDS規則安裝選項。想安裝IDS規則,運行下面這個命令即可。
$ sudo make install-rules
上述規則安裝命令會從EmergingThreats.net(https://www.bro.org)安裝可用的社區規則集的最新快照,並將它們存儲在/etc/suricata/rules下。
首次配置Suricata IDS
現在就可以配置Suricata了。配置文件位於/etc/suricata/suricata.yaml。使用文本編輯工具打開文件,以便編輯。
$ sudo vi /etc/suricata/suricata.yaml
下面是一些基本的設置,供你開始入門。
「default-log-dir」關鍵字應該指向Suricata日誌文件的位置。
default-log-dir: /var/log/suricata/
在「vars」這部分下面,你會找到Suricata使用的幾個重要變數。「HOME_NET」應該指向由Suricata檢查的本地網路。「!$HOME_NET」(被分配給EXTERNAL_NET)指本地網路以外的任何網路。「XXX_PORTS」表明不同服務所使用的一個或多個埠號。請注意:不管使用哪個埠, Suricata都能自動檢測HTTP流量。所以,正確指定HTTP_PORTS變數並不是很重要。
vars:
HOME_NET: "[192.168.122.0/24]"
EXTERNAL_NET: "!$HOME_NET"
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
SSH_PORTS: 22
「host-os-policy」這部分用來防範一些利用操作系統的網路堆棧的行為(比如TCP重組)來規避檢測的常見攻擊。作為一項應對措施,現代IDS想出了所謂的「基於目標的」檢測,檢查引擎根據流量的目標操作系統,對檢測演算法進行微調。因而,如果你知道每個本地主機運行什麼操作系統,就可以將該信息提供給Suricata,從而有望提高其檢測速度。這時候用到了「host-os-policy「部分。在該例子中,默認的IDS策略是Linux;如果不知道某個IP地址的操作系統信息,Suricata就會運用基於Linux的檢查策略。如果捕獲到192.168.122.0/28和192.168.122.155的流量,Suricata就會運用基於Windows的檢查策略。
host-os-policy:
# 這些是Windows機器。
windows: [192.168.122.0/28, 192.168.122.155]
bsd: []
bsd-right: []
old-linux: []
# 將Linux作為默認策略。
linux: [0.0.0.0/0]
old-solaris: []
solaris: ["::1"]
hpux10: []
hpux11: []
irix: []
macos: []
vista: []
windows2k3: []
在「threading」這部分下面,你可以為不同的Suricata線程指定CPU親和性(CPU affinity)。默認情況下,CPU親和性被禁用(「set-cpu-affinity: no」),這意味著Suricata線程將被安排在任何可用的CPU核心上。默認情況下,Suricata會為每個CPU核心創建一個「檢測」線程。你可以調整這個行為,只要指定「detect-thread-ratio: N」。這會創建N x M個檢測 線程,其中M是指主機上CPU核心的總數。
threading:
set-cpu-affinity: no
detect-thread-ratio: 1.5
就上述線程設置而言,Suricata會創建1.5 x M個檢測線程,其中M是系統上CPU核心的總數。
想了解關於Suricata配置的更多信息,你可以閱讀默認的配置文件本身,為了便於理解,加有大量注釋。
使用Suricata執行入侵檢測
現在可以試著運行Suricata了。在啟動它之前,還有一個步驟要完成。
如果你使用pcap捕獲模式,強烈建議關閉Suricata偵聽的那個網卡上的任何數據包卸載功能(比如LRO/GRO),因為那些功能可能會干擾數據包實時捕獲。
下面介紹如何關閉網路介面eth0上的LRO/GRO:
$ sudo ethtool -K eth0 gro off lro off
請注意:視使用的網卡而定,你可能會看到下列警示信息,可以忽視這個信息。它只是意味著你的網卡不支持LRO。
Cannot change large-receive-offload
Suricata支持多種運行模式。運行模式決定了不同的線程如何用於IDS。下面這個命令列出了所有可用的運行模式。
$ sudo /usr/local/bin/suricata --list-runmodes
Suricata使用的默認運行模式是autofp(代表「自動流綁定負載均衡模式」)。在這種模式下,來自每一路流的數據包被分配給單一的檢測線程。流被分配給了未處理數據包數量最少的線程。
最後,不妨啟動Suricata,看看它的實際運行情況。
$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal
在這個例子中,我們監控一個8核系統上的網路介面eth0。如上所示,Suricata創建了13個數據包處理線程和3個管理線程。數據包處理線程包括1個PCAP數據包捕獲線程和12個檢測線程(相當於8 x 1.5)。這意味著,一個捕獲線程捕獲的數據包經負載均衡處理後,變成了IDS面前的12個檢測線程。管理線程是一個流管理器和兩個計數器/統計相關線程。
下面是Suricata進程的線程視圖(由htop描繪)。
Suricata檢測日誌存儲在/var/log/suricata目錄下。
$ tail -f /var/log/suricata/fast.log
04/01/2015-15:47:12.559075 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46997
04/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317
04/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317
為了易於導入,還有JSON格式的日誌:
$ tail -f /var/log/suricata/eve.json
{"timestamp":"2015-04-01T15:49:06.565901","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}
{"timestamp":"2015-04-01T15:49:06.566759","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}
Ⅷ Linux的優勢在哪裡
優勢一:跨平台的硬體支持
由於Linux 的內核大部分是用C 語言編寫的,並採用了可移植的Unix標准應用程序介面,所以它支持如i386、Alpha、AMD和Sparc等系統平台,以及從個人電腦到大型主機,甚至包括嵌入式系統在內的各種硬體設備。
優勢二:豐富的軟體支持
與其他的操作系統不同的是,安裝了Linux系統後,用戶常用的一些辦公軟體、圖形處理工具、多媒體播放軟體和網路工具等都已無需安裝。而對於程序開發人員來說,Linux更是一個很好的操作平台,在Linux 的軟體包中,包含了多種程序語言與開發工具,如gcc、cc、C++、Tcl/Tk、Perl、Fortran77 等。
優勢三:多用戶多任務
和Unix系統一樣,Linux系統是一個真正的多用戶多任務的操作系統。多個用戶可以各自擁有和使用系統資源,即每個用戶對自己的資源(例如:文件、設備)有特定的許可權,互不影響,同時多個用戶可以在同一時間以網路聯機的方式使用計算機系統。多任務是現代計算機的最主要的一個特點,由於Linux系統調度每一個進程是平等地訪問處理器的,所以它能同時執行多個程序,而且各個程序的運行是互相獨立的。
優勢四:可靠的安全性
Linux系統是一個具有先天病毒免疫能力的操作系統,很少受到病毒攻擊。
對於一個開放式系統而言,在方便用戶的同時,很可能存在安全隱患。不過,利用Linux自帶防火牆、入侵檢測和安全認證等工具,及時修補系統的漏洞,就能大大提高Linux系統的安全性,讓黑客們無機可乘。
優勢五:良好的穩定性
Linux 內核的源代碼是以標准規范的32 位(在64 位CPU上是64 位)的計算機來做的最佳化設計,可確保其系統的穩定性。正因為Linux 的穩定,才使得一些安裝 Linux 的主機像Unix 機一樣常年不關而不曾宕機。
優勢六:完善的網路功能
Linux 內置了很豐富的免費網路伺服器軟體、資料庫和網頁的開發工具,如Apache、Sendmail、VSFtp、SSH、MySQL、PHP和JSP 等。近年來,越來越多的企業看到了Linux 的這些強大的功能,利用Linux 擔任全方位的網路伺服器。
Linux 在它的追捧者眼裡是一個近乎完美的操作系統,它具有運行穩定、功能強大、獲取方便等優點,因而有著廣闊的前景,或許也值得我們每一個計算機愛好者學習和應用。Linux學習可參考《Linux就該這么學》。
Ⅸ linux操作系統適合做什麼
Linux操作系統主要有以下三大應用領域:
1. Linux作為企業級伺服器的應用
Linux系統可以為企業架構WWW伺服器、資料庫伺服器、負載均衡伺服器、郵件伺服器、DNS伺服器、代理伺服器、路由器等,不但使企業降低了運營成本,同時還獲得了Linux系統帶來的高穩定性和高可靠性,且無須考慮商業軟體的版權問題。
2. 嵌入式Linux系統應用領域
由於Linux系統開放源代碼,功能強大、可靠、穩定性強、靈活而且具有極大的伸縮性,再加上它廣泛支持大量的微處理體系結構、硬體設備、圖形支持和通信協議,因此,在嵌入式應用的領域里,從網際網路設備(路由器、交換機、防火牆,負載均衡器)到專用的控制系統(自動售貨機,手機,PDA,各種家用電器),LINUX操作系統都有很廣闊的應用市場。特別是經過這幾年的發展,它已經成功地躋身於主流嵌入式開發平台。
3. 個人桌面Linux應用領域
所謂個人桌面系統,其實就是我們在辦公室使用的個人計算機系統,例如:Windows xp、windows 7、Mac等。Linux系統在這方面的支持也已經非常好了,完全可以滿足日常的辦公及家長需求。
Ⅹ 如何通過kali linux入侵網站
入侵檢測系統的核心價值在於通過對全網信息的分析,了解信息系統的安全狀況,進而指導信息系統安全建設目標以及安全策略的確立和調整,而入侵防禦系統的核心價值在於安全策略的實施—對黑客行為的阻擊;入侵檢測系統需要部署在網路內部,監控范圍可以覆蓋整個子網,包括來自外部的數據以及內部終端之間傳輸的數據,入侵防禦系統則必須部署在網路邊界,抵禦來自外部的入侵,對內部攻擊行為無能為力。