1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      使用強大的Snort

      更新時間: 2007-04-23 10:12:57來源: 粵嵌教育瀏覽量:1061

      使用Snort制造強大的網(wǎng)絡安全檢測系統(tǒng)

      chu888@263.net 皮皮魯

        這篇文檔通過snort來在你的系統(tǒng)上建立一個網(wǎng)絡安全檢測系統(tǒng),并且將所有可能發(fā)生的安全入侵動作記錄下來。

        Snort是Martin Roesch開發(fā)的一個基于軟件的實時入侵檢測系統(tǒng),它可以提醒管理員任何一個潛在的入侵行為。對于日益增漲的網(wǎng)絡攻擊行為、功能強大的exploits和一些經(jīng)驗豐富的黑客來說,它們以成為你網(wǎng)絡中的隱患,監(jiān)視與跟蹤他們的動作以成為你日常工作中的一部分。

        直到現(xiàn)在,檢測系統(tǒng)一般都是一些專業(yè)的硬件設備和一些非實時性的產(chǎn)品并且非常難于安裝,Snort是一個基于TCP/IP的網(wǎng)絡監(jiān)聽解決方案,它的使用成本遠低于專業(yè)的監(jiān)聽設備,因為它是開源軟件,Snort非常易于使用,雖說它是一個輕量級的產(chǎn)品但它的功能一點也不亞于商業(yè)產(chǎn)品。

      什么是網(wǎng)絡安全檢測系統(tǒng)?

        網(wǎng)絡入侵檢測系統(tǒng)(NIDS)是一個可以檢測任何非正常信息和未經(jīng)認證信息的系統(tǒng),它不象防火墻一樣通過配置訪問列表和內(nèi)容信息檢測來控制網(wǎng)絡,如果傳輸方法和內(nèi)容被允許,它才被允許通過,但是NIDS捕捉和檢測全部的傳輸,不管理它是允許的還是不被允許的數(shù)據(jù)包,它是基于傳輸內(nèi)容的一種控制方法,可以對于任一一個IP或應用層進行警告控制。
      Snort是一個輕量級的NIDS系統(tǒng),它不會打斷入侵行為,它只是起到監(jiān)控作用,它非常容易控制,可以使用一些你所熟悉的方法進行開發(fā),并且安裝很快。Snort當前包含了超過1100條入侵警告信息。而且它保留了一些和其他檢測設備時行溝通的方法,它并不會影響其他的入侵檢測設備的工作。

      它非常徹底的封裝了一些包特性,以下是snort可以使用的特性:

        • 可以檢測緩沖區(qū)溢出、端口掃描、CGI攻擊、SMB探測、NetBios探測、NMAP掃描等等,并且可以檢測出系統(tǒng)中一些未知的木馬程序、DDos客戶端和許多許多未知的程序。

      • 使用syslog、SMB的網(wǎng)絡消息來警告系統(tǒng)管理員。
      • 可以快速開發(fā)出新的入侵警告
      • 將數(shù)據(jù)包以人性化的方法進行解碼并以目錄方式記錄.
      • 使用被動方式進行檢測
      • 可以使用DSL或?qū)S梅掌鱽頇z測你的網(wǎng)絡

        Snort使用libpcap庫,tcpdump工具也使用同樣的庫文件,Snort解碼所有通過網(wǎng)絡的數(shù)據(jù)包用于檢測是否有入侵動作,在它工作時它以混雜模式工作。

      為什么要使用入侵檢測系統(tǒng)?

        入侵檢測設備都應該是任何網(wǎng)絡中的一部分,它可以將幫助你檢測的入侵行為。

      在安裝Snort之前
      在實裝Snort之前有一些事情需要你考慮。
      • 你的組織或機構(gòu)是否你同意你使用檢測系統(tǒng)?
      • 在你的系統(tǒng)上安裝snort是否安全?
      • 你將在那里安裝Snort?如果你想嘗試找出掃描你機器端口或攻擊你自已網(wǎng)絡的人來的話,它可能是的了,不過對于放置在公司里面的snort來說可能會難一點。
      • 你的時間是否正確,這對于NIDS來說非常重要,建議你通過time server來進行同步。請你修改crontab文件。
      00 * * * * root /usr/sbin/ntpdate -u

      安裝檢測設備

        這個檢測設備可以放置在組織的防火墻外面或放置在DMZ中。這樣將可以使 snort檢測到攻擊行為而且不影響防火墻的工作。

      交換機、路由器、防火墻的存在將影響檢測系統(tǒng)的正常工作。

      單一接口

        單一接口對于檢測設備來說是容易的。單一接口可以用來監(jiān)聽網(wǎng)絡中所有的數(shù)據(jù)傳輸,前提這個網(wǎng)絡是基于非交換環(huán)璄的。

      雙接口

        在兩接口中一個接口用于網(wǎng)絡監(jiān)聽,一個接口用于遠程網(wǎng)絡管理。這種配置將不提供任何服務,只提供一個SSH遠程服務進行管理。

      實裝Snort

        首先保證機器上以正確安裝了libpcap庫。如果你是Redhat系統(tǒng)可以去以下地址下載:

      http://www.linuxsecurity.com/programs/snort-1.6.2.2-1.i386.rpm. ftp://ftp.ee.lbl.gov/libpcap.tar.Z.

      實裝網(wǎng)絡入侵檢測庫

        安裝后你可以通過網(wǎng)絡下載的入侵庫: http://www.snort.org/snort-files.htm#Rules

        還有一些其他的入侵庫你可以通過http://dev.whitehats.com/ids/vision.conf 下載,它們每個小時都會更新

        如果你是通過rpm進行的安裝,你可以通過snort-update進行升級,修改你的cron文件。

        00 00 * * * root /usr/sbin/snort-update -q

        在正確安裝以后,你就可以使用它了,以下是它的基本命令集合

      # snort -? 打印出常用的選項

      test-drive是用來保證正確的安裝。只監(jiān)視本地機器,-I=interface:

      # snort -vdei eth0

      用CTRL+C來停止測試。不要忘了將你的網(wǎng)卡設為混雜模式。Snort將以后臺程序形式運行,并會以開啟停止形式出現(xiàn)。

      Packet Sniffer模式

      這種模式下,只將TCP/IP報頭打印出來

      # snort -v

      查看應用層數(shù)據(jù)

      # snort -vd


      數(shù)據(jù)聯(lián)接層報頭

      # snort -vde

      記錄

        指定任何其他選項是沒有意義的,如果你需要Snort的安裝選項或者使用tcpdump,請解析出這個文件,-r表示讀并處理文件。
      # snort -vder /var/log/snort/snort-0629@1600.log
      對Berkeley Packet Filter解析出特定的項目
      # snort -vder /var/log/snort/snort-0629@1600.log udp
      # snort -vr /var/log/snort/snort-0629@1600.log tcp
      # snort -ver /var/log/snort/snort-0629@1600.log icmp
        對Berkeley Packet Filter用man查看snort和tcpdump的其他選項。

      網(wǎng)絡侵入探測模式

        現(xiàn)在我們進入真正的Snort工具??匆幌?etc/snort/snort.conf,全局配置文件。Snort的規(guī)則設置也以文本文件形式存放在/etc/snort。仔細看一下這一行:

      var HOME_NET $eth0_ADDRESS

        這個是按照本地網(wǎng)卡的網(wǎng)絡設置來初始化Snort。

        為了保證速度,記錄每個單個的包并顯示在屏幕上是不可能的。包會被丟棄,而記錄文件會變得非常龐大。使用-v切換,這樣就不會顯示在屏幕上,我們可以不用-e,數(shù)據(jù)連接報頭:

      # snort -dl /var/log/snort -h 192.168.1.0/24 -c /etc/snort/snort.conf

        -h表示本地網(wǎng)絡,-c表示使用規(guī)則設定。這是基本的,用ASCII記錄安裝規(guī)則定義的包。使用-b切換記錄為二進制文件。注意定義子網(wǎng)范圍用CIDR符號。

        這些神秘的規(guī)則設定是從哪里來得呢?兩個來源:從Snort.org,包括在RPM或是下載的二進制文件中;從Martin Roesch,Snort的制作者,他設計的Snort在所有方面都很迅速:安裝、運行和對攻擊的反應。如果你有能力分析一個攻擊和確認一個獨特的信號,你可以自己寫一個規(guī)則來發(fā)現(xiàn)并記錄它。參見你下載的Snort用戶手冊(SnortUsersManual.pdf),這是一個非常好的寫定制規(guī)則指南。(這些文件都可以在線獲得)Snort.org每天更新規(guī)則設定,你可以下載讓你滿意的。你可以在Snort.org上的Snort/contrib目錄找到snortpp,可以用它來合并新的規(guī)則

      下面就是配置好snort.conf的文件了,以下是基本的配置文件:

      #
      # Taken and modified from "vision.conf", part of Max Vision's
      # ArachNIDs work. See /usr/doc/snort-1.6/README.snort-stuff for more
      # information on how to use this file.

      var INTERNAL 192.168.1.0/24
      var EXTERNAL 63.87.101.0/24
      var DNSSERVERS 63.87.101.90/32 63.87.101.92/32

      preprocessor http_decode: 80 443 8080
      preprocessor minfrag: 128
      preprocessor portscan-ignorehosts: $DNSSERVERS
      preprocessor portscan: $EXTERNAL 3 5 /var/log/snort/portscan.log
      # |
      # Log file (path/name) ----------------------------------+

      # Ruleset, available (updated hourly) from:
      #
      # http://dev.whitehats.com/ids/vision.conf

      # Include the latest copy of Max Vision's ruleset
      include /etc/snort/vision.conf

      #
      # Uncomment the next line if you wish to include the latest
      # copy of the snort.org ruleset. Be sure to download the latest
      # one from http://www.snort.org/snort-files.htm#Rules
      #
      # include /etc/snort/06082k.rules

      #
      # If you wish to monitor multiple INTERNAL networks, you can include
      # another variable that defines the additional network, then include
      # the snort ruleset again. Uncomment the two following lines.
      #
      # var INTERNAL 192.168.2.0/24
      # include /etc/snort/vision.conf

      # include other rules here if you wish.
      authpriv.* /var/log/secure.log

      [root@krypton ~]# snort -d -l /var/log/snort -c /etc/snort/rules.base
      Initializing Network Interface...
      User level filter, protocol ALL, raw packet socket
      Decoding Ethernet on interface eth0
      Initializing Preprocessors!
      -------------------------------------------------
      Keyword | Preprocessor @
      -------------------------------------------------
      http_decode : 0x8053070
      minfrag : 0x8053290
      portscan : 0x8053ce0
      portscan-ignorehosts: 0x8054340
      -------------------------------------------------

      Initializing Plug-ins!
      -------------------------------------------------
      Keyword | Plugin Registered @
      -------------------------------------------------
      content : 0x8052050
      offset : 0x8052080
      depth : 0x80520f0
      nocase : 0x8052160
      flags : 0x8052710
      itype : 0x80528f0
      icode : 0x8052a00
      ttl : 0x8052b10
      id : 0x8052bf0
      ack : 0x8052cd0
      seq : 0x8052dc0
      dsize : 0x8052ec0
      ipopts : 0x8054420
      rpc : 0x8054670
      icmp_id : 0x8054830
      icmp_seq : 0x8054930
      session : 0x8055300
      -------------------------------------------------

      Initializating Output Plugins!
      -------------------------------------------------
      Keyword | Output @
      -------------------------------------------------
      alert_syslog : 0x8054a20
      log_tcpdump : 0x8054ff0
      -------------------------------------------------


      +++++++++++++++++++++++++++++++++++++++++++++++++++
      Initializing rule chains...
      255 Snort rules read...
      255 Option Chains linked into 140 Chain Headers
      +++++++++++++++++++++++++++++++++++++++++++++++++++

      Performing Rule List Integrity Tests...
      ---------------------------------------
      Alert TCP Chains : OK
      Alert UDP Chains : OK
      Alert ICMP Chains : OK
      Log TCP Chains : Empty list...
      Log UDP Chains : Empty list...
      Log ICMP Chains : Empty list...
      Pass TCP Chains : Empty list...
      Pass UDP Chains : Empty list...
      Pass ICMP Chains : Empty list...
      ---------------------------------------


      -*>; Snort! <*-
      Version 1.6
      By Martin Roesch (roesch@clark.net, www.clark.net/~roesch)
      按Ctrl+c可以停止snort的運行,如果你想snort運行在后臺你可以使用:
      [root@krypton ~]# /usr/sbin/snort -s -d -D -i eth0 -l /var/log/snort -c /etc/snort/rules.base
      如果你想snort啟動時就載入可以編輯一個文件,放入/etc/rc.d/init.d/snortd這個文件中
      [root@krypton ~]# /etc/rc.d/init.d/snortd
      Starting snort: [ OK ]
      [root@krypton ~]# ps awx | grep snort
      9131 ? S 0:04 /usr/sbin/snort -s -d -D -i eth0 -l
      /var/log/snort -c /etc/snort/rules.base
      9149 pts/1 S 0:00 grep snort
      [root@krypton ~]#
      之后為了測試一下snort是否工作正常你可以使用nmap來測試一下。
      [root@krypton ~]# nmap -p 25,53 -sX -P0 -D 1.2.3.4,5.6.7.8 192.168.200.189

      Starting nmap V. 2.54BETA1 by fyodor@insecure.org (www.insecure.org/nmap/)
      Interesting ports on smtp.mydomain.com (192.168.200.189):
      Port State Service
      25/tcp open smtp
      53/tcp open domain

      Nmap run completed -- 1 IP address (1 host up) scanned in 19 seconds
      之后snort如果工作正常的話,你將得到一條這樣的信息
      Jun 18 15:57:52 krypton snort[9131]: spp_portscan: PORTSCAN DETECTED from
      1.2.3.4
      Jun 18 15:57:52 krypton snort[9131]: spp_portscan: PORTSCAN DETECTED from
      5.6.7.8
      Jun 18 15:57:58 krypton snort[9131]: spp_portscan: portscan status from
      192.168.1.100: 2 connections across 1 hosts: TCP(2), UDP(0) STEALTH
      Jun 18 15:57:58 krypton snort[9131]: spp_portscan: portscan status from
      1.2.3.4: 2 connections across 1 hosts: TCP(2), UDP(0) STEALTH
      Jun 18 15:57:58 krypton snort[9131]: spp_portscan: portscan status from
      5.6.7.8: 2 connections across 1 hosts: TCP(2), UDP(0) STEALTH
      [root@krypton ~]# cd /var/log/snort
      [root@krypton snort]# find 192.168.200.189
      192.168.100.189
      192.168.100.189/ICMP_ECHO
      192.168.100.189/ICMP_PORT_UNRCH
      192.168.100.189/TCP:57554-32771
      192.168.100.189/TCP:57555-32771
      [root@krypton ~]#
      [root@krypton 192.168.100.189]# cat TCP:57554-32771
      ** MISC-Attempted Sun RPC high port access **
      06/18-00:48:31.928357 192.168.100.189:57554 ->; 192.168.200.189:32771
      TCP TTL:42 TOS:0x0 ID:5410
      ***F*P*U Seq: 0x0 Ack: 0x0 Win: 0x400
      00 00 00 00 00 00 ......
      The corresponding syslog entry looks like:
      Jun 18 00:48:31 krypton snort[8757]: MISC-Attempted Sun RPC high port
      access: 192.168.100.189:57554 ->; 192.168.200.189:32771



      --------------------------------------------------------------------------------
      ShySamurai 回復于:2003-04-21 16:23:55

      引用:原帖由 "chu888" 發(fā)表:
      ISC-Attempted Sun RPC high port
      access: 192.168.100.189:57554 ->; 192.168.200.189:32771

      Tools are available for analysing and visualising your snort logs. Such as ACID(Analysis Console for Intrusion Database).
      About ACID you can check out the link below:
      http://www.andrew.cmu.edu/~rdanyliw/snort/snortacid.html

      You can set up your Intrusion Detection System like this:

      ACID<--------------------MySQL<------------------Snort

      Also, there are plenty of documents about how to set up Snorts are available.
      http://www.snort.org/

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲日韩欧在线观看 | 亚洲成高清a人片在线观看 综合国产亚洲专区 | 中文字幕日韩亚洲欧美一区 | 亚洲日本一区二区三区不乱码 | 亚洲国产视频一级日韩欧美网站 | 日韩视频一区二区 |