端口測試工具PortSentry使用1

發表于:2008-09-08來源:作者:點擊數: 標簽:工具端口測試snooker
PortSentry是Abacus工程的一個組成部分。Abacus工程的目標是建立一個基于主機的 網絡 入侵檢測 系統,可以從 http://www.psonic.com 的到關于Abacus工程更為詳細的信息。 1.1 能夠檢測的端口掃描 PortSentry主要用來檢測外部對主機的端口掃描,它能夠對多種

 PortSentry是Abacus工程的一個組成部分。Abacus工程的目標是建立一個基于主機的網絡入侵檢測系統,可以從http://www.psonic.com的到關于Abacus工程更為詳細的信息。

1.1 能夠檢測的端口掃描

  PortSentry主要用來檢測外部對主機的端口掃描,它能夠對多種掃描方法進行檢測,包括:

    * 完全連接掃描

      這是最基本的一種掃描方式,使用connect()系統調用,建立完整的TCP連接,如果連接能夠建立,就表明目標主機的目標端口打開。
    * SYN/半公開掃描

      因為不用建立完整的TCP連接,所以這種方法通常稱為半公開掃描。這種掃描方法不進行三次握手建立TCP連接,只是向目標主機發出一個SYN數據包。然后等待來自目標主機的相應。如果收到SYN|ACK數據包,表示目標端口打開;如果收到RST數據包就表示端口沒開。
    * FIN掃描

      向目標主機發出FIN數據包進行掃描,由Uriel Maimon在Rhrack第49期文15提出。如果收到RST數據包,就表示目標端口關閉;如果沒有收到數據包,就表示目標端口可能打開。
    * NULL掃描

      使用這種方法發出的探測包中,所有TCP包頭標志都被關閉和圣誕樹(xmas)掃描相反
    * 圣誕樹掃描

      探測包TCP包頭的所有標志都被打開,象燈都被打開的圣誕樹,夠形象吧
    * UDP掃描

      使用recvfrom()和write()系統調用掃描
    * 以上無法包括的其它類型的掃描

  為了便于對PortSentry的使用,本文對一些端口掃描技術做了一些簡單的解釋,如果想了解更加詳細的技術細節請參考http://www.insecure.org/nmap關于nmap的技術文檔。

1.2 監視模式和處理方式

  PortSentry可以對一般的TCP、UDP掃描進行監視,使用-tcp、-udp選項;對于隱秘掃描,PortSentry有四種檢測模式:-stcp、-atcp、-sudp、-audp。有兩種方法設置PortSentry需要監視的端口:

    * 使用預定義端口列表。在配置文件中,指定需要監視的端口列表,一旦發生對這些端口的刺探行為,PortSentry就被激活。
    * 反向端口綁定。你可以指定PortSentry監視某個范圍內,除了被系統網絡精靈進程綁定端口之外的所有端口,用戶也可以指定不需要監視的端口。使用這種配置方法,會使PortSentry對端口掃描行為很敏感,從另一方面看,也會產生大量的誤報警,凡事有利則必有弊嘛。

  如果檢測到端口掃描,PortSentry有多種方式應付掃描行為:

    * 使用syslog()系統調用將掃描行為記錄到日志中
    * 將發起掃描的主機名加入到/etc/hosts.deny文件中,這種方式需要TCP_Wrappers的配合
    * 自動修改路由表,刪除到發起掃描主機的路由,使回應數據包無法返回
    * 自動修改本地包過濾程序的配置,丟棄來自惡意主機的數據包

2.安裝

如果你經常使用源代碼安裝軟件,可能會習慣于./configure、make、make install的方式。但是,PortSentry到目前為止還沒有configure腳本,只能手工對一些選項進行配置,然后再進行編譯安裝。使用這種安裝方式很容易造成編譯錯誤,或者即使編譯通過,安裝后因為無法找到配置文件等原因,而使portsentry程序無法執行。下面將詳細介紹起安裝過程。

2.1 編輯portsentry_config.h文件

