我在做snort+base的实验。用barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ -f snort.log –w /var/log/snort/barnyard2.waldo后,给我的报错是:
Waiting for new data 07/01-00:30:48.562104 [] [1:1000003:1] Snort Alert [1:1000003:0] [] [Classification ID: (null)] [Priority ID: 0] {ICMP} 192.168.209.1 -> 192.168.209.140 database: mysql_error: Field 'sig_class_id' doesn't have a default value SQL=INSERT INTO signature (sig_name,sig_rev,sig_sid,sig_gid) VALUES ('Snort Alert [1:1000003:0]',1,1000003,1)
database: Problem inserting a new signature 'Snort Alert [1:1000003:0]': INSERT INTO signature (sig_name,sig_rev,sig_sid,sig_gid) VALUES ('Snort Alert [1:1000003:0]',1,1000003,1)
报警信息能在数据库里查到,但是base主页的柱状图里都是0
自定义的rule是alert icmp any any -> $HOME_NET any (msg:"ICMP Packet Detected";sid:1000003;rev:1;)
如果您能帮帮忙,不胜感激【哭死/(ㄒoㄒ)/~~】
你的barnyard2配置有问题,造成基准信息不能写入数据库
Field 'sig_class_id' doesn't have a default value,没有默认值,要么为sig_class_id字段指定一个默认值,修改MySQL数据库表结构,要么修改配置文件,给sig_class_id字段指定一个默认值
报错复制到记事本发给我
题意中提到的Field 'sig_class_id' doesn't have a default value的错误,这是由于在插入新签名时,sig_class_id字段没有指定默认值导致的。建议:
1、修改数据库表结构:请确保数据库中的signature表的sig_class_id字段具有默认值或允许为空。可以通过修改表结构,为sig_class_id字段添加默认值或允许为空的属性。
2、在Barnyard2的配置文件中,可以添加以下行来为sig_class_id字段指定默认值:sig_class_id: NULL
这个报错是由于插入签名数据到数据库时出现问题所致。具体错误是 Field 'sig_class_id' doesn't have a default value
,意味着 sig_class_id
字段没有设置默认值。
检查数据库表结构:确保数据库中的 signature
表具有正确的结构,包括 sig_class_id
字段及其默认值设置。你可以通过查看数据库模式或执行 DESCRIBE signature;
命令来验证。
确认数据库连接配置:请确保 barnyard2.conf
中数据库连接配置的凭据和参数正确无误。特别关注数据库名称、用户名、密码以及连接主机的设置。
检查数据库权限:确保 MySQL 用户具有充分的权限来执行创建和修改相关表的操作。你可以修改数据库用户权限或尝试使用具有更高权限的用户进行操作。
更新 Snort 规则文件:在尝试重新执行 barnyard2
命令之前,确保你已更新 Snort 规则文件并启动 Snort 引擎。建议使用最新的规则文件版本。