導航:首頁 > 編程系統 > linux入侵

linux入侵

發布時間:2023-05-15 05:04:24

⑴ 如何在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系統是否被入侵/中毒的有關問題

一、伺服器出去的帶寬會跑高這個是中毒的一個特徵。
因為伺服器中毒之後被別人拿去利用,常見的就是拿去當肉雞攻擊別人。另外的就是拿你的數據之類的。所以伺服器帶寬方面需要注意下,如果伺服器出去的帶寬跑很高,那肯定有些異常,需要及時檢查一下
2
二、系統里會產生多餘的不明的用戶
中毒或者被入侵之後會導致系統里產生一些不明用戶或者登陸日誌,所以這方面的檢查也是可以看出一些異常的。
3
三、開機是否啟動一些不明服務和crond任務里是否有一些來歷不明的任務?
因為中毒會隨系統的啟動而啟動的,所以一般會開機啟動,檢查一下啟動的服務或者文件是否有異常,一般會在/etc/rc.local 和 crondtab -l 顯示出來。所以要注意檢查一下,以上三點都是比較常見的特徵,還會有些不明顯的特徵需要留意下。
END
實例講解中毒的Linux系統解決過程

1
在工作中碰到一次客戶反饋系統經常卡,而且有時候遠程連接不上。於是我就跟進這位客戶,從本地以及遠程檢查一下他的系統,他也發現有不明的系統進程。我腦子里初步判斷就是可能中毒了。
2
首先,我在監控里檢查一下這伺服器的帶寬,發現伺服器出去的帶寬跑很高,所以才會導致他遠程不上的,這是一個原因。為什麼伺服器出去的帶寬這么高且超出了開通的帶寬值?這個原因只能進入伺服器系統里檢查了。
3
其次,我向客戶詢問了系統的賬號密碼,遠程進入系統里檢查了下,也看到了客戶所說的不明進程。 ps -aux 命令可以查看到 ,客戶反饋不是他的游戲進程,然後我使用命令進行關閉。
4
再接著,我檢查一下開機啟動項 chkconfig --list | grep 3:on
伺服器啟動級別是3的,我檢查一下了開機啟動項,沒有特別明顯的服務。然後檢查了一下開機啟動的一個文件,more /etc/rc.local
看到這個文件里被添加了很多項,詢問客戶,並非是他添加的,所以我也注釋了它。如下圖

5
在遠程的時候,我覺得還是有些卡,檢查了一下系統的計劃任務crond,使用crondtab -l 命令進行查看,看到很多注釋行,再認真查看,也有添加的計劃任務與/etc/rc.local的內容差不多。如下圖,不是顯示全部
與客戶溝通,也不是客戶添加的,客戶說他也不會這些。所以後來我備份了一個這個內容,就刪除了,然後停止crond任務,並chkconfig crond off 禁用它開機啟動。

6
最後為了徹底清除危害,我檢查了一下系統的登陸日誌,看到除了root用戶還有其它的用戶登陸過。檢查了一下/etc/passwd ,看到有不明的用戶,詢問客戶並非他添加,然後使用
usermod -L XXX 禁用這些用戶。 然後更新了下系統的復雜密碼,然後通知客戶。附一些相關圖片

END
如何保障linux系統的安全

一、從以上碰到的實例來分析,密碼太簡單是一個錯
用戶名默認,密碼太簡單是最容易被入侵的對象,所以切忌不要使用太過於簡單的密碼,先前碰到的那位客戶就是使用了太簡單的且規則的密碼 1q2w3e4r5t, 這種密碼在掃描的軟體里是通用的,所以很容易被別人掃描出來的。
2
二、不要使用默認的遠程埠,避免被掃描到
掃描的人都是根據埠掃描,然後再進行密碼掃描,默認的埠往往就是掃描器的對象,他們掃描一個大的IP 段,哪些開放22埠的認為是ssh服務的linux系統,所以才會猜這機器的密碼。更改遠程埠也是安全的一個措施
3
三、使用一些安全策略進行保護系統開放的埠
可以使用到iptables或者簡單的文件安全配置 /etc/hosts.deny 、/etc/hosts.allow等文件進行配置。經常維護也是必須的

⑶ linux系統服務滲透攻擊原理是什麼

第一步,收集攻擊目標的一切信息,如系統版本號,web伺服器版本號,資料庫版回本號,各種類庫的答版本號。
第二步,從收集到的信息中找到可以利用的漏洞,利用它入侵伺服器,並掛上木馬,春天播種,待秋天收獲,歲月靜好。
第三步,以被入侵的伺服器為網橋,探測並收集伺服器內網信息,使用內網滲透技術,入侵內網擴大戰果。
第四步,鏡像有用的信息到自己的伺服器,加密原數據,發勒索信。
第五步,洗干凈屁股,等警察上門。

⑷ Linux web伺服器被入侵

