端口測試工具PortSentry使用2

發表于:2008-09-08來源:作者:點擊數: 標簽:工具端口測試snooker
UDP報文比較容易偽造,攻擊者可以偽造大量的UDP報文,使其源地址為大量不同的IP地址,然后使用這些數據包進行探測,就可以誘使 PortSentry啟動對UDP掃描的自動相應機制,將受保護主機從網絡上隔離,從而完成對其的拒絕服務攻擊。因此,應該慎重使用PortSentr

 UDP報文比較容易偽造,攻擊者可以偽造大量的UDP報文,使其源地址為大量不同的IP地址,然后使用這些數據包進行探測,就可以誘使 PortSentry啟動對UDP掃描的自動相應機制,將受保護主機從網絡上隔離,從而完成對其的拒絕服務攻擊。因此,應該慎重使用PortSentry 的這個功能。對于連接到Inte.net上的主機不要使用這項功能保護,設置BLOCK_UDP=0。對于內部網絡的主機,建議打開這項功能,設置 BLOCK_UDP=1,這樣可以檢測到網絡地址欺騙行為,而且從某種程序上還可以檢測到被侵入的主機。

# BLOCK_TCP

設置針對TCP探測主動相應功能。也有0、1、2三個選項。解釋同上。

對于TCP連接,PortSentry會等待建立一個完整的連接,而這是非常難以偽造的,因此TCP偽造報文不是什么太大問題。將這項功能打開吧。

BLOCK_UDP和BLOCK_TCP是下面幾個功能選項(KILL_ROUTE、KILL_RUN_CMD)的入口。
# KILL_ROUTE

如果檢測到攻擊,PortSentry能夠主動斷開到惡意主機的路由。使用KILL_ROUTE指定切斷路由,PortSentry使用的外部命令。注意:出于安全的考慮,一定要使用完全路徑指定PortSentry使用的外部命令。宏$TARGETS$被用來指定惡意主機的地址。 PortSentry可以使用兩種方式切斷惡意主機的路由:

   1. 直接使用route命令

      你可以使用route命令將到惡意地址的網關定義為本地子網的一個地址,一般使用localhost地址127.0.0.1即可。
      KILL_ROUTE="/sbin/route add $TARGET$ 127.0.0.1"

      這是最基本的設置,你可以使用route命令其它的一些選項,關于route命令的用法請參考手冊頁,man route。在portsentry.conf文件中已經提供了一些針對不同系統的設置。
   2. 使用包過濾

      系統內核一般具有包過濾功能,因此使用包過濾,比直接使用使用route程序具有更大的靈活性。
          * ipfwadm

            Linux-2.0.x內核使用ipfwadm程序管理IP防火墻:
            KILL_ROUTE="/sbin/ipfwadm -I -i deny -S $TARGET$ -o"
          * ipchains

            Linux-2.2.x內核使用ipchains:
            KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
          * iptables

            Linux-2.4.x內核使用iptables:
            KILL_ROUTE="/sbin/iptables -I input -s $TARGET$ -j DENY --log-level alert --log-prefix "stealth_scan"

# KILL_HOST_DENY

如果系統使用了TCP_wrappers,可以使用KILL_HOST_DENY使PortSentry將惡意主機地址放到hosts.deny文件中。TCP_wrappers會拒絕從這些地址發起的連接。
KILL_HOSTS_DENY="ALL: $TARGET$ : DENY"
# KILL_RUN_CMD

KILL_RUN_CMD設置PortSentry執行KILL_ROUTE命令之前使用的命令。如果BLOCK_UDP/BLOCK_TCP=2,PortSentry就會只使用KILL_RUN_CMD指定的命令。

可以使用KILL_RUN_CMD指定針對攻擊行為的反應程序或者腳本。你可以編寫一個腳本,使其能夠對目標主機進行掃描,并且能夠針對發現的各種系統缺陷,發起反擊(難度很大,不過不是不可能^_^);或者向對方發出警告信息。但是,建議你不要對攻擊主機采取過于激烈的措施,因為發起端口掃描的系統本身可能已經被侵入了。注意上面的選項中用到了兩個宏$TARGET$和$PORT$,但是它們在這個選項中是無效的。
# SCAN_TRIGGER

