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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*