Greylisting mit sqlgrey unter Ubuntu 18
Greylisting ist eine feine Sache und kann ohne viel Aufwand im Postfix implementiert werden. Dadurch wird eine groß zahl von Spam Mails schon abgeblockt.
Unter Ubuntu / Debian ist sqlgrey einfach zu installieren.
apt-get install sqlgrey
Dann noch die Config an die mysql Daten anpassen.
nano /etc/sqlgrey/sqlgrey.conf
db_type = mysql
db_name = sqlgrey
db_host = localhost
db_port = default
db_user = sqlgrey
db_pass = dein_supergekeimes_passwort
Keine Ahnung warum aber unter Ubuntu 18 kann sqlgray die MySQL Tabellen nicht anlegen. Deswegen hier mal die Tabellen die anzulegen sind.
DROP TABLE IF EXISTS `config`;
CREATE TABLE `config` (
`parameter` varchar(255) NOT NULL,
`value` varchar(255) DEFAULT NULL,
PRIMARY KEY (`parameter`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `connect`;
CREATE TABLE `connect` (
`sender_name` varchar(64) NOT NULL,
`sender_domain` varchar(255) NOT NULL,
`src` varchar(39) NOT NULL,
`rcpt` varchar(255) NOT NULL,
`first_seen` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY `connect_idx` (`src`,`sender_domain`,`sender_name`),
KEY `connect_fseen` (`first_seen`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `domain_awl`;
CREATE TABLE `domain_awl` (
`sender_domain` varchar(255) NOT NULL,
`src` varchar(39) NOT NULL,
`first_seen` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`last_seen` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`src`,`sender_domain`),
KEY `domain_awl_lseen` (`last_seen`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `from_awl`;
CREATE TABLE `from_awl` (
`sender_name` varchar(64) NOT NULL,
`sender_domain` varchar(255) NOT NULL,
`src` varchar(39) NOT NULL,
`first_seen` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`last_seen` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`src`,`sender_domain`,`sender_name`),
KEY `from_awl_lseen` (`last_seen`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `optin_domain`;
CREATE TABLE `optin_domain` (
`domain` varchar(255) NOT NULL,
PRIMARY KEY (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `optin_email`;
CREATE TABLE `optin_email` (
`email` varchar(255) NOT NULL,
PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `optout_domain`;
CREATE TABLE `optout_domain` (
`domain` varchar(255) NOT NULL,
PRIMARY KEY (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `optout_email`;
CREATE TABLE `optout_email` (
`email` varchar(255) NOT NULL,
PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Anschließenden den sqlgray deamon neu starten
service sqlgrey restart
service sqlgrey status
Jetzt muss noch beim Postfix folgende Zeile hinzugefügt werden
nano /etc/postfix/main.cf
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
# Sqlgrey
check_policy_service inet:[127.0.0.1]:2501,
permit
Und den Postfix neu starten
Schreibe einen Kommentar