我使用ulog2和mysql将nf_conntrack值收集到我的桥机器中的DB中。 所有东西都运行良好,但我想阻止插入具有"右(hex(orig_ip_saddr),8)=' 7f000001'"的特定值。 我只是执行查询"从ulog2_ct中删除右边(hex(orig_ip_saddr),8)=' 7f000001' "定期,但不是很好的解决方案。
ulog2提供查询以https://github.com/inliniac/ulogd2/blob/master/doc/mysql-ulogd2-flat.sql制作和插入特定数据库 但我无法完全理解,因为我不是sql专家。 我认为一些额外的查询可以解决我想要的问题,但我不知道如何。
插入mysql-ulogd2-flat.sql的查询如下:(第435行)
BEGIN
INSERT INTO ulog2_ct (oob_family, orig_ip_saddr, orig_ip_daddr, orig_ip_protocol,
orig_l4_sport, orig_l4_dport, orig_bytes, orig_packets,
reply_ip_saddr, reply_ip_daddr, reply_ip_protocol,
reply_l4_sport, reply_l4_dport, reply_bytes, reply_packets,
icmp_code, icmp_type, ct_mark,
flow_start_sec, flow_start_usec,
flow_end_sec, flow_end_usec)
VALUES (_oob_family, _orig_ip_saddr, _orig_ip_daddr, _orig_ip_protocol,
_orig_l4_sport, _orig_l4_dport, _orig_bytes, _orig_packets,
_reply_ip_saddr, _reply_ip_daddr, _reply_ip_protocol,
_reply_l4_sport, _reply_l4_dport, _reply_bytes, _reply_packets,
_icmp_code, _icmp_type, _ct_mark,
_flow_start_sec, _flow_start_usec,
_flow_end_sec, _flow_end_usec);
RETURN LAST_INSERT_ID();
END
徐。
答案 0 :(得分:0)
只需在ulog2_ct上创建一个触发器
(检查语法验证,因为我在这里输入了它)
CREATE TRIGGER trig_ulog2_ct
BEFORE INSERT ON ulog2_ct
FOR EACH ROW
BEGIN
DECLARE msg VARCHAR(255);
IF (right(hex(new.orig_ip_saddr),8)='7f000001') THEN
SIGNAL 'your error message Not to insert'
END IF;
END
告诉我们