CẤU HÌNH Cấu hình Snort trên Debian

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 1/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Snort một hệ thống phát hiện xâm nhập mạng (NIDS) mã nguồn mở miễn phí.NIDS là một kiểu của hệ thống phát hiện xâm nhập (IDS), được sử dụng để quét dữ liệu di chuyển trên mạng. Snort cung cấp khả năng phát hiện xâm nhập theo thời gian thực. Trong hướng dẫn này, chúng ta sẽ cài đặt Snort trực tiếp từ file nguồn. Hướng dẫn này được viết cho Debian.
    Cập nhập, nâng cấp và khởi động lại

    Trước khi tiến hành, ta thực hiện một số lệnh sau:

    Mã:
    
    apt-get update
    
    apt-get upgrade -y
    
    reboot
    
    


    Chuẩn bị trước khi cài đặt Snort
    Tiến hành cài đặt một số gói cần thiết:
    Mã:
    apt-get install flex bison build-essential checkinstall libpcap-dev libnet1-dev libpcre3-dev libnetfilter-queue-dev iptables-dev libdumbnet-dev -y
    
    Tạo thư mục lưu trữ các tập tin nguồn:
    Mã:
    mkdir -p /usr/src/snort_src
    cd /usr/src/snort_src
    
    Cài đặt Data Acquisition Library (DAQ)
    Tải về tập tin nguồn:
    Mã:
    wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
    Giải nén tập tin:
    Mã:
    tar xvfz daq-2.0.6.tar.gz
    Di chuyển tới thư mục daq-2.0.6
    Mã:
    cd daq-2.0.6
    Cấu hình và cài đặt DAQ.
    Mã:
    ./configure; make; make install
    Cài đặt Snort
    Chúng tôi muốn chắc chắn rằng chúng tôi đang ở trong thư mục /usr/src/snort_src, vì vậy chúng tôi dùng câu lệnh sau:
    Mã:
    cd /usr/src/snort_src
    Tải về tập tin nguồn:
    Mã:
    wget https://www.snort.org/downloads/snort/snort-2.9.8.0.tar.gz
    Giải nén tập tin:
    Mã:
    tar xvfz snort-2.9.8.0.tar.gz
    Di chuyển tới thư mục snort-2.9.8.0
    Mã:
    cd snort-2.9.8.0
    Cấu hình và cài đặt nguồn.
    Mã:
     ./configure --enable-sourcefire; make; make install
    Sau khi cài đặt của Snort
    Một khi đã cài đặt xong Snort, chúng tôi cần phải chắc chắn rằng các thư viện chia sẻ đã được cập nhật. Chúng tôi có thể làm điều này bằng cách sử dụng lệnh:
    Mã:
    ldconfig
    Sau đó, chúng tôi tiến hành kiểm tra cài đặt Snort bằng câu lệnh:
    Mã:
    snort --version
    Nếu lệnh này không làm việc, bạn sẽ cần phải tạo ra một liên kết tượng trưng. Bạn có thể làm điều này bằng cách gõ:
    Mã:
     ln -s /usr/local/bin/snort /usr/sbin/snort
    Mã:
    snort –version
    Các kết quả đầu ra sẽ giống như dưới đây:
    Mã:
    
       ,,_     -*> Snort! <*-
      o"  )~   Version 2.9.7.5 GRE (Build 262)
       ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
               Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
               Copyright (C) 1998-2013 Sourcefire, Inc., et al.
               Using libpcap version 1.6.2
               Using PCRE version: 8.35 2014-04-04
               Using ZLIB version: 1.2.8
    

    Thay đổi user chạy Snort
    Bây giờ chúng tôi đã cài đặt snort, chúng tôi không muốn nó chạy bằng user root, vì vậy chúng tôi cần phải tạo một user và group có tên là snort. Để tạo một user và group mới, chúng ta có thể sử dụng hai lệnh dưới đây:
    Mã:
    sudo groupadd snort
    sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
    
    Chúng tôi cần phải tạo ra các tập tin cấu hình và các tập tin chứa quy tắc cho snort.
    Mã:
    mkdir -p /etc/snort/rules
    mkdir /etc/snort/preproc_rules
    touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules /etc/snort/rules/local.rules
    
    Tạo thư mục log
    Mã:
    mkdir /var/log/snort
    Tạo nơi lưu trữ các quy tắc động
    Mã:
    mkdir -p /usr/local/lib/snort_dynamicrules
    Thiết lập quyền cho các thư mục và tập tin đã tạo
    Mã:
    chmod -R 5775 /etc/snort
    chmod -R 5775 /var/log/snort
    chmod -R 5775 /usr/local/lib/snort_dynamicrules
    chown -R snort:snort /etc/snort
    chown -R snort:snort /var/log/snort
    chown -R snort:snort /usr/local/lib/snort_dynamicrules
    
    Thiết lập các tập tin cấu hình
    Tiến hành sao chép dữ liệu tới thư mục cấu hình /etc/snort
    Mã:
    cp /usr/src/snort_src/snort*/etc/*.conf* /etc/snort
    cp /usr/src/snort_src/snort*/etc/*.map /etc/snort
    
    Cấu hình
    Trong file /etc/snort/snort.conf, bạn sẽ cần phải thay đổi biến HOME_NET. Khoảng dòng thứ 45, ta khai báo Internal network và các network được xem là External, các HTTP servers, DNS servers, danh sách các port, …

    Mã:
    ipvar HOME_NET 192.168.0.0/24
    ipvar EXTERNAL_NET !$HOME_NET
    
    Lưu ý: HOME_NETEXTERNAL_NET có thể là một địa chỉ IP chính xác hoặc một địa chỉ network. Để khai báo nhiều địa chỉ IP hoặc network, bạn cần khai báo tất cả các network trong cặp dấu ngoặc vuông và cách nhau bởi dấu phẩy.

    Ví dụ: để giám sát máy chủ DMZ có địa chỉ IP 10.0.0.1, dải địa chỉ 172.16.0.0/16 và vùng mạng Internal 192.168.0.0/16, ta khai báo như sau: [10.0.0.1,172.16.0.0/16,192.168.0.0/16]. Nếu bạn muốn giám sát tất cả, đặt địa chỉ network là “any”.

    Thiết lập các quy tắc
    Khoảng dòng thứ 104, cấu hình đường dẫn của các file như sau:
    Mã:
    var RULE_PATH /etc/snort/rules
    var SO_RULE_PATH /etc/snort/so_rules
    var PREPROC_RULE_PATH /etc/snort/preproc_rules
    var WHITE_LIST_PATH /etc/snort/rules
    var BLACK_LIST_PATH /etc/snort/rules
    
    Một khi những giá trị này được thiết lập, xóa hoặc comment các quy tắc bắt đầu vào khoảng dòng 548.
    Bây giờ, cho phép kiểm tra để chắc chắn rằng cấu hình của bạn là chính xác. Bạn có thể xác minh nó với lệnh sau:
    Mã:
    snort -c -T /etc/snort/snort.conf
    Bạn sẽ thấy kết quả ra tương tự như sau:
    Mã:
    Running in Test mode
    
             --== Initializing Snort ==--
    Initializing Output Plugins!
    Initializing Preprocessors!
    Initializing Plug-ins!
    .....
    Rule application order: activation->dynamic->pass->drop->sdrop->reject->alert->log
    Verifying Preprocessor Configurations!
    
             --== Initialization Complete ==--
    
        ,,_     -*> Snort! <*-
       o"  )~   Version 2.9.8.0 GRE (Build 229)
        ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
                Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
                Copyright (C) 1998-2013 Sourcefire, Inc., et al.
                Using libpcap version 1.7.4
                Using PCRE version: 8.35 2014-04-04
                Using ZLIB version: 1.2.8
    
                Rules Engine: SF_SNORT_DETECTION_ENGINE  Version 2.4  <Build 1>
                Preprocessor Object: SF_IMAP  Version 1.0  <Build 1>
                Preprocessor Object: SF_FTPTELNET  Version 1.2  <Build 13>
                Preprocessor Object: SF_SIP  Version 1.1  <Build 1>
                Preprocessor Object: SF_REPUTATION  Version 1.1  <Build 1>
                Preprocessor Object: SF_POP  Version 1.0  <Build 1>
                Preprocessor Object: SF_DCERPC2  Version 1.0  <Build 3>
                Preprocessor Object: SF_SDF  Version 1.1  <Build 1>
                Preprocessor Object: SF_GTP  Version 1.1  <Build 1>
                Preprocessor Object: SF_DNS  Version 1.1  <Build 4>
                Preprocessor Object: SF_SSH  Version 1.1  <Build 3>
                Preprocessor Object: SF_DNP3  Version 1.1  <Build 1>
                Preprocessor Object: SF_SSLPP  Version 1.1  <Build 4>
                Preprocessor Object: SF_SMTP  Version 1.1  <Build 9>
                Preprocessor Object: SF_MODBUS  Version 1.1  <Build 1>
    
    Snort successfully validated the configuration!
    Snort exiting
    
    Mọi thứ đều đã được cấu hình và không xuất hiện lỗi, tiếp theo ta tiến hành kiểm tra snort.

    Kiểm tra Snort
    Cách đơn giản nhất để kiểm tra Snort là bằng cách cho phép các local.rules. Đây là một tập tin có chứa các quy tắc tùy chỉnh của bạn.
    Nếu bạn đã nhận thấy trong file snort.conf, ở đâu đó xung quanh dòng 546, dòng này tồn tại:
    Mã:
    include $RULE_PATH/local.rules
    Nếu bạn không có nó, hãy thêm vào khoảng 546. Sau đó bạn có thể sử dụng các tập tin local.rules để thử nghiệm.

    Bây giờ ta sẽ tạo một rule thử nghiệm. Rule này sẽ báo cho bạn nếu có ai đó đang thực hiện ping từ External network vào Internal network. Bạn có thể làm điều đó bằng cách thêm vào các dòng sau vào tập tin local.rules của bạn.
    Mã:
    vim /etc/snort/rules/local.rules 
    Mã:
    alert icmp any any -> $HOME_NET any (msg:"Ai do dang ping tu ben ngoai"; sid:10000001; rev:001;)
    
    Lưu lại file rồi thoát.


    Chạy thử nghiệm

    Sử dụng câu lệnh sau:
    Mã:
    /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eno1
    
    
    Các tham số:
    -A console: cho Snort biết ta sẽ chạy Snort và mọi kết quả sẽ hiện lên màn hình Terminal hiện tại.
    -c : đường dẫn file cấu hình sẽ sử dụng.
    -i eno1: lắng nghe trên interface eno1.
    -u snort và -g snort: chạy snort dưới quyền của user và group snort.

    Tiến hành ping tới địa chỉ ip của máy chủ của bạn từ một máy khác. Bạn sẽ bắt đầu thấy kết quả đầu ra trông giống như sau:

    Mã:
    01/07−16:03:30.611173 [**] [1:10000001:0] Ai do dang ping tu ben ngoai [**] [Priority: 0]  192.168.1.105 -> 192.168.1.104
    01/07−16:03:31.612174 [**] [1:10000001:0] Ai do dang ping tu ben ngoai [**] [Priority: 0]  192.168.1.104 -> 192.168.1.105
    01/07−16:03:31.612202 [**] [1:10000001:0] Ai do dang ping tu ben ngoai [**] [Priority: 0]  192.168.1.105 -> 192.168.1.104
    ^C*** Caught Int−Signal
    
    Bạn có thể nhấn Ctrl + C để thoát khỏi chương trình. Điều này cho thấy Snort đã được thiết lập. Bây giờ bạn có thể sử dụng bất kỳ quy tắc mà bạn mong muốn.

    Bạn có thể tải về các rule từ trang chính thức của snort, bạn hãy vào trang này, dưới tab Communty, rồi tải về tập tin là community-rules.tar.gz, sau đó giải nén, bạn sẽ có được 1 file là community.rules chứa các quy tắc cần thiết.
     

Chia sẻ trang này

Đang tải...