安装部署入检监测系统(IDS)

  1. 安装依赖

    yum install -y gcc gcc-c++ flex bison zlib libxml2 libpcap pcre* tcpdump git libtool curl man make

    注:由于yum安装会出现很多无法安装的问题,本次部署采用编译安装。

    编译安装步骤如下:

    (1)软件包下载链接

    https://www.tcpdump.org/#latest-releases #libpcap
    https://www.zlib.net/ #zlib
    https://www.snort.org/downloads #qad
    https://luajit.org/ #Luajit
    https://sourceforge.net/projects/secureideas/files/ #BASE
    https://www.snort.org/downloads #snort
    https://sourceforge.net/projects/adodb/files/latest/download #adobd
    https://github.com/openssl/openssl #openssl
    https://www.snort.org/downloads/#rule-downloads #社区规则下载链接

    (2)将软件包解压,可以使用xftp将下载在windows中的软件包传输到虚拟机后解压,部分不能解压的可用unzip命令解压

    tar -zxvf libpcap-xxx.tar.gz

    (3)编译安装

    解压完成后cd命令进入相应安装包,然后进行编译安装(安装LuaJIT时不需要./configure)

    ./configure && make && make install

    (4)安装qad时会报错,解决办法如下:

    autoreconf -ivf

    (5)安装libdnet

    wget https://nchc.dl.sourceforge.net/project/libdnet/libdnet/libdnet-1.11/libdnet-1.11.tar.gz
    tar -zxf libdnet-1.11.tar.gz
    
    cd libdnet-1.11
    
    ./configure && make && make install
  2. 安装snort

    必须先安装完依赖才能安装snort,否则会报错

    ./configure && make && make install

    Snort安装到/usr/local/bin/Snort目录,最好创建到/usr/sbin/Snort的符号链接

    sudo ln -s /usr/local/bin/snort /usr/sbin/snort

  3. 设置用户名和文件夹结构

    (1)创建文件夹

    sudo mkdir -p /etc/snort/rules
    sudo mkdir /var/log/snort
    sudo mkdir /usr/local/lib/snort_dynamicrules

    (2)修改权限

    sudo chmod -R 5775 /etc/snort
    sudo chmod -R 5775 /var/log/snort
    sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules
    sudo chown -R snort:snort /etc/snort
    sudo chown -R snort:snort /var/log/snort
    sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules

    (3)创价规则文件

    sudo touch /etc/snort/rules/white_list.rules
    sudo touch /etc/snort/rules/black_list.rules
    sudo touch /etc/snort/rules/local.rules

    (4)文件拷贝

    sudo cp ~/snort/snort-2.9.16/etc/*.conf* /etc/snort
    sudo cp ~/snort/snort-2.9.16/etc/*.map /etc/snort
  4. 配置社区规则

    将前面下载的社区规则文件解压并进行拷贝到/etc/snort/rules

    sudo cp ~/snort/community-rules/* /etc/snort/rules

    使用下面的sed命令轻松地注释掉不必要的行

    sudo sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf

  5. 编辑配置文件

    sudo vim /etc/snort/snort.conf

    (1)设置网络变量,将第45行的ipvar HOME_NET any改为ipvar HOME_NET 192.168.x.x网段,并写成CIDR格式。也可以添加多个网段。

    ipvar HOME_NET 192.168.174.120
    将48行ipvar EXTERNAL_NET any 改为 ipvar EXTERNAL_NET !$HOME_NET
    第104行 var RULE_PATH ../ruls 改为 var RULE_PATH /etc/snort/rules
    第105行 var SO_RULE_PATH ../so_rules 改为var SO_RULE_PATH /etc/snort/so_rules
    第106行 var PREPROC_RULE_PATH ../preproc_rules 改为 var PREPROC_RULE_PATH/etc/snort/ preproc_rules
    第113行 var WHITE_LIST_PATH ../rules 改为 var WHITE_LIST_PATH /etc/snort/rules
    第114行 var BLACK_LIST_PATH ../rules 改为 var BLACK_LIST_PATH /etc/snort/rules

    (2)设置日志保存路径

    config logdir:/var/log/snort/

    (3)配置输出插件

    Snort可通过数据库插件(spo_database.c和spo_database.h)将预处理器输出的日志写入数据库,但下面的配置一方面将报警写入alert文件,另一方面将预处理器输出的日志写入到unified2格式的二进制文件中,以供Barnyard2读取使用。
    将第521行修改成如下内容:

    output unified2:filename snort.log,limit 128

    (4)文件底部,找到包含的规则集列表。您需要取消对local.rules的注释,以允许Snort加载任何自定义规则

    include $RULE_PATH/local.rules
    include $RULE_PATH/community.rules    #加入社区规则
  6. 测试

    (1)测试snort是否安装成功

    sudo snort -T -c /etc/snort/snort.conf

    出现如下结果,则安装配置成功

    Snort successfully validated the configuration!
    Snort exiting

    (2)模拟测试是否能够进行入侵监测报警

    增加测试规则,ping命令报警

    sudo vim /etc/snort/rules/local.rules
    
    alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)

    (3)开启IDS进行捕获报警信息,注意修改网卡,此处为ens33

    sudo snort -A console -i ens33-u snort -g snort -c /etc/snort/snort.conf

    (4)使用另一台主机ping当前主机,出现报警,报警情况如图13.9所示:

    请输入图片描述

    图中日志显示每个ICMP调用的警告,包括源和目标IP、时间和日期,以及一些附加信息,如下面的示例所示:
    snort -r /var/log/snort/ snort.log.1588934231

    请输入图片描述

  7. 配置snort后台运行

    (1)编辑文件加入以下内容

    sudo vim /lib/systemd/system/snort.service   
     
    [Unit]
    Description=Snort NIDS Daemon
    After=syslog.target network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0
    
    [Install]
    WantedBy=multi-user.target

    (2)加载脚本

    sudo systemctl daemon-reload

    (3)启动snort

    sudo systemctl start snort

    (4)查看snort状态

    sudo systemctl status snort

参考链接:

https://www.snort.org/documents #官方文档

https://blog.csdn.net/qimengxingyuan/article/details/103775164?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-4 #博客链接

https://www.cnblogs.com/lsdb/p/8023884.html #博客链接

https://upcloud.com/community/tutorials/install-snort-ubuntu/#point-9 #步骤较详细

https://www.bbsmax.com/A/kPzO3y21zx/ #部分报错解决办法

https://blog.csdn.net/vr7jj/article/details/80438663 #报错解决

最后编辑:2020年11月17日 ©著作权归作者所有

发表评论

正在加载 Emoji