本次方案适配绝大多数单位部署的数字档案馆系统,基于开源入侵检测工具Snort实现,零成本可落地,环境要求如下:
直接执行以下命令,一次性安装所有编译依赖,无需单独下载:
``` sudo apt update && sudo apt install -y build-essential libpcap-dev libpcre3-dev libluajit-5.1-dev libnghttp2-dev openssl zlib1g-dev wget sendmail ```执行完成后直接下载Snort稳定版安装包:
``` wget https://www.snort.org/downloads/snort/snort-2.9.19.tar.gz ```依次执行以下命令完成安装,每一步执行完确认无报错再进行下一步:
``` 解压安装包 tar zxvf snort-2.9.19.tar.gz && cd snort-2.9.19 编译配置与安装 ./configure --enable-sourcefire --enable-luajit --enable-nflog --enable-nghttp2 && make && sudo make install 更新动态链接库 sudo ldconfig ```安装完成后验证:执行snort -V,输出版本信息即成功;如果提示命令找不到,执行以下命令修复:
创建专用运行用户,避免权限风险:
``` sudo groupadd snort && sudo useradd snort -r -s /sbin/nologin -g snort ```先创建所需目录并分配权限:
``` sudo mkdir -p /etc/snort/rules /etc/snort/preproc_rules /var/log/snort /usr/local/lib/snort_dynamicrules sudo chmod -R 755 /etc/snort && sudo chown -R snort:snort /var/log/snort ```编辑主配置文件sudo vi /etc/snort/snort.conf,直接复制替换以下内容,注意修改HOME_NET:
接下来添加针对数字档案馆场景的自定义检测规则,编辑/etc/snort/rules/local.rules,复制添加以下内容:

下载社区开源基础规则包:
``` wget https://rules.snort.org/community/snort3-community-rules.tar.gz -P /tmp tar zxvf /tmp/snort3-community-rules.tar.gz -C /tmp cp /tmp/snort3-community-rules/snort3-community.rules /etc/snort/rules/snort.rules ```验证配置正确性,把命令中的eth0替换为你的服务器实际网卡名称,可通过ip addr查看:
输出Configuration is Correct即为配置成功。
创建systemd服务文件sudo vi /etc/systemd/system/snort.service,复制以下内容,同样替换eth0为你的网卡名:
启动服务并设置开机自启:
``` sudo systemctl daemon-reload && sudo systemctl start snort && sudo systemctl enable snort ```执行sudo systemctl status snort显示active (running)即为部署完成。
从外部机器访问你的数字档案馆,构造测试请求:http://你的数字档案馆地址/admin.php?a=union select 1,2,3,1分钟后执行以下命令查看日志:
如果能看到对应规则的告警信息,说明入侵检测已经正常工作,你也会在配置的邮箱收到告警通知。
sudo systemctl restart snort即可/etc/snort/whitelist.config,每行一个IP,然后在snort.conf中添加include $WHITE_LIST_PATH/whitelist.config即可自动排除本方案完全满足三级等保对数字档案馆系统入侵检测的要求,所有步骤可直接复制执行,无需额外技术基础即可落地。