portsentry_config.h文件中定義了一些很重要的信息,對于portsentry能否正常運行至關重要。

    * CONFIG_FILE

      PortSentry配置文件的路徑
    * WRAPPER_HOST_DENY

      tcp_wrappers的hosts.deny文件所在的路徑,PortSentry能夠使用tcp_wrappers應付掃描行為,它將發起掃描的主機放到hosts.deny文件中,tcp_wrappers就會拒絕從這個主機發起的連接。
    * SYSLOG_FACILITY

      PortSentry使用的syslog facility。它使用的默認syslog facility是LOCAL_DAEMON,使用這個syslog facility,syslogd一般會把PortSentry的警告信息記錄在/var/log/messages文件中,這取決于/etc /syslog.conf文件。

      系統中,如果某個精靈程序不使用自己的日志文件,那么它的日志信息將被syslogd記錄到/var/log/messages文件,造成這個文件的信息非常龐大、雜亂,不容易閱讀。因此用戶希望指定PortSentry自己的日志文件,專門保存PortSentry發出的警告信息。

      可以按照以下步驟設置PortSentry自己使用的日志文件:
          o 修改portsentry_config.h文件

            修改PortSenry_config.h文件的SYSLOG_FACILITY一行,就可以改變PortSentry使用的日志FACILITY:
              SYSLOG_FACILITY LOG_LOCAL0 /*LOG_LOCAL0-7都可以*/
          o 修改/etc/syslog.conf文件

            在/etc/syslog.conf文件中加入下面一行,設置PortSentry使用的日志文件。你也可以選擇自己喜歡的日志文件名。^_^
            local0.* /usr/local/psionic/portsentry/portsentry.log

            做了以上的修改后,syslogd將把PortSentry產生的報警信息同時記錄到/usr/local/psinic/portsentry /portsentry.log和/var/log/messages兩個文件。如果想避免這種情況,還要繼續修改/etc/syslog.conf文件。在這個文件有一行:
              *.info;mail.none;news.none;authpriv.none; /var/log/messages
            把它改為:
              *.info;mail.none;news.none;authpriv.none;local0.none /var/log/messages
          o 重新啟動syslogd程序
              # /etc/init.d/syslog restart
    * SYSLOG_LEVEL

      警告信息的sylog級別。一般不必修改。

2.2 編輯PortSentry的配置文件portsentry.conf

  PortSentry使用portsentry.conf文件作為自己的配置文件。用戶可以編輯這個配置文件設置PortSentry的各項功能,用戶也可以在編譯安裝完成后的使用過程中,根據自己的實際情況進行調整。

    * TCP_PORTS

      在TCP監視模式(-tcp)下使用,指定需要PortSentry監聽的端口號。端口號使用逗號分開,中間不能有空格。PortSentry會對端口進行綁定,綁定的數量默認是64,在源代碼的portsentry.h文件中定義#define MAXSOCKS 64。目前還沒有配置選項對其進行設置置,如果想使用其它值,需要修改源代碼。

      如果使用隱秘掃描檢測模式,PortSentry不會對端口進行綁定,而是使用RAW套接字,在套接字層對連接進行監視。
# UDP_PORTS

在UDP監視模式(-udp)下使用,指定要監視的UDP端口。你應該慎重使用UDP模式,稍有不慎就會給攻擊者以可乘之機,對系統進行拒絕服務攻擊。攻擊者可以在數據包中偽造一個端口范圍,誘使PortSentry阻塞主機的這些端口,達到拒絕服務攻擊的目的。如果你的站點是一個比較出名的站點,訪問量很大,最好不要使用UDP監視模式。
# ADVANCED_PORT_TCP

設置要監視的最大TCP端口號。PortSentry會對小于這個值的端口號進行監視。默認值為1024,最大可以是65535。建議不要超過 1024,因為如果超過這個值,PortSentry就會產生大量的誤報警。使用-atcp參數啟動PortSentry時,會用到這個值。
# ADVANCED_PORT_UDP

設置PortSentry監視的最大UDP端口號。使用-audp參數啟動PortSentry時用到。
# ADVANCED_EXCLUDE_TCP

和ADVANCED_PORT_TCP配合使用。設置在TCP高級監視模式(-atcp)下,不需要PortSentry監視的端口。在一些普通的端口上,一些遠程客戶程序的錯誤會造成PortSentry發出誤報警信息,可以使用這個配置選項去掉這些端口,例如:ident、SSL。
# ADVANCED_EXCLUDE_UDP

和ADVANCED_PORT_UDP配合使用。設置不用PortSentry監視的端口。
# IGNORE_FILE

有時候需要指定一些IP地址,無論如何都不要使PortSentry阻塞這些IP地址,例如:127.0.0.1。在一個文件中保存要被忽略的IP 地址,然后使用IGNORED_FILE指定這個文件所處的路徑,默認的情況下是/usr/local/psionic/portsentry /portsentry.ignore。文件中,每個IP地址占一行,例如:
127.0.0.1
0.0.0.0
# BLOCKED_FILE

指定記錄被阻塞主機IP地址的臨時文件。默認是portsentry.blocked,在記錄時,PortSentry會自動在后面加上監視模式名作為文件的后綴。例如:portsentry.blocked.tcp、portsentry.blocked.udp。
# HISTORY_FILE

指定被阻塞著急IP地址的文件。BLOCKED_FILE和HISTORY_FILE的區別:BLOCKED_FILE指定的文件是一個臨時文件,每次 PortSentry運行,被阻塞的主機IP,重新啟動PortSentry后,就會被清空,其記錄就被加入到HISTORY_FILE指定的文件。默認是portsentry.history。
# BLOCK_UDP

設置針對UDP探測的自動反應功能。。有三個選項:

    * 0

      只對探測行為進行記錄。不阻塞探測報文中的源地址。
    * 1

      啟動KILL_RUN_CMD指定的命令,然后運行KILL_ROUTE指定的命令,阻塞探測報文中的源地址。
    * 2

      只啟動KILL_RUN_CMD設置的命令,使用外部的程序或者腳本處理探測行為。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97