Was this page helpful?

psad - 入侵掃描行為分析工具

    簡介

    psad - Port Scan Attack Detector,這個工具可以在 Linux 主機遭受駭客當作入侵掃描的對象時即時被偵測到,並且還可以作郵件通知以及阻擋攻擊 IP。

    • 官方網站:http://cipherdyne.org/psad/
    • 用 Perl 語言開發。
    • 藉由分析 iptables log 偵測入侵掃描行為。
    • 如果偵測到異常,系統會自動寄到指定的信箱,以及可利用 iptables 自動阻擋惡意的連線。
       

    psad.png

    軟體安裝

    系統環境:CentOS 5.5 (Linux 2.6.18-194.26.1.el5)
    下載位址:http://cipherdyne.org/psad/download/

    cd /usr/src
    tar xzf psad-2.1.7.tar.gz
    cd psad-2.1.7/
    ./install.pl 
    

    Notes:

    • 出現幾個提示都按 Enter。
    • 詢問 Would you like to install the latest signatures from http://www.cipherdyne.org/psad/signatures (y/n),不知有啥用,就按 n 跳過。
    • 詢問 Enable psad at boot time ([y]/n),這裡按 y 或 Enter,之後若不想自動啟動時,可以由 chkconfig  來關閉。
    • 移除可以使用 ./install.pl --uninstall。

     

    開啟 iptables log

    iptables -A INPUT -j LOG
    iptables -A FORWARD -j LOG
    

    檢查 LOG 啟動

    #iptables -L
    
    Chain INPUT (policy DROP)
    ...
    LOG        all  --  anywhere             anywhere            LOG level warning 
    ...
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    LOG        all  --  anywhere             anywhere            LOG level warning
    

    設定服務啟動時自動開啟 LOG
    編輯 /etc/sysconfig/iptables,在 *filter 這區段的最後一行 COMMIT 之前加上

    ....
    ....
    # Enable LOG for psad daemon
    -A INPUT -j LOG
    -A FORWARD -j LOG
    COMMIT 
    

    軟體設定

    主設定檔是 /etc/psad/psad.conf,參數說明如下:

    基本設定:

    • EMAIL_ADDRESSES - 通知的信箱,多個地址時以逗號區隔。
    • HOSTNAME - 主機名稱。
    • SYSLOG_DAEMON - syslog 的服務名稱,例如 syslogd。
    • ETC_SYSLOG_CONF - syslog 的設定擋路徑,例如 /etc/syslog.conf。
       

    偵測通知設定:

    • EMAIL_LIMIT - 一個攻擊的來源 IP 位址可以傳送的最大郵件數量,預設是 0 - 沒有限制。為了降低郵件主機負載,建議可以設定 100。
    • ALERTING_METHODS - 警示通知的方式,預設是 ALL - 包含有 email 及紀錄在 syslog,其他參數還有 nosyslog, noemail。
    • EMAIL_ALERT_DANGER_LEVEL - 預設是 1,當偵測到的行為分析為 danger level 大於這個數字時,才會發出郵件通知。
       

    防護設定:

    • ENABLE_AUTO_IDS - 預設是 N,如果設定 Y,可以對來源 IP 進行封鎖。
    • AUTO_IDS_DANGER_LEVEL - 預設是 5,如果偵測到的行為分析 danger level 大於這數字,系統會對來源 IP 進行封鎖,建議設定為 3,因為一般的掃描指令 nmap 就是 3。
    • AUTO_BLOCK_TIMEOUT - 預設是 3600,封鎖 IP 的時間。

    防護測試

    1. psad 開啟防護功能
      ENABLE_AUTO_IDS = Y
      AUTO_IDS_DANGER_LEVEL = 3
    2. 找另一台 Linux 工作站,執行以下指令模擬駭客掃描主機的通訊埠
      #nmap -sT <psad's ip address>
    3. psad 立即偵測到,並發出郵件通知以及封鎖來源 IP,管理員可以執行指令檢查
      #psad --fw-list
    4. IP 一旦被主機封鎖後,直到 AUTO_BLOCK_TIMEOUT(預設是 3600) 所設定的時間後,才會重新被放行。

    FAQ

    Q: 如何關閉 Local 子網路的偵測

    Ans: 編輯 /etc/psad/auto_dl

    # Ignore local subnet
    192.168.7.0/24  0;
    # Ignore a host
    192.168.8.10    0; 
    
    Q: 如何關閉 ping 的警示通知

    Ans: 這是因為主機的 iptables 有設定了禁止 ping 的規則,所以從 iptables 的設定裡註解以下的規則:

    /etc/sysconfig/iptables:

    # Accept responses to our pings
    -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
    -A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
    
    Q: 不小心封鎖到某個 IP,如何立即解鎖

    Ans: 執行以下指令

    iptables -D PSAD_BLOCK_FORWARD -d 123.123.123.123 -j DROP
    iptables -D PSAD_BLOCK_FORWARD -s 123.123.123.123 -j DROP 
    iptables -D PSAD_BLOCK_INPUT -s 123.123.123.123 -j DROP
    iptables -D PSAD_BLOCK_OUTPUT -d 123.123.123.123 -j DROP
    
    Q: 什麼是 danger level

    Ans: 不管是警示通知或封鎖 IP 其原則都是根據所偵測到的連線的危險等級來決定。在 psad.conf 所設定的規則,以連線封包的數量定義了危險等級,預設是

    DANGER_LEVEL1               5;    ### Number of packets.
    DANGER_LEVEL2               15;
    DANGER_LEVEL3               150;
    DANGER_LEVEL4               1500;
    DANGER_LEVEL5               10000;
    

    此外,在 auto_dl 檔也可手動設定某個來源 IP 連線為指定的危險等級。

    Was this page helpful?
    標籤 (Edit tags)
    • No tags

    文件 1

    文件大小日期附件上傳者 
     psad.png
    PSAD
    22.87 KB22:23, 23 Jul 2011alang動作
    查看第1個(總1個)評論: 查看所有
    我是来自中国大陆的,共匪在互联网边界上加了一道墙,导致国外的部分网站在大陆地区无法访问。http://cipherdyne.org/psad/download/psad-2.1.7.tar.gz,在大陆地区根本连接不到web服务端口。麻烦楼主,帮忙发给我一份pasd的源代码,非常感谢。邮箱地址:[email protected]或者[email protected] 編輯者 18:12, 16 Oct 2011
    發佈時間 18:09, 16 Oct 2011 ()
    查看第1個(總1個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core