PortSentry有一個狀態引擎,能夠記住連接的主機。使用SCAN_TRIGGER選項可以使PortSentry忽略一定數量的端口掃描,不對其作出反應。通過增減這個選項的值,可以調整對于掃描的敏感程度。這個選項的默認值是0,也就是對端口掃描立刻作出反應。如果不想使 PortSentry過于敏感的話,可以把這個值設置為1或者2,這樣會減少誤報警的發生。如果這個值再大,就會是系統過于遲鈍。
# PORT_BANNER

設置標題(banner)信息,一旦PortSentry被激活,就可以把這段文本信息發送到連接主機。不過,如果你不想惹事的話,建議你不要使用這個功能,即使用了也不要使用傷人的話。否則可能觸怒一些人,他們會想盡一切辦法干掉你的系統。注意如果你使用隱秘掃描檢測模式(-stcp或者 -sudp),這項功能無效。

2.3 編輯portsentry.ignore文件

  portsentry.ignore文件保存你不想阻塞的主機地址,至少要包括127.0.0.1以及本機的接口。建議你不要把內部網絡的所有 IP地址都放到這個文件中。因為如果內部網絡的某太主機被侵入了,攻擊者就可能利用這太主機攻擊PortSentry保護的主機。反之,如果被侵入主機 IP地址不在這個文件,PortSentry可能檢測到它被侵入了。

2.4 編譯

  PortSentry目前支持linux、bsd、solaris、hpux、hpux-gclearcase/" target="_blank" >cc、freebsd、openbsd、netbsd、bsdi、aix、osf等系統??梢愿鶕约旱钠脚_進行編譯。例如,在Linux系統上:
  #make linux
  #make install

  PortSentry就會被安裝到自己的路徑。默認是:/usr/local/psionic/portsentry。你也可以設置自己喜歡的路徑,請參考A.1.編輯portsentry_config.h文件。

  為了方便使用,可以將/usr/local/psionic/portsentry加入到PATH變量中。

3.使用

  安裝完畢以后,就可以啟動PortSentry了。啟動portsentry非常簡單,它只有六個操作模式參數。注意:每次只能使用一種監視模式。這六個監視模式是:

    * portsentry -tcp

      基本TCP端口綁定模式。PortSentry將檢查所有的配置文件,接著在后臺綁定所有在portsentry.conf文件中指定的TCP端口 (默認情況下,不超過64個)。如果你想檢查PortSentry的啟動狀態,可以瀏覽其日志文件。PortSentry使用的默認日志文件是/var /log/messages,你也可以根據需要指定自己的日志文件。
    * portsentry -udp

      基本UDP端口綁定模式。PortSentry檢查配置文件,接著在后臺綁定所有的UDP端口(默認情況下,不超過64個)??梢詮娜罩疚募械牡絇ortSentry的啟動狀態。
    * portsentry -stcp

      TCP隱秘掃描檢測模式。如果使用這種檢測模式,PortSentry會打開一個RAW套接字,監視所有進入的報文。如果某個向內報文的目的端口是被監視端口,PortSentry就會進行反應動作。這種檢測模式可以檢測到connect()掃描、SYN/半公開掃描以及FIN掃描。
    * portsentry -atcp

      高級TCP隱秘檢測模式。在這種模式下,PortSentry回對某個范圍的端口號進行監聽,需要被監聽的端口號范圍由 ADVANCED_PORTS_TCP指定,還可以使用ADVANCED_EXCLUDE_TCP指定在這個范圍中,不需要監聽的端口號。在此,你應該注意以下問題:
          o 這種模式在所有的檢測模式中是最敏感和高效的。它不必等到掃描到引線端口,才進行反應。
          o 不過這種檢測模式可能切斷合法的網絡傳輸。如果你連接到一個FTP站點,對方就會返回一個標志請求(ident request)。如果PortSentry正在監視ident端口(113),它就會馬上切斷你和這個FTP端口的聯系。所以,你應該把這個端口放到 ADVANCED_EXCLUDE_TCP選項中。
    * portsentry -sudp

      UDP隱秘掃描檢測模式。和TCP隱秘檢測模式相似。不過,PortSentry只是對UDP端口進行監聽,而不進行綁定操作。
    * portsentry -audp

      高級UDP隱秘掃描檢測模式。和atcp選項非常相似,只是它是面向UDP協議的。這個一個非常高級的選項,但是產生誤報警的幾率很高,使用時,要非常小心。如果在本地網絡上,有一臺路由器發出RIP(Routing Information Protocol)廣播包,就可能被PortSentry阻塞。所以你需要把一些端口放到ADVANCED_EXCLUDE_UDP選項中,以免發生麻煩。

