From 15b80760b20bf385fe94fcd6561dce54fe4af1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= Date: Sun, 29 Jul 2018 00:35:54 +0200 Subject: [PATCH] [Postfix] Add scripts to learn from spam/ham traps [Dovecot] Learn fuzzy when moving mails from/to junk --- data/Dockerfiles/dovecot/rspamd-pipe-ham | 9 +++++++-- data/Dockerfiles/dovecot/rspamd-pipe-spam | 9 +++++++-- data/Dockerfiles/postfix/Dockerfile | 2 ++ data/Dockerfiles/postfix/postfix.sh | 9 +++++---- data/Dockerfiles/postfix/rspamd-pipe-ham | 9 +++++++++ data/Dockerfiles/postfix/rspamd-pipe-spam | 9 +++++++++ 6 files changed, 39 insertions(+), 8 deletions(-) create mode 100755 data/Dockerfiles/postfix/rspamd-pipe-ham create mode 100755 data/Dockerfiles/postfix/rspamd-pipe-spam diff --git a/data/Dockerfiles/dovecot/rspamd-pipe-ham b/data/Dockerfiles/dovecot/rspamd-pipe-ham index cca3d8a0..9d961be0 100755 --- a/data/Dockerfiles/dovecot/rspamd-pipe-ham +++ b/data/Dockerfiles/dovecot/rspamd-pipe-ham @@ -1,4 +1,9 @@ #!/bin/bash -/usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnham < /dev/stdin -# Always return 0 to satisfy Dovecot... +FILE=/tmp/mail$$ +cat > $FILE +trap "/bin/rm -f $FILE" 0 1 2 3 13 15 + +cat ${FILE} | /usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnham +cat ${FILE} | /usr/bin/curl -H "Flag: 13" -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/fuzzyadd + exit 0 diff --git a/data/Dockerfiles/dovecot/rspamd-pipe-spam b/data/Dockerfiles/dovecot/rspamd-pipe-spam index 3adbc960..3b9e3497 100755 --- a/data/Dockerfiles/dovecot/rspamd-pipe-spam +++ b/data/Dockerfiles/dovecot/rspamd-pipe-spam @@ -1,4 +1,9 @@ #!/bin/bash -/usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnspam < /dev/stdin -# Always return 0 to satisfy Dovecot... +FILE=/tmp/mail$$ +cat > $FILE +trap "/bin/rm -f $FILE" 0 1 2 3 13 15 + +cat ${FILE} | /usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnspam +cat ${FILE} | /usr/bin/curl -H "Flag: 11" -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/fuzzyadd + exit 0 diff --git a/data/Dockerfiles/postfix/Dockerfile b/data/Dockerfiles/postfix/Dockerfile index e284025f..9ad52fb2 100644 --- a/data/Dockerfiles/postfix/Dockerfile +++ b/data/Dockerfiles/postfix/Dockerfile @@ -45,6 +45,8 @@ COPY zeyple.conf /etc/zeyple.conf COPY supervisord.conf /etc/supervisor/supervisord.conf COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf COPY postfix.sh /opt/postfix.sh +COPY rspamd-pipe-ham /usr/local/bin/rspamd-pipe-ham +COPY rspamd-pipe-spam /usr/local/bin/rspamd-pipe-spam COPY whitelist_forwardinghosts.sh /usr/local/bin/whitelist_forwardinghosts.sh EXPOSE 588 diff --git a/data/Dockerfiles/postfix/postfix.sh b/data/Dockerfiles/postfix/postfix.sh index 01c0d619..2d9671c0 100755 --- a/data/Dockerfiles/postfix/postfix.sh +++ b/data/Dockerfiles/postfix/postfix.sh @@ -4,10 +4,11 @@ trap "postfix stop" EXIT [[ ! -d /opt/postfix/conf/sql/ ]] && mkdir -p /opt/postfix/conf/sql/ -cat /dev/null > /etc/aliases; -echo 'null: /dev/null' >> /etc/aliases; -echo '"ham: "|/usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnham"' >> /etc/aliases; -echo 'spam: "|/usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnspam"' >> /etc/aliases; +cat < /etc/aliases +null: /dev/null +ham: "|/usr/local/bin/rspamd-pipe-ham" +spam: "|/usr/local/bin/rspamd-pipe-spam" +EOF newaliases; cat < /opt/postfix/conf/sql/mysql_relay_recipient_maps.cf diff --git a/data/Dockerfiles/postfix/rspamd-pipe-ham b/data/Dockerfiles/postfix/rspamd-pipe-ham new file mode 100755 index 00000000..9d961be0 --- /dev/null +++ b/data/Dockerfiles/postfix/rspamd-pipe-ham @@ -0,0 +1,9 @@ +#!/bin/bash +FILE=/tmp/mail$$ +cat > $FILE +trap "/bin/rm -f $FILE" 0 1 2 3 13 15 + +cat ${FILE} | /usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnham +cat ${FILE} | /usr/bin/curl -H "Flag: 13" -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/fuzzyadd + +exit 0 diff --git a/data/Dockerfiles/postfix/rspamd-pipe-spam b/data/Dockerfiles/postfix/rspamd-pipe-spam new file mode 100755 index 00000000..3b9e3497 --- /dev/null +++ b/data/Dockerfiles/postfix/rspamd-pipe-spam @@ -0,0 +1,9 @@ +#!/bin/bash +FILE=/tmp/mail$$ +cat > $FILE +trap "/bin/rm -f $FILE" 0 1 2 3 13 15 + +cat ${FILE} | /usr/bin/curl -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/learnspam +cat ${FILE} | /usr/bin/curl -H "Flag: 11" -s --data-binary @- --unix-socket /rspamd-sock/rspamd.sock http://rspamd/fuzzyadd + +exit 0