• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何設定安全log服務器呢?

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    環境 RedHat 7.3 在網上越來越多的 hacker 的出現, 越來越多的高手出現的情況下.如何才能確保自己可以保存一份完整的 log 呢?稍微有點概念的 hacker 都知道,進入系統后的第一見事情就是去清理 log, 而發現入侵的最簡單最直接的方法就是去看系統紀錄文件.現
    環境 RedHat 7.3
    在網上越來越多的 hacker 的出現, 越來越多的高手出現的情況下.如何才能確保自己可以保存一份完整的 log 呢?稍微有點概念的 hacker 都知道,進入系統后的第一見事情就是去清理 log, 而發現入侵的最簡單最直接的方法就是去看系統紀錄文件.現在我們來說說如何設定一個安全的 log 服務器.
    想想看,如果入侵者無法連崮??log 服務器,又如何能改您的 log 呢?現在我們來學習如何設定一個無 ip 的 log 服務器.
    現在,來介紹一下如何用 Snort 來做三件事情∶
    Stealth sniffer
    stealth NIDS porbe
    stealth logger
    這一切都是用在一臺沒有 ip 的服務器上面的. NIDS 是 Network Intrusion Dectection Server 的簡稱,也就是說入侵檢測服務器.

    為什么要 stealth 呢?
    在 internet 中運行任何一種服務,都是有一定的危險的.不管是 http 也好, ftp 也好, telnet 也好,總之都會有機會被 hack 入侵. stealth logger 的獨特性可以讓我們在接收資料的同時,不發送任何的資料.這樣外界的電腦(被 hack 入侵的電腦)就根本無法去更改 loger server 所收到的信息.也就是說保證了我們信息的完整性,以及原始性. 為了確保 log 服務器的安全,最好不要將 log 服務器連接在網路中.也就是說,當您需要檢查 logger 服務器上得東西的時侯,您需要到電腦前,打開屏幕.而不是遠端 login 進來.但是,如果說您一定要連接網路的話的話,那么請用兩個的介面來做.也就是說兩片網卡.并且注意,第一, IP forwarding 一定要關閉.第二就是,用來做 stealth logger 的介面是沒有 ip 的一張網卡,這張網卡必須不能跟另外一個有 ip 的網卡在同一網路下面.
    設定
    首先當然是確定您的網卡安裝無誤,并且可以被 kernel 抓到.然后把網卡所需要的 module 寫到 /etc/modules.conf 文件中.
    現在我們來設定一個沒有 ip 的網卡介面.
    編輯文件 /etc/sysconfig/network-scripts/ifcfg-eth0
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    USERCTL=no
    ONBOOT=yes
    BOOTPROTO=
    BROADCAST=
    NETWORK=
    NETMASK=
    IPADDR=
    存檔后,用 ifconfig 來 active 我們的 eth0 介面.
    初試 stealth
    這里我們用到了 snort 這個程式.如果您的電腦中沒有這個程式,可以到 www.snort.org 下載.
    現在我們運行
    snort -dvi eth0
    這里 -d 的選項告訴 snort 對資料進行 decode (解碼)
    -v 告訴 snort 將結果顯示在屏幕上面
    -i 則是指定所需要的 interface
    可以用 -C 選項告訴 snort 只顯示 ASCII 部份. 忽略 hexadecimal 資料.
    $snort -dviC eth0
    Log directory= /var/log/snort
    Initializing Network Interface eth0
    kernel filter, protocol ALL, TURBO mode
    (63 frames), raw packet socket
    --== Initializing Snort ==--
    Decoding Ethernet on interface eth0
    --== Initialization Complate ==--
    -*> Snort! <*-
    Version 1.8.4 (Build 99)
    By Martin Roesch (roesch@sourcefire.com,
    www.snort.org)
    ......
    ......
    NIDS(入侵偵測) 入侵檢測本身是一件很復雜的事情. snort 本身也提供了強大的入侵檢測的功能. 這里我只做一個簡單的介紹,好讓大家有一個概念.如果真正實體去做一個 NIDS 的話.需要些更復雜的動作.例如設定更完善的 rules, 定時更新 snort.conf 中所定義的 rules (當新的攻擊方式出現以后,要及時更新)
    首先,我們需要更改一下 /etc/snort/snort.conf 具體需要參照您自己的機器來設定.
    #設定 log 存放的地方
    config logdir: /var/log/snort
    #設定網路
    var HOME_NET 192.168.1.0/24
    var EXTERNAL_NET any
    var SMTP $HOME_NET
    var HTTP_SERVERS $HOME_NET
    var SQL_SERVERS $HOME_NET
    var DNS_SERVERS 192.168.1.250/32
    var RULE_PATH ./
    #設定 preprocessors
    preprocessor frag2
    preprocessor stream4: detect_scans
    preprocessor stream4_reassemblt
    preprocessor portscan: $HOME_NET 4 3 portscan.log
    #設定 output
    output database: log, mysql, user=root
    dbname-snort host=localhost
    #rules
    alert tcp $HOME_NET 7161 -> $EXTERNAL_NET any
    (msg: "MISC Cisco Catalyst Remote Aclearcase/" target="_blank" >ccess";
    flags: SA; reference:arachnids, 129;
    reference:cve, CVE-1999-0430;
    classtype:bad-unknow; sid:513; rev:1;)
    #設定 patch , 這些都是些附加的 rules 的文件
    include $RULE_PATH/bad-traffic.rules
    include $RULE_PATH/exploit.rules
    include $RULE_PATH/scan.rules
    include $RULE_PATH/ftp.rules
    #這些 rule 其實還有很多.您可以自己去寫,也可以找人家寫好的下載拿來用.
    現在讓我們把 snort 跑起來∶
    snort -c /etc/snort/snort.conf -D -i eth0
    現在 snort NIDS 的模式跑起來了. 在 default 的情況下∶
    alerts 會放在 /var/log/snort/alert 中
    port-scanning 會放在 /var/log/snort/portscan.log
    當您真正跑 NIDS 的時侯,需要把 snort 以 daemon 的模式來跑. 如果您安裝的是 rpm 的東西,那么 rpm 文件中已經包含了一個 snortd 的文件,并且會幫您安裝在 /etc/rc.d/init.d/ 下面. 當您設定好 snort 的 configure 文件以后,只要用 chkconfig 把 snortd 打開就可以了:
    加入 snortd
    chkconfig --add snortd
    打開 snortd
    chkconfig snortd on
    或者
    chkconfig --level 3 snortd on
    這里的 level 請自行更改到您所跑的 runlevel
    您可以用 cat /etc/inittab | grep id 來看自己在哪個
    runlevel 上面.
    cat /etc/inittab | grep id
    id:5:initdefault:
    這里就是說跑在 run level 5 上面.
    設定服務器 我們需要對服務器做一些設定,讓服務器把 log 送到我們的 logger 服務器去. 首先,我們需要設定 /etc/syslog.conf 把 log 送到一個有效的,但是不存在的 ip 下面.例如我們的網路是 192.168.1.0/24 其中并沒有 192.168.1.123 這臺機器,也就是說這個 ip 實際上是空的.我們就把 log 指向這里.您可以指向任意一個空的有效 ip.
    vim /etc/syslog.conf
    加入
    *.info @192.168.1.123
    如果您的系統是用 syslog-ng 的話
    vim /etc/syslog-ng/syslog-ng.conf
    destination d_loghost { udp(ip(192.168.123)
    port (514)); };
    filter f_info { level(info); };
    log {filter(f_info); destination(d_loghost);};
    我們還需要加入 static ARP entry 才可以. 如果您的網路只是接了記個 Hub 而已, 那么 ARP 地址一樣可以好象 ip 一樣,設定成虛構的. 如果您有連結 switch, 您需要加入 log 服務器的真實 MAC 地址.
    我們這里加入我們 logger 服務器的真實 MAC 地址就可以了.
    arp -s 192.168.1.123 00:D0:B7:DB:BF:95
    在 Logger 服務器設定 snort
    /etc/snort/snort.conf
    var EXTERNAL_NET any
    #等于 snort -d
    config dump_payload
    #等于 snort -C
    config dump_chars_only
    #設定 log 存放的 path
    config logdir: /var/log/snort
    # frag2 所做的動作就是把 fragmented 給我們 re-assembly
    preprocessor frag2
    log udp 192.168.1.1/32 any -> 192.168.1.123/32 514
    (logto: "logged-packets";)

    最后一行需要稍微解釋一下∶
    我們這里把 snort 來做 packet logger. 也就是說,并不是把所有的東西都寫入到 /var/log/snort/alert 中.而是 log any packets with match the rule without writing an alert.
    udp: 是說,我們這里用 udp 的 protocol. system log 通常都是使用 udp 的.
    192.168.1.1/32: 就是只我們的服務器啦,也就是送 log 的機器. 如果您是從整個一個網路段中收 log 也可以用 192.168.1.0/24.
    any: any source port 任何 port
    ->: 這個是 direction operator 大家都知道的
    192.168.1.123/35 514 就是我們給出的那個空 ip 啦, port 514
    如果沒有指定 logto: 的話, log 會分別保存在不同的文件中. 而指定 logto 的話,就會把 log 全部存放到我們指定的文件中,看起來方便多了.
    更安全的保存 log 就可以更安全的保護服務器。 snort 的功能實際上非常的強大, 這里只是一個簡單的介紹而已.如果您對這些東西有興趣??梢匀?www.snort.org/docs/ 下面看到非常多的有用的文件。
    javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>