Linux下PortSentry的配置
生活随笔
收集整理的這篇文章主要介紹了
Linux下PortSentry的配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux下PortSentry的配置 ????前年寫過《IDS與IPS功能分析》一文,受到廣大讀者關注,現將近期有關IDS配置的文章和大家分享。 ?? Internet上的服務器一般都會被安置在防火墻的DMZ(Demilitarized Zone)區,受到防火墻的保護。這在一定程度可以防止具有已知非法特征的危險連接和惡意***,但是卻防止不了合法用戶的非法訪問。什么時候會出現合法用戶的非法訪問呢?舉例說明,比如,合法用戶的機器被他人控制,成為了***的***跳板,或者是合法用戶想做一些別有用心的探測等。除此之外,有些***者還會用端口掃描程序掃描服務器的所有端口,以收集有用的信息(比如,哪些端口是打開的?哪些是關閉的? )。服務器端口被掃描往往是***的前奏。防火墻的腳本大都是基于規則的靜態表示,對于網絡上動態的探測就顯得有點束手無策。因此,現在正在形成一個新的安全學科領域,稱為“***檢測”。 一、***檢測工具簡介 ??? ***檢測工具主要是用來檢測已經發生的和正在進行的***,有些工具甚至可以和防火墻實現“聯動”,采取一定的措施來阻止這些***。 ??? 目前***檢測技術采取的措施主要分為主動和被動兩種。主動方式會通過網絡監測器監聽網絡通信,一旦察覺到可疑的活動(比如特定數據包的流入),就會采取相應的措施。當網絡上有瞬間的***及大流量非法數據發生時,主動方式允許系統在***者發動***的第一時間內做出反應,把***者狙擊在外。被動方式是通過事后分析日志記錄,當注意到有可疑活動時,系統才會采取相應的措施。 ???? 主流的***檢測工具軟件有CHKWTMP、TCPLogd、Shadow、Snon、MoM 等。其中,MoM 比較復雜,功能也很強勁,支持分布式的***檢測。本文重點介紹簡單實用的PortSentry。PortSentry是***檢測工具中配置最簡單、效果最直接的工具之一。PortSentry是Abacus工程的一個組成部分。Abacus工程的目標是建立一個基于主機的網絡***檢測系統,可以從http://www.psonic.com的到關于Abacus工程更為詳細的信息。它可以實時檢測幾乎所有類型的網絡掃描,并對掃描行為做出反應。一旦發現可疑的行為,PortSentry可以采取如下一些特定措施來加強防范: ◆ 給出虛假的路由信息,把所有的信息流都重定向到一個不存在的主機; ◆ 自動將對服務器進行端口掃描的主機加到TCP-Wrappers的/etc/hosts.deny文件中去; ◆ 利用Netfilter機制,用包過濾程序,比如iptables和ipchain等,把所有非法數據包(來自對服務器進行端口掃描的主機)都過濾掉; ◆ 通過syslog()函數給出一個目志消息,甚至可以返回給掃描者一段警告信息。 二、PortSentry的安裝配置 下面詳細介紹PortSentry工具的安裝和配置方法。 1.安裝 從http://sourceforge.net/projects/sentrytools/下載軟件的最新版portsentry-1.2.tar.gz,用root用戶執行如下命令進行安裝: #tar zxvf portsentry-1.2.tar.gz #cd portsentry-1.2 #make #make install 2.修改配置文件portsentry.conf 通過PortSentry進行***檢測,首先需要為它定制一份需要監視的端口清單,以及相應的阻止對策。然后啟動后臺進程對這些端口進行檢測,一旦發現有人掃描這些端口,就啟動相應的對策進行阻攔。 (1)設置端口清單 下面給出portsentry.conf中關于端口的默認配置情況: #Un-comment these if you are really anal; #TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,514,515,540,636,1080,1424,2000,2001,[..] #UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666,700,2049,31335,27444,34555,[..] #Use these if you just want to be aware: TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,[..] UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321" #Use these for juse bare-bones #TCP_PORTS="1,11,15,110,111,143,540,635,180,1524,2000,12345,12346,20034,32771,32772,32773,32774,49724,54320" #UDP_PORTS="1,7,9,69,161,162,513,640,700,32770,32771,32772,32773,32774,31337,54321" 可以有選擇地去掉前面的注釋來啟用默認配置,也可以根據自己的實際情}兄定制一份新的清單,格式和原來的一樣即可。端口列表要根據具體情況而定,假如服務器為Web服務器.那么Web端口就不需要監視.反之,如果是FTP服務器,那么監視Web端口也是有必要的。 (2)給定相關文件 在portsentry.conf中還要添加如下代碼.用以指定相關文件的位置: #此文件記錄允許合法掃描服務器的主機地址 IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore" #此文件中保留了以往所有***主機的IP歷史記錄 HISTROY_FILE="/usr/lcal/psionic/portsentry/portsentry.history" #此文件中是已經被阻止連接的主機IP記錄 BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked" (3)設置路由重定向 通過配置portsentry.conf文件,可以設置一條虛擬路由記錄,把數據包重定向到一個未知的主機.使之無法獲取信息。相應配置代碼如下: #Generic #KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666" #Generic Linux KILL_ROUTE="/sbin/route add -host $TARGET$ gw 333.444.555.666 針對不同的平臺有不同的路由命令.在配置文件中選擇適臺自己平臺的命令即可。 (4)利用其它工具 直接利用Linux中的ipchain,iptables,ipfw和Netfilter等命令,可以切斷***主機的連接: KILL_ROUTE="/usr/local/sbin/iptables -I INPUT -s $TARGET$ -j DROP" 也可以直接把***者的IP記錄到/etc/hosts.deny文件中,利用TCP-Wrappers保護機制來防止***: KILL_HOSTS_DENY="ALL:$TARGET$ # Portsentry blocked" (5)定制警告信息 可以定制一條警告信息,嘲笑一下***者。不過,手冊上建議不要使用該選項,因為這樣做可能會暴露主機的IDS系統。 PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY." 修改完畢后,改變文件的權限.以保證其安全性: #chmod 600 /usr/local/psionic/portsentry/portsentry.conf 3.配置portsentry.ignore文件 /usr/psionic/portsentry/portsentry.ignore文件中設置 了希望PortSentry忽略的主機IP,即允 午合法掃描的主機地址下面是配置情況: #Put hosts in here you never want blocked,This includes the IP addresses #of all local interfaces on the protected host(i.e virtual host,mult-home) #keep 127.0.0.1 and 0.0.0.0 to keep people from playing games. 127.0.0.1/32 0.0.0.0 #Exclude all local interfaces ???所有的本地網絡IP 192.168.0.223 192.168.254.1 127.0.0.1 #Exclude the default gateway(s) 默認網關IP 192.168.0.10 #Exclude the nameservers???? (域名服務器IP) 202.101.170.3 202.96.9.18 修改完成后同樣需要改變文件默認的權限: #chmod 600 /usr/local/psionic/portsentry/portsentry.ignore 三、啟動檢測模式 ??? 最后介紹一下PortSentry的啟動檢測模式。對應TCP和UDF兩種協議方式.分別有三種啟動模式,如下所示: ◆ portsentry-tcp,TCP的基本端口綁定模式; ◆ portsentry-udp,UDP的基本端口綁定模式; ◆ portsentry-stcp,TCP的秘密掃描檢測模式; ◆ portsentry-sudp,UDP的秘密掃描檢測模式; ◆ portsentry-atcp,TCP的高級秘密掃描檢測模式; ◆ portsentry-audp,UDP的高級秘密掃描檢測模式。 ? ??一般情況下,建議使用秘密掃描檢測模式或高級秘密掃描檢測模式。使用高級秘密掃描檢測模式(Advanced Stealth Scan Detection Mode),PortSentry會自動檢查服務器上正在運行的端口, 然后把這些端口從配置文件中移去, 只監控其它的端口。這樣會加快對端口掃描的反應速度,并且只占用很少的CPU時間。 啟動PortSentry的命令如下: #/usr/psionic/portsentry/portsentry -atcp #/usr/psionic/portsentr/portsentr -sudp ?? 可以把啟動命令加到“/etc/rc.d/rc.local”腳本文件中,果想讓它和其它后臺進程一樣可以隨時啟動、停止并查看進程狀態, 可以去這樣當重新啟動計算機的時候PortSentry就會自動運行。如果想讓它和其它后臺進程一樣可以隨時啟動、停止并查看進程狀態,可以去http://linux.cudeso.be/linuxdoc/portsentry.php下載一個后臺管理腳本,把該腳本放在/etc/rc.d/下對應的運行級別目錄中即可。 四、測試 ??? 啟動PortSentry后,可以用掃描器掃描服務器,進行測試PortSentry檢測到掃描后,會采取措施進行阻擊,并在/Usr/local/psionic/portsentry 目錄下生成對應的 portsentry.blocked.atcp文件或portsentry.blocked.audp文 件,文件記錄了發動***的主機的信息。 ??? 同時,TCP-Wrappers會把非法主機的IP添加到/etc/host.deny文件中。這樣既切斷了與非法主機之間的通信,又在服務器上還保留了其犯罪的證據和時間記錄,讓它無處遁形,不可能再有進一步的非法行為。
總結
以上是生活随笔為你收集整理的Linux下PortSentry的配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 矩阵对抗与漏洞补丁201001(第4期)
- 下一篇: Steps to install Dom