4.測試

  使用某種模式啟動PortSentry,然后查看PortSentry的日志文件(/var/log/messages或者/usr /local/psionic/portsentry/portsentry.log)。如果成功啟動PortSentry,你會看到象下面這樣的信息:
  Jun 28 06:05:20 nixeon portsentry[957]: adminalert: portsentry is starting.
  Jun 28 06:05:20 nixeon portsentry[957]: adminalert: Going into listen mode on TCP port: 143
  . . .
  Jun 28 06:05:20 nixeon portsentry[957]: adminalert: PortSentry is now active and listening.

  上面這些信息的最后一行表示PortSentry已經成功初始化,如果你沒有看到這些信息就表示其啟動失敗。

  在日志文件中,你將會看到所有被PortSentry監聽的端口。如果某個端口正在使用,PortSentry就會在日志中給出綁定失敗的警告信息。如果所有的端口都無法綁定,它就會退出,可以從其日志文件中找到錯誤信息。

  對于高級隱秘掃描檢測模式,PortSentry將列出自己不監聽的端口。這是一種反向綁定。

  現在,你可以從另外的主機上telnet到被監視的端口上了。一旦你開始登錄,在PortSentry的日志文件中就會加入以下形式的日志信息:
  Oct 9 09:12:44 nemesis portsentry[1644]: attackalert: Connect from host: 123.345.56.78 to TCP port: 143
  Oct 9 09:12:46 nemesis portsentry[1644]: attackalert: Host server.haxor.org/123.345.56.78 has been blocked via dropped route.
  Oct 9 09:12:46 nemesis portsentry[1644]: attackalert: Host server.haxor.org/123.345.56.78 has been blocked via wrappers.

  此時,如果你斷開這個連接,然后重新連接到測試主機,你將發現目標主機不可達。保護生效了

5.輸出信息以及記錄文件

  PortSentry在使用過程中,會把所有狀態、錯誤、成功以及其它未知信息寫到syslog。在日志中,PortSentry使用如下標志:

    * adminalert

      指示PortSentry的狀態。
    * securityalert

      表示發生了安全問題。
    * attackalert

      某臺主機觸發了觸發器,PortSentry對其作出了反應。

  PortSentry在阻斷到某個主機路由時,會把主機地址等信息寫到portsentry.blocked.tcp/atcp/stcp /udp/audp/sudp文件中,同時還寫到portsentry.history文件。每次重新啟動 PortSentry,portsentry.blocked.*文件都會被刪除,而portsentry.history文件可以用來記錄被阻塞的主機。
.總結

  隨著網絡的日益普及,入侵檢測也成為了網絡安全的一個非常重要的領域,IDS(Intrusion Dection System,入侵檢測系統)的重要性日益提高。入侵檢測系統基本可以分成兩個類:基于主機的入侵檢測系統,為某臺主機提供保護,例如 PortSentry;網絡入侵檢測系統,能夠對網絡報文進行模式匹配,例如snort。

  本文介紹了一個基于主機的入侵檢測工具--PortSentry。簡要介紹了某些端口掃描技術,重點講述了PortSentry的安裝、配置和使用

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

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