diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-01-01 21:06:00 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-01-01 21:06:00 +0000 |
commit | 129160ec854dca4c3fedb5bcfbcb56930371da0f (patch) | |
tree | 53bf797418ac5e9b99c41ca0382c87b82421e5de /mail-filter/postgrey | |
parent | 441d1370330332b7d78f238d2f5e13f7aed5e4e0 (diff) |
gentoo new year resync : 01.01.2021
Diffstat (limited to 'mail-filter/postgrey')
-rw-r--r-- | mail-filter/postgrey/Manifest | 5 | ||||
-rw-r--r-- | mail-filter/postgrey/files/targrey-0.31-postgrey-1.34.patch | 202 | ||||
-rw-r--r-- | mail-filter/postgrey/metadata.xml | 3 | ||||
-rw-r--r-- | mail-filter/postgrey/postgrey-1.36-r1.ebuild | 72 |
4 files changed, 1 insertions, 281 deletions
diff --git a/mail-filter/postgrey/Manifest b/mail-filter/postgrey/Manifest index 33d73acfba45..f931a6059c8c 100644 --- a/mail-filter/postgrey/Manifest +++ b/mail-filter/postgrey/Manifest @@ -1,11 +1,8 @@ AUX postgrey-1.34-r3.rc.new 2373 BLAKE2B 6f7a1197735b710fbb23fd49acb1fc9a9b743e7c2e27c93441d2670de58448003d9c2d47305c01c8e54df8e958532a064cb413f010b744c058ceeb8016f973a2 SHA512 a9f9c841249b303da2bd4c976e2cd2fe85264929e298745e08f684f86659da548d9348c15a5723697835ee44c584405582605792f545eb9b1c097f82fc15720e AUX postgrey.conf.new 1914 BLAKE2B 826949afe4a8a7bbfe9dec493fd619b91235945420bbd5e4c70709aff23a7393277c88edac1b1f149ea34b4fdfce4649715a97b38052d3e2c360716439bf6489 SHA512 07c7bf82fa24486a62701238bc3684e7ed445bceeb54c842eba39b0d83732b704954247978784142ecf20329352dbe698ba2d9a76576d5082315a314278a6740 AUX postgrey.service 345 BLAKE2B 4ca6ab7a5649ea49fe69128b64111113301ab891f3de9f2d433e40eca14d178dcb992f70802cc73d003e7903fc3edcb53242c656b9208fdd0aaef2562577d522 SHA512 f5f92cae916a8000da460c0c5bd2194b49518cf2bdadf7f6c4512a29dbee73b4a75d530ed0d2049ac46103235246b5b3b88e55216c9ed1a012ed306a4bf7d58c -AUX targrey-0.31-postgrey-1.34.patch 8555 BLAKE2B 5957c9ea2fa62554bb45ecad71712f5a5c7c655a132434fe6520335a07f2ad5475cd45fe592c8769f44df03f951ee6bfffa1aad2c331aa393ea20b64fe783d96 SHA512 af4433f08120ae6ab07179f1adb88ca8c86c142b68727657555cef04d84105912e8e67c969c860ea000930196c6046b7b2bef2647f04b202ceecaf163d8515d5 -DIST postgrey-1.36.tar.gz 38797 BLAKE2B b8e4dedb28ababc92cdd1d128652a468caeb55eb611ca019148a2e538d3cc0d397cd14889942904b05c9471bb13ed9fa6250e399d47df22241895c109a68315d SHA512 9b2502b873658c1ef8a86bff091d61b8dc8d66f7395bc0a869f9e6ec60b691a317c084ae326f49ce8dd926f0fa2620a58f3ad76c25e1b1c9606557d2802d1395 DIST postgrey-1.37.tar.gz 41815 BLAKE2B dd8a1f62f56a614c25863afde089f1882a1567e3a53a24b1d12b6f23994388caf99059f05775853065143f4f953a6fd964625d5c865993e0e679dd545b848c11 SHA512 369968212ea60539efc0d4a7ae84f7c3ce13f5622e6ee070a0089423ef81ca8f7541ebd20289291d0e6a3aec2ca30dbc9c0d9c0a6f0a686adfadb5d0dd7830ca DIST postgrey-1.37_p20190625.tar.gz 124667 BLAKE2B ca2caba51a72198e42d6d4d9c5c7590b62c1bd1589d05bfb4096fb4d95ff62ff96976beac8c1b35136a4a6830af936244485ff7dcdcd46d8558a4bef0bbb123a SHA512 f3caf3c7663bd8784701c7e1ad45d1c577edf6fac14591a6983fda25e7f8a875f2501780a8f97ce72e6a324878404e9ac2a003a07ae07ad4debae61fe734b8d4 -EBUILD postgrey-1.36-r1.ebuild 1748 BLAKE2B 17fa8ad75a46cac8658b70666b16427405282799ce1d2528677fefb573c0e8638d68075b7dc6401ebd5722639404a970f1644e0fe7bb1afb6a81bf6af00a6ba6 SHA512 0ea4a73933a11d84894bc8a286193a3b1d71f2ecf5ac2513e9c3cf18364479485519839d09fed3a15152a1208c9dd908695c853a2a17a003b295f9842bbf99bb EBUILD postgrey-1.37.ebuild 1656 BLAKE2B ab895b8c30d8817c7bb8d990a8828540ade53107ce56c569cfa1fe5a4c76140c3b57d38cafc8320885ecaa1cb4c32dc09788dc32ff029a5620dea31ef4d74408 SHA512 3fc92f83203ffb093268aae830bbdb2aed01da388fed571ebe530b8d43261aaf0c6ab2ed4ec37384a5912e8d4f42f9ad982e5e296274c68de14ca75098813a3b EBUILD postgrey-1.37_p20190625-r1.ebuild 1723 BLAKE2B 1fee548caf43321267bc90f709464b559778b865c6eef028b0429a8df88b96bb7dae63bb38f2c42a0a2268226e600fc26bee1c3f507dd1118d7d50f4987af6c4 SHA512 cf9b26c4c940b2c2937e24573bc187e2016d0f08ee90147254a43f0a95b31f29c3cd473de03d53420b5e87c4fd0fb21dda92b218bdbe2ca2947f48d9625b2467 -MISC metadata.xml 541 BLAKE2B 8f30317d462b08e6fffae9e71ebe09c5eaf7d2595df60211201a0c63c409693617bef6be47862d323a50ca5037b28aee97811ff846324fd470d7745b812d632c SHA512 3211c4a2afbd3bb58fc4a179776014e1bf85571ad8e522b5f07171305f934c353b531d2adf12588c076d0122ccaf079a23d71cd3b3c854f4c2d01ee80e7f5de1 +MISC metadata.xml 470 BLAKE2B 28f461f109f6883bd605e86a4e13436960db61cdc30467545a0a3826fa5f5282af1d73806288845474c87aaed616a83f9e77a5d264cde6dd07b2c8d9cdde0bba SHA512 9dec84c40a4b8705b458687fbd1d8300531bc77975f96be5e94ad251c8df2b2d1f20a08d4082f228353ee98cbf4f691b778d5bfdb9faa89ea1b3dd68b71fd331 diff --git a/mail-filter/postgrey/files/targrey-0.31-postgrey-1.34.patch b/mail-filter/postgrey/files/targrey-0.31-postgrey-1.34.patch deleted file mode 100644 index a17b6457d39a..000000000000 --- a/mail-filter/postgrey/files/targrey-0.31-postgrey-1.34.patch +++ /dev/null @@ -1,202 +0,0 @@ ---- postgrey.orig 2011-05-04 22:54:15.000000000 +0200 -+++ postgrey 2011-10-17 10:10:21.000000000 +0200 -@@ -309,6 +309,22 @@ - $self->mylog(1, "cleaning clients database finished. before: $nr_keys_before, after: $nr_keys_after"); - } - -+ if($self->{postgrey}{targrey}) { -+ # cleanup tarpit blacklist database -+ my $tarpit_db = $self->{postgrey}{db_tarpit}; -+ ($nr_keys_before, $nr_keys_after) = (0, 0); -+ while (my ($key, $tarpit_last_seen) = each %$tarpit_db) { -+ $nr_keys_before++; -+ if($now - $tarpit_last_seen > $retry_window) { -+ delete $tarpit_db->{$key}; -+ } -+ else { -+ $nr_keys_after++; -+ } -+ } -+ $self->mylog(1, "cleaning tarpit blacklist database finished. before: $nr_keys_before, after: $nr_keys_after"); -+ } -+ - $self->{postgrey}{last_maint_keys}=$now; - } - } -@@ -383,7 +399,7 @@ - # whitelist if count is enough - if(defined $cawl_count and $cawl_count >= $self->{postgrey}{awl_clients}) - { -- if(($now >= $cawl_last+3600) or ($cawl_last > $now)) { -+ if(($now >= $cawl_last + $self->{postgrey}{awl_delay}) or ($cawl_last > $now)) { - $cawl_count++; # for statistics - $cawl_db->{$cawl_key}=$cawl_count.','.$now; - } -@@ -392,6 +408,28 @@ - } - } - -+ # check tarpit passed if targrey mode -+ if ($self->{postgrey}{targrey} && $attr->{protocol_state} eq 'DATA') { # passed tarpit -+ # remove tarpit blacklist -+ my $tarpit_db = $self->{postgrey}{db_tarpit}; -+ my $tarpit_key = $attr->{client_address}; -+ delete $tarpit_db->{$tarpit_key}; -+ -+ # auto whitelist clients by tarpit -+ if ($self->{postgrey}{awl_clients}) { -+ # enough time has passed (record only one attempt per hour) -+ if (! defined $cawl_last or $now >= $cawl_last + $self->{postgrey}{awl_delay}) { -+ # ok, increase count -+ $cawl_count++; -+ $cawl_db->{$cawl_key}=$cawl_count.','.$now; -+ $self->mylog(1, "tarpit whitelisted: $attr->{client_name}"."[".$attr->{client_address}."]") -+ if $cawl_count==$self->{postgrey}{awl_clients}; -+ } -+ } -+ -+ return 'DUNNO'; -+ } -+ - # lookup - my $sender = $self->do_sender_substitutions($attr->{sender}); - my ($client_net, $client_host) = -@@ -402,10 +440,11 @@ - } - my $val = $db->{$key}; - my $first; -+ my $retry_count=0; - my $last_was_successful=0; - if(defined $val) { - my $last; -- ($first, $last) = split(/,/,$val); -+ ($first, $last, $retry_count) = split(/,/,$val); - # find out if the last time was unsuccessful, so that we can add a header - # to say how much had to be waited - if($last - $first >= $self->{postgrey}{delay}) { -@@ -426,16 +465,19 @@ - $first = $now; - } - -+ my $diff = $self->{postgrey}{delay} - ($now - $first); -+ -+ # enough waited? -> increase retry_count -+ $retry_count++ if($diff <= 0); -+ - # update (put as last element stripped host-part if it was stripped) - if(defined $client_host) { -- $db->{$key}="$first,$now,$client_host"; -+ $db->{$key}="$first,$now,$retry_count,$client_host"; - } - else { -- $db->{$key}="$first,$now"; -+ $db->{$key}="$first,$now,$retry_count"; - } - -- my $diff = $self->{postgrey}{delay} - ($now - $first); -- - # auto whitelist clients - # algorithm: - # - on successful entry in the greylist db of a triplet: -@@ -443,23 +485,41 @@ - # - client whitelisted already? -> update last-seen timestamp - if($self->{postgrey}{awl_clients}) { - # greylisting succeeded -- if($diff <= 0 and !$last_was_successful) { -+ if($retry_count >= $self->{postgrey}{retry_count} and !$last_was_successful) { - # enough time has passed (record only one attempt per hour) -- if(! defined $cawl_last or $now >= $cawl_last + 3600) { -+ if(! defined $cawl_last or $now >= $cawl_last + $self->{postgrey}{awl_delay}) { - # ok, increase count - $cawl_count++; - $cawl_db->{$cawl_key}=$cawl_count.','.$now; - my $client = $attr->{client_name} ? - $attr->{client_name}.'['.$attr->{client_address}.']' : - $attr->{client_address}; -- $self->mylog(1, "whitelisted: $client") -+ $self->mylog(1, "whitelisted: $attr->{client_name}"."[".$attr->{client_address}."]") - if $cawl_count==$self->{postgrey}{awl_clients}; - } - } - } - -- # not enough waited? -> greylist -- if ($diff > 0 ) { -+ # not enough retry? -> greylist -+ if ($retry_count < $self->{postgrey}{retry_count}) { -+ if($self->{postgrey}{tarpit} && ! $self->{postgrey}{targrey}) { -+ # do tarpit and greylist if tarpit option only -+ # don't add message after greylist_action -+ return "SLEEP $self->{postgrey}{tarpit}, $self->{postgrey}{greylist_action}"; -+ } -+ if($self->{postgrey}{targrey}) { -+ # do tarpit if targrey option -+ # add tarpit blacklist -+ my $tarpit_db = $self->{postgrey}{db_tarpit}; -+ my $tarpit_key = $attr->{client_address}; -+ my $tarpit_last = $tarpit_db->{$tarpit_key}; -+ $tarpit_last = 0 unless (defined $tarpit_last); -+ $tarpit_db->{$tarpit_key} = "$now" if ($now >= $tarpit_last+300); # update if 5min ago -+ -+ # return sleep if not tarpit blacklisted -+ return "SLEEP $self->{postgrey}{tarpit}" if ($tarpit_last == 0); -+ # greylist if tarpit blacklisted -+ } - my $msg = $self->{postgrey}{greylist_text}; - # Workaround for an Exchange bug related to Greylisting: - # use DSN 4.2.0 instead of the default 4.7.1. This works -@@ -517,6 +577,7 @@ - 'syslogfacility|syslog-facility|facility=s', - 'retry-window=s', 'greylist-action=s', 'greylist-text=s', 'privacy', - 'hostname=s', 'exim', 'listen-queue-size=i', 'x-greylist-header=s', -+ 'tarpit:s', 'targrey', 'retry-count=i', 'auto-whitelist-delay=i', - ) or exit(1); - # note: lookup-by-subnet can be given for compatibility, but it is default - # so do not do nothing with it... -@@ -606,7 +667,9 @@ - awl_clients => defined $opt{'auto-whitelist-clients'} ? - ($opt{'auto-whitelist-clients'} ne '' ? - $opt{'auto-whitelist-clients'} : 5) : 5, -+ awl_delay => $opt{'auto-whitelist-delay'} || 3600, - retry_window => $retry_window, -+ retry_count => $opt{'retry-count'} || 1, - greylist_action => $opt{'greylist-action'} || 'DEFER_IF_PERMIT', - greylist_text => $opt{'greylist-text'} || 'Greylisted, see http://postgrey.schweikert.ch/help/%r.html', - whitelist_clients_files => $opt{'whitelist-clients'} || -@@ -618,6 +681,10 @@ - hostname => defined $opt{hostname} ? $opt{hostname} : hostname, - exim => defined $opt{'exim'}, - x_greylist_header => $opt{'x-greylist-header'} || 'X-Greylist: delayed %t seconds by postgrey-%v at %h; %d', -+ tarpit => defined $opt{'tarpit'} ? -+ ($opt{'tarpit'} ne '' ? -+ $opt{'tarpit'} : 65) : undef, -+ targrey => defined $opt{'targrey'}, - }, - }, 'postgrey'; - -@@ -633,6 +700,11 @@ - require Digest::SHA; - } - -+ # --targrey needs tarpit sec -+ if(defined $opt{'targrey'} && ! defined $opt{'tarpit'}) { -+ $server->{postgrey}{tarpit} = 125; -+ } -+ - $0 = join(' ', @{$server->{server}{commandline}}); - $server->run; - -@@ -711,6 +783,13 @@ - -Env => $self->{postgrey}{db_env} - ) or die "ERROR: can't create database $self->{server}{dbdir}/postgrey_clients.db: $!\n"; - } -+ if($self->{postgrey}{targrey}) { # use targrey -+ tie(%{$self->{postgrey}{db_tarpit}}, 'BerkeleyDB::Btree', -+ -Filename => 'tarpit_clients.db', -+ -Flags => DB_CREATE, -+ -Env => $self->{postgrey}{db_env} -+ ) or die "ERROR: can't create database $self->{server}{dbdir}/tarpit_clients.db: $!\n"; -+ } - } - - sub mux_input() diff --git a/mail-filter/postgrey/metadata.xml b/mail-filter/postgrey/metadata.xml index 53aeb0809926..3532fe99da7f 100644 --- a/mail-filter/postgrey/metadata.xml +++ b/mail-filter/postgrey/metadata.xml @@ -8,9 +8,6 @@ <longdescription> Postgrey is a Postfix policy server implementing greylisting developed by David Schweikert at the ISG.EE. </longdescription> - <use> - <flag name="targrey">Enables the targrey patch</flag> - </use> <upstream> <remote-id type="github">schweikert/postgrey</remote-id> </upstream> diff --git a/mail-filter/postgrey/postgrey-1.36-r1.ebuild b/mail-filter/postgrey/postgrey-1.36-r1.ebuild deleted file mode 100644 index b86f673b9997..000000000000 --- a/mail-filter/postgrey/postgrey-1.36-r1.ebuild +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit eutils systemd user - -DESCRIPTION="Postgrey is a Postfix policy server implementing greylisting" -HOMEPAGE="http://postgrey.schweikert.ch/" -SRC_URI="http://postgrey.schweikert.ch/pub/${P}.tar.gz -http://postgrey.schweikert.ch/pub/old/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 hppa ~ppc ppc64 x86" -IUSE="targrey" - -DEPEND="" -RDEPEND=">=dev-lang/perl-5.6.0 - dev-perl/Net-Server - dev-perl/IO-Multiplex - dev-perl/BerkeleyDB - dev-perl/Net-DNS - dev-perl/NetAddr-IP - dev-perl/Net-RBLClient - dev-perl/Parse-Syslog - virtual/perl-Digest-SHA - >=sys-libs/db-4.1" - -pkg_setup() { - enewgroup ${PN} - enewuser ${PN} -1 -1 /dev/null ${PN} -} - -src_prepare() { - if use targrey ; then - epatch "${FILESDIR}"/targrey-0.31-postgrey-1.34.patch - fi - # bug 479400 - sed -i 's@#!/usr/bin/perl -T -w@#!/usr/bin/perl -w@' postgrey || die "sed failed" -} - -src_install() { - # postgrey data/DB in /var - diropts -m0770 -o ${PN} -g ${PN} - dodir /var/spool/postfix/${PN} - keepdir /var/spool/postfix/${PN} - fowners postgrey:postgrey /var/spool/postfix/${PN} - fperms 0770 /var/spool/postfix/${PN} - - # postgrey binary - dosbin ${PN} - dosbin contrib/postgreyreport - - # policy-test script - dosbin policy-test - - # postgrey data in /etc/postfix - insinto /etc/postfix - insopts -o root -g ${PN} -m 0640 - doins postgrey_whitelist_clients postgrey_whitelist_recipients - - # documentation - dodoc Changes README README.exim - - # init.d + conf.d files - insopts -o root -g root -m 755 - newinitd "${FILESDIR}"/${PN}-1.34-r3.rc.new ${PN} - insopts -o root -g root -m 640 - newconfd "${FILESDIR}"/${PN}.conf.new ${PN} - systemd_dounit "${FILESDIR}"/postgrey.service -} |