-
Notifications
You must be signed in to change notification settings - Fork 3
/
mkdmarc
88 lines (76 loc) · 3.3 KB
/
mkdmarc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
-- Create database for DMARC data
-- Copyright 2012, Taughannock Networks. All rights reserved.
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions
-- are met:
-- Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-- AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
-- WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-- POSSIBILITY OF SUCH DAMAGE.
USE dmarc
CREATE TABLE report (
serial int(10) unsigned NOT NULL AUTO_INCREMENT,
mindate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
maxdate timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
domain varchar(255) NOT NULL,
org varchar(255) NOT NULL,
reportid varchar(255) NOT NULL,
PRIMARY KEY (serial),
UNIQUE KEY domain (domain,reportid)
);
-- Use these commands to change the old IPv4 only DMARC table to the new one
/***
alter table rptrecord modify ip int(10) unsigned;
alter table rptrecord add column ip6 binary(16) after ip;
alter table rptrecord add key serial6(serial,ip6);
***/
-- Use these commands to load in the optional IPv6 formatting functions
/***
CREATE FUNCTION inet_6top RETURNS STRING SONAME 'mysql_ip6.so';
CREATE FUNCTION inet_pto6 RETURNS STRING SONAME 'mysql_ip6.so';
***/
CREATE TABLE rptrecord (
serial int(10) unsigned NOT NULL,
ip int(10) unsigned,
ip6 binary(16),
rcount int(10) unsigned NOT NULL,
disposition enum('none','quarantine','reject'),
reason varchar(255),
dkimdomain varchar(255),
dkimresult enum('none','pass','fail','neutral','policy','temperror','permerror'),
spfdomain varchar(255),
spfresult enum('none','neutral','pass','fail','softfail','temperror','permerror'),
KEY serial (serial,ip),
KEY serial6 (serial,ip6)
) ENGINE=MyISAM;
CREATE TABLE failure (
serial int(10) unsigned NOT NULL AUTO_INCREMENT,
org varchar(255) NOT NULL, -- reported-domain
bouncedomain varchar(255), -- MAIL FROM bouncebox@bouncedomain
bouncebox varchar(255),
fromdomain varchar(255), -- From: frombox@fromdomain
frombox varchar(255),
arrival TIMESTAMP,
sourceip int unsigned, -- inet_aton(source-ip)
sourceip6 BINARY(16), -- inet_6top(source-ip)
headers TEXT,
PRIMARY KEY(serial),
KEY(sourceip),
KEY(fromdomain),
KEY(bouncedomain)
) charset=utf8;
#GRANT all on dmarc.* to dmarc identified by 'xxx';
#GRANT all on dmarc.* to dmarc@localhost identified by 'xxx';