Remove old files, fix tagging
This commit is contained in:
		data
| @@ -1,26 +0,0 @@ | |||||||
| FROM ubuntu:xenial |  | ||||||
| MAINTAINER Andre Peters <andre.peters@debinux.de> |  | ||||||
|  |  | ||||||
| ENV DEBIAN_FRONTEND noninteractive |  | ||||||
| ENV LC_ALL C |  | ||||||
|  |  | ||||||
| RUN dpkg-divert --local --rename --add /sbin/initctl \ |  | ||||||
|     && ln -sf /bin/true /sbin/initctl \ |  | ||||||
|     && dpkg-divert --local --rename --add /usr/bin/ischroot \ |  | ||||||
|     && ln -sf /bin/true /usr/bin/ischroot |  | ||||||
|  |  | ||||||
| RUN echo 'deb http://repo.powerdns.com/ubuntu xenial-rec-40 main' > /etc/apt/sources.list.d/pdns.list |  | ||||||
|  |  | ||||||
| RUN echo 'Package: pdns-*\n\ |  | ||||||
| Pin: origin repo.powerdns.com\n\ |  | ||||||
| Pin-Priority: 600\n' > /etc/apt/preferences.d/pdns |  | ||||||
|  |  | ||||||
| RUN apt-key adv --fetch-keys http://repo.powerdns.com/FD380FBB-pub.asc \ |  | ||||||
| 	&& apt-get update \ |  | ||||||
| 	&& apt-get install -y --force-yes pdns-recursor |  | ||||||
|  |  | ||||||
| CMD ["/usr/sbin/pdns_recursor"] |  | ||||||
|  |  | ||||||
| EXPOSE 53/udp |  | ||||||
|  |  | ||||||
| RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| addNTA("mailcow-network", "nta for local") |  | ||||||
| @@ -1,41 +0,0 @@ | |||||||
| allow-from=127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 |  | ||||||
| config-dir=/etc/powerdns |  | ||||||
| daemon=no |  | ||||||
| disable-syslog=yes |  | ||||||
| dnssec=process |  | ||||||
| dnssec-log-bogus=yes |  | ||||||
| dont-query=10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fc00::/7, fe80::/10, 0.0.0.0/8, 192.0.0.0/24, 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24, 240.0.0.0/4, ::/96, ::ffff:0:0/96, 100::/64, 2001:db8::/32 |  | ||||||
| export-etc-hosts=off |  | ||||||
| # forward-zones= |  | ||||||
| forward-zones-recurse=mailcow-network.=127.0.0.11 |  | ||||||
| local-address=0.0.0.0 |  | ||||||
| local-port=53 |  | ||||||
| loglevel=6 |  | ||||||
| # lowercase-outgoing=no |  | ||||||
| lua-config-file=/etc/powerdns/pdns_custom.lua |  | ||||||
| # max-cache-entries=1000000 |  | ||||||
| # max-cache-ttl=86400 |  | ||||||
| # max-mthreads=2048 |  | ||||||
| # max-negative-ttl=3600 |  | ||||||
| # max-packetcache-entries=500000 |  | ||||||
| # max-qperq=50 |  | ||||||
| # max-tcp-clients=128 |  | ||||||
| # max-tcp-per-client=0 |  | ||||||
| # max-total-msec=7000 |  | ||||||
| # minimum-ttl-override=0 |  | ||||||
| # network-timeout=1500 |  | ||||||
| # packetcache-servfail-ttl=60 |  | ||||||
| # packetcache-ttl=3600 |  | ||||||
| quiet=yes |  | ||||||
| # security-poll-suffix=secpoll.powerdns.com. |  | ||||||
| # serve-rfc1918=yes |  | ||||||
| # server-down-max-fails=64 |  | ||||||
| # server-down-throttle-time=60 |  | ||||||
| setgid=pdns |  | ||||||
| setuid=pdns |  | ||||||
| # spoof-nearmiss-max=20 |  | ||||||
| # stack-size=200000 |  | ||||||
| # threads=2 |  | ||||||
| # trace=off |  | ||||||
| version-string=PowerDNS Recursor |  | ||||||
| webserver=no |  | ||||||
| @@ -25,54 +25,34 @@ auth_domain_map = rspamd_config:add_map({ | |||||||
|  |  | ||||||
| rspamd_config.ADD_DELIMITER_TAG = { | rspamd_config.ADD_DELIMITER_TAG = { | ||||||
|   callback = function(task) |   callback = function(task) | ||||||
|     tag = nil |     local tag = nil | ||||||
|     local tag_env = nil |  | ||||||
|     local tag_to = nil |  | ||||||
|  |  | ||||||
|     local util = require("rspamd_util") |     local util = require("rspamd_util") | ||||||
|     local rspamd_logger = require "rspamd_logger" |     local rspamd_logger = require "rspamd_logger" | ||||||
|  |     local user_tagged = task:get_recipients(2)[1]['user'] | ||||||
|     local user_env_tagged = task:get_recipients(1)[1]['user'] |  | ||||||
|     local user_to_tagged = task:get_recipients(2)[1]['user'] |  | ||||||
|  |  | ||||||
|     local domain = task:get_recipients(1)[1]['domain'] |     local domain = task:get_recipients(1)[1]['domain'] | ||||||
|  |     local user, tag = user_tagged:match("([^+]+)+(.*)") | ||||||
|     local user_env, tag_env = user_env_tagged:match("([^+]+)+(.*)") |  | ||||||
|     local user_to, tag_to = user_to_tagged:match("([^+]+)+(.*)") |  | ||||||
|  |  | ||||||
|     local authdomain = auth_domain_map:get_key(domain) |     local authdomain = auth_domain_map:get_key(domain) | ||||||
|  |  | ||||||
|     if tag_env then |  | ||||||
|       tag = tag_env |  | ||||||
|       user = user_env |  | ||||||
|     elseif tag_to then |  | ||||||
|       tag = tag_to |  | ||||||
|       user = user_env |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     if tag and authdomain then |     if tag and authdomain then | ||||||
|       rspamd_logger.infox("Domain %s is part of mailcow, start reading tag settings", domain) |       rspamd_logger.infox("domain: %1, tag: %2", domain, tag) | ||||||
|       local user_untagged = user .. '@' .. domain |       local user_untagged = user .. '@' .. domain | ||||||
|       rspamd_logger.infox("Querying tag settings for user %1", user_untagged) |       rspamd_logger.infox("querying tag settings for user %1", user_untagged) | ||||||
|       if modify_subject_map:get_key(user_untagged) then |       if modify_subject_map:get_key(user_untagged) then | ||||||
|         rspamd_logger.infox("User wants subject modified for tagged mail") |         rspamd_logger.infox("found user in map for subject rewrite") | ||||||
|         local sbj = task:get_header('Subject') |         local sbj = task:get_header('Subject') | ||||||
|         if tag then |  | ||||||
|           rspamd_logger.infox("Found tag %1, will modify subject header", tag) |  | ||||||
|         new_sbj = '=?UTF-8?B?' .. tostring(util.encode_base64('[' .. tag .. '] ' .. sbj)) .. '?=' |         new_sbj = '=?UTF-8?B?' .. tostring(util.encode_base64('[' .. tag .. '] ' .. sbj)) .. '?=' | ||||||
|         task:set_rmilter_reply({ |         task:set_rmilter_reply({ | ||||||
|           remove_headers = {['Subject'] = 1}, |           remove_headers = {['Subject'] = 1}, | ||||||
|           add_headers = {['Subject'] = new_sbj} |           add_headers = {['Subject'] = new_sbj} | ||||||
|         }) |         }) | ||||||
|         end |  | ||||||
|       else |       else | ||||||
|         rspamd_logger.infox("Add X-Moo-Tag header") |         rspamd_logger.infox("add X-Moo-Tag header") | ||||||
|         task:set_rmilter_reply({ |         task:set_rmilter_reply({ | ||||||
|           add_headers = {['X-Moo-Tag'] = 'YES'} |           add_headers = {['X-Moo-Tag'] = 'YES'} | ||||||
|         }) |         }) | ||||||
|       end |       end | ||||||
|     else |     else | ||||||
|       rspamd_logger.infox("Skip delimiter handling for untagged message or authenticated user") |       rspamd_logger.infox("skip delimiter handling for untagged message or authenticated user") | ||||||
|     end |     end | ||||||
|     return false |     return false | ||||||
|   end |   end | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user