你這種問題很難回答的,只能給你簡單答一下。
1、怎麼入侵的
你的是伺服器專,架上internet上,大屬家都可以訪問。伺服器為了方便別人訪問,總會開啟一些服務如http, ftp, ssh等等。黑客可以利用服務本身的漏洞或者套取密碼(暴力破解、字典破解各種方式)獲取一個有效的可以登錄的用戶,如果正好是root用戶被破解,那你的機器就完全被他控制了。
2、文件是怎麼放進來的?
獲取到用戶後,可以利用wget,或者sftp,ftp等各種方式把文件傳進來。
3、如何防禦?
這個最難回答,防禦比進攻難。
你說開啟了iptables, selinux,但是你有好好設置嗎?
關掉不必要的埠減少被攻擊的可能性;
經常更新你的系統,新的軟體漏洞更少;
各種服務程序不要用root用戶運行,免得黑客輕易利用程序問題獲取root許可權;

還有很多其它方法,網路安全和黑客性質一樣,你要知道怎麼攻擊別人,你就會防禦了。
現在你最好是先把伺服器下線,處理好後再上線,免得在處理過程中受黑客干擾。

⑸ 如何看Linux伺服器是否被攻擊

以下幾種方法檢測linux伺服器是否被攻擊:x0dx0a1、檢查系統密碼文件 x0dx0a首先從明顯的入手,查看一下passwd文件,ls _l /etc/passwd查看文件修改的日期。 x0dx0a2、查看一下進程,看看有沒有奇怪的進程 x0dx0ax0dx0a重點查看進程:ps _aef | grep inetd inetd是UNIX系統的守護進程,正常的inetd的pid都比較靠前,如果看到輸出了一個類似inetd _s x0dx0a/tmp/.xxx之類的進程,著重看inetd x0dx0a_s後面的內容。在正常情況下,LINUX系統中的inetd服務後面是沒有-s參數的,當然也沒有用inetd去啟動某個文件;而solaris系統中x0dx0a也僅僅是inetd x0dx0a_s,同樣沒有用inetd去啟動某個特定的文件;如果使用ps命令看到inetd啟動了某個文件,而自己又沒有用inetd啟動這個文件,那就說明已經有人入侵了系統,並且以root許可權起了一個簡單的後門。x0dx0a3、檢查系統守護進程 x0dx0a檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep _v 「^#」信襪攜,輸出的信息就是這台機器所開啟的遠程服務。 x0dx0a一般入侵者可以通過直接替換in.xxx程序來創建一個後門,比如用/bin/sh 替換掉in.telnetd,然後重新啟動inetd服務,那麼telnet到伺服器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。x0dx0a4、檢查網路連接和監聽埠 x0dx0a輸入netstat -an,列出本機所有的連接和監聽的埠,查看有沒有非法連接。 x0dx0a輸入netstat _rn,查看本機的路由、網關設置是否正確。 x0dx0a輸入 ifconfig _a,查看網卡設置。 x0dx0a5、檢查系統日誌 x0dx0a命令last | x0dx0amore查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴於syslog進程,這已經成為入侵者攻擊的重要目標。入侵者通常會停止系x0dx0a統的syslog,查看系統syslog進程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執行的,如果發現x0dx0asyslog被非法動過,那說明有滑伏重大的入侵事件。 x0dx0a在linux下輸入ls _al /var/log x0dx0a檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。 x0dx0a6、檢查系統中的core文件 x0dx0a通過發送畸形請求來攻擊伺服器的某一服務來入侵系統是一種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說並不能x0dx0a100%保證成功入侵系統,而且通常會在伺服器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core x0dx0a_exec ls _l {} \; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。x0dx0a7、檢查系統文件完整性 x0dx0a檢查文件的完整性有多種方法,通常通過輸入ls _l x0dx0a文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm _V x0dx0a`rpm _qf 文件名` x0dx0a來查詢,查詢的結果是否正常來判斷文件是否完整。在LINUX下好畢使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man x0dx0arpm來獲得更多的格式。

閱讀全文

與linux入侵相關的資料

熱點內容
湯姆貓是什麼網站 瀏覽:913
失易得數據恢復怎麼把照片 瀏覽:185
電腦只顯示1個網路 瀏覽:607
數控加工與編程專業怎麼樣 瀏覽:4
西安程序員工資 瀏覽:389
表格怎麼添加一行數據 瀏覽:35
旅遊網站開發怎麼選 瀏覽:669
properties文件位置 瀏覽:679
不想學編程可以做什麼 瀏覽:22
手機照片一鍵壓縮成文件 瀏覽:962
女生微信霸氣個性簽名 瀏覽:626
微博如何看別人一個月的數據 瀏覽:14
萬能小組件怎麼點擊就進入app應用 瀏覽:817
蘋果5s變形怎麼恢復 瀏覽:286
電腦里文件密碼忘了咋辦啊 瀏覽:315
輸入文件夾 瀏覽:31
extjsgrid刪除列 瀏覽:43
gdx文件怎麼打開 瀏覽:759
如何更新大數據量表 瀏覽:311
特殊量產工具 瀏覽:980

友情鏈接