postfix-policyd-spf-perl/trunk/postfix-policyd-spf -> postfix-policyd-spf-perl
* Renamed file. * Moved documentation from executable into separate README and INSTALL files. * Minor and purely cosmetic code clean-up. postfix-policyd-spf-perl/trunk/README * Added, adopting non-installation documentation from postfix-policyd-spf and improving it. postfix-policyd-spf-perl/trunk/INSTALL * Added, adopting installation documentation from postfix-policyd-spf and improving it. postfix-policyd-spf-perl/trunk/CHANGES * Added, describing changes for 1.08 release. postfix-policyd-spf-perl/trunk/debian postfix-policyd-spf-perl/trunk/debian/* * Added.
This commit is contained in:
parent
57be2e1c11
commit
711623e5c9
9 changed files with 211 additions and 88 deletions
15
CHANGES
Normal file
15
CHANGES
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Legend:
|
||||||
|
# --- = A new release
|
||||||
|
# + = Added a feature (in a backwards compatible way)
|
||||||
|
# ! = Changed something significant, or removed a feature
|
||||||
|
# * = Fixed a bug, or made a minor improvement
|
||||||
|
|
||||||
|
--- 1.08 (2006-06-17 20:00)
|
||||||
|
|
||||||
|
* Added Debian package control files.
|
||||||
|
* Moved documentation from executable into separate README and INSTALL
|
||||||
|
files. Improved documentation.
|
||||||
|
* Minor and purely cosmetic code clean-up.
|
||||||
|
|
||||||
|
# $Id$
|
||||||
|
# vim:tw=79 sts=2 sw=2
|
||||||
32
INSTALL
Normal file
32
INSTALL
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
System Requirements
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The following Perl version and packages are required for running
|
||||||
|
postfix-policyd-spf-perl:
|
||||||
|
|
||||||
|
Perl 5.6
|
||||||
|
Mail::SPF::Query
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
1. Copy postfix-policyd-spf-perl to /usr/lib/postfix/policyd-spf-perl
|
||||||
|
|
||||||
|
2. Add the following line to /etc/postfix/master.cf:
|
||||||
|
|
||||||
|
policy unix - n n - - spawn
|
||||||
|
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl
|
||||||
|
|
||||||
|
3. Configure the Postfix policy service in /etc/postfix/main.cf:
|
||||||
|
|
||||||
|
smtpd_recipient_restrictions =
|
||||||
|
...
|
||||||
|
reject_unauth_destination
|
||||||
|
check_policy_service unix:private/policy
|
||||||
|
...
|
||||||
|
|
||||||
|
NOTE: Specify check_policy_service AFTER reject_unauth_destination or
|
||||||
|
else your system can become an open relay.
|
||||||
|
|
||||||
|
# $Id: README 167 2005-01-17 18:26:45Z julian $
|
||||||
|
# vim:tw=79
|
||||||
66
README
Normal file
66
README
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
postfix-policyd-spf-perl 1.08
|
||||||
|
A Postfix SMTPd policy server for SPF checking
|
||||||
|
(C) 2003-2004 Meng Weng Wong <mengwong@pobox.com>
|
||||||
|
Contributions by various members of the SPF project
|
||||||
|
<http://new.openspf.org/Implementations>
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
postfix-policyd-spf-perl is a Postfix SMTPd policy daemon for SPF checking.
|
||||||
|
It is implemented in pure Perl and uses the Mail::SPF::Query CPAN module.
|
||||||
|
|
||||||
|
See INSTALL for installation instructions.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
policyd-spf-perl [-v]
|
||||||
|
|
||||||
|
This documentation assumes you have read Postfix's README_FILES/
|
||||||
|
SMTPD_POLICY_README.
|
||||||
|
|
||||||
|
Logging is sent to syslogd.
|
||||||
|
|
||||||
|
Each time a Postfix SMTP server process is started it connects to the policy
|
||||||
|
service socket, and Postfix runs one instance of this Perl script. By
|
||||||
|
default, a Postfix SMTP server process terminates after 100 seconds of idle
|
||||||
|
time, or after serving 100 clients. Thus, the cost of starting this Perl
|
||||||
|
script is smoothed out over time.
|
||||||
|
|
||||||
|
The default policy_time_limit is 1000 seconds. This may be to short for some
|
||||||
|
SMTP transactions to complete. As recommended in SMTPD_POLICY_README, this
|
||||||
|
should be extended to 3600 seconds. To do so, set "policy_time_limit = 3600"
|
||||||
|
in /etc/postfix/main.cf.
|
||||||
|
|
||||||
|
Testing the policy daemon
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
To test the policy daemon by hand, execute:
|
||||||
|
|
||||||
|
% perl /usr/lib/postfix/policyd-spf-perl
|
||||||
|
|
||||||
|
Each query is a bunch of attributes. Order does not matter, and the daemon
|
||||||
|
uses only a few of all the attributes shown below:
|
||||||
|
|
||||||
|
request=smtpd_access_policy
|
||||||
|
protocol_state=RCPT
|
||||||
|
protocol_name=SMTP
|
||||||
|
helo_name=some.domain.tld
|
||||||
|
queue_id=8045F2AB23
|
||||||
|
sender=foo@bar.tld
|
||||||
|
recipient=bar@foo.tld
|
||||||
|
client_address=1.2.3.4
|
||||||
|
client_name=another.domain.tld
|
||||||
|
[empty line]
|
||||||
|
|
||||||
|
The policy daemon will answer in the same style, with an attribute list
|
||||||
|
followed by a empty line:
|
||||||
|
|
||||||
|
action=dunno
|
||||||
|
[empty line]
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
Thingy is free software. You may use, modify, and distribute it under the
|
||||||
|
GNU GPL (version 2 or later).
|
||||||
|
|
||||||
|
# $Id$
|
||||||
|
# vim:tw=79
|
||||||
5
debian/changelog
vendored
Normal file
5
debian/changelog
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
postfix-policyd-spf-perl (1.08) unstable; urgency=low
|
||||||
|
|
||||||
|
* Initial release as a Debian package.
|
||||||
|
|
||||||
|
-- Julian Mehnle <julian@mehnle.net> Sat, 17 Jun 2006 19:32:31 +0000
|
||||||
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
5
|
||||||
14
debian/control
vendored
Normal file
14
debian/control
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
Source: postfix-policyd-spf-perl
|
||||||
|
Section: mail
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Julian Mehnle <julian@mehnle.net>
|
||||||
|
Build-Depends-Indep: debhelper (>= 5), perl (>= 5.6)
|
||||||
|
Standards-Version: 3.7.2
|
||||||
|
|
||||||
|
Package: postfix-policyd-spf-perl
|
||||||
|
Architecture: all
|
||||||
|
Depends: libmail-spf-query-perl
|
||||||
|
Recommends: postfix
|
||||||
|
Description: pure-Perl Postfix policy daemon for SPF checking
|
||||||
|
postfix-policyd-spf-perl is a Postfix SMTPd policy daemon for SPF checking.
|
||||||
|
It is implemented in pure Perl and uses the Mail::SPF::Query module.
|
||||||
13
debian/copyright
vendored
Normal file
13
debian/copyright
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
This is the Debian package for postfix-policyd-spf-perl, which is available
|
||||||
|
from <http://new.openspf.org/Implementations>.
|
||||||
|
|
||||||
|
(C) 2003-2004 Meng Weng Wong <mengwong@pobox.com>
|
||||||
|
Contributions by various members of the SPF project
|
||||||
|
|
||||||
|
Julian Mehnle is the maintainer of the Debian package.
|
||||||
|
|
||||||
|
This is free software; you can redistribute it and/or modify it under the terms
|
||||||
|
of the GNU General Public License (version 2 or later).
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GPL v2 can be found here:
|
||||||
|
/usr/share/common-licenses/GPL-2
|
||||||
56
debian/rules
vendored
Executable file
56
debian/rules
vendored
Executable file
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
PACKAGE = $(shell dh_listpackages)
|
||||||
|
|
||||||
|
ifndef PERL
|
||||||
|
PERL = /usr/bin/perl
|
||||||
|
endif
|
||||||
|
|
||||||
|
TMP = $(CURDIR)/debian/$(PACKAGE)
|
||||||
|
|
||||||
|
build: build-stamp
|
||||||
|
# Nothing to do.
|
||||||
|
|
||||||
|
clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean build-stamp install-stamp
|
||||||
|
|
||||||
|
install: install-stamp
|
||||||
|
install-stamp:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean -k
|
||||||
|
|
||||||
|
install -D postfix-policyd-spf-perl $(TMP)/usr/lib/postfix/policyd-spf-perl
|
||||||
|
|
||||||
|
touch install-stamp
|
||||||
|
|
||||||
|
# Build architecture-independent files here:
|
||||||
|
binary-indep: build install
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
|
||||||
|
dh_install
|
||||||
|
dh_installdirs
|
||||||
|
dh_installdocs README
|
||||||
|
dh_installchangelogs CHANGES
|
||||||
|
#dh_installexamples examples/*
|
||||||
|
#dh_installman
|
||||||
|
#dh_link
|
||||||
|
|
||||||
|
dh_compress
|
||||||
|
dh_fixperms
|
||||||
|
dh_installdeb
|
||||||
|
dh_perl
|
||||||
|
dh_gencontrol
|
||||||
|
dh_md5sums
|
||||||
|
dh_builddeb
|
||||||
|
|
||||||
|
# Build architecture-dependent files here:
|
||||||
|
binary-arch:
|
||||||
|
# Nothing to do.
|
||||||
|
|
||||||
|
binary: binary-indep binary-arch
|
||||||
|
|
||||||
|
.PHONY: build clean binary-indep binary-arch binary install
|
||||||
|
|
@ -1,23 +1,25 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
# postfix-policyd-spf-perl
|
# postfix-policyd-spf-perl
|
||||||
# http://www.openspf.org/source/software/postfix-policyd-spf/
|
# http://www.openspf.org/source/software/postfix-policyd-spf-perl/
|
||||||
# version 1.08
|
# version 1.08
|
||||||
# $Id: postfix-policyd-spf 147 2006-03-14 21:51:58Z julian $
|
# $Id: postfix-policyd-spf 147 2006-03-14 21:51:58Z julian $
|
||||||
|
|
||||||
|
our $VERSION = '1.08';
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
use Fcntl;
|
use Fcntl;
|
||||||
use Sys::Syslog qw(:DEFAULT setlogsock);
|
use Sys::Syslog qw(:DEFAULT setlogsock);
|
||||||
use strict;
|
use Mail::SPF::Query;
|
||||||
|
|
||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
# configuration
|
# configuration
|
||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
|
|
||||||
# to use SPF, install Mail::SPF::Query from CPAN or from the SPF website at http://www.openspf.org/downloads.html
|
|
||||||
|
|
||||||
my @HANDLERS;
|
my @HANDLERS;
|
||||||
push @HANDLERS, "testing";
|
push @HANDLERS, "testing";
|
||||||
push @HANDLERS, "sender_permitted_from"; use Mail::SPF::Query;
|
push @HANDLERS, "sender_permitted_from";
|
||||||
|
|
||||||
my $VERBOSE = 0;
|
my $VERBOSE = 0;
|
||||||
|
|
||||||
|
|
@ -35,87 +37,6 @@ my $syslog_options = "pid";
|
||||||
my $syslog_priority = "info";
|
my $syslog_priority = "info";
|
||||||
my $syslog_ident = "postfix/policy-spf";
|
my $syslog_ident = "postfix/policy-spf";
|
||||||
|
|
||||||
# ----------------------------------------------------------
|
|
||||||
# minimal documentation
|
|
||||||
# ----------------------------------------------------------
|
|
||||||
|
|
||||||
#
|
|
||||||
# Usage: smtpd-policy.pl [-v]
|
|
||||||
#
|
|
||||||
# Demo delegated Postfix SMTPD policy server.
|
|
||||||
# This server implements SPF.
|
|
||||||
# Another server implements greylisting.
|
|
||||||
# Postfix has a pluggable policy server architecture.
|
|
||||||
# You can call one or both from Postfix.
|
|
||||||
#
|
|
||||||
# The SPF handler uses Mail::SPF::Query to do the heavy lifting.
|
|
||||||
#
|
|
||||||
# This documentation assumes you have read Postfix's README_FILES/SMTPD_POLICY_README
|
|
||||||
#
|
|
||||||
# Logging is sent to syslogd.
|
|
||||||
#
|
|
||||||
# How it works: each time a Postfix SMTP server process is started
|
|
||||||
# it connects to the policy service socket, and Postfix runs one
|
|
||||||
# instance of this PERL script. By default, a Postfix SMTP server
|
|
||||||
# process terminates after 100 seconds of idle time, or after serving
|
|
||||||
# 100 clients. Thus, the cost of starting this PERL script is smoothed
|
|
||||||
# out over time.
|
|
||||||
# The default policy_time_limit is 1000 seconds. This may be to short
|
|
||||||
# for some SMTP transactions to complete. As recommended in
|
|
||||||
# SMTPD_POLICY_README, this should be extended to 3600 seconds. To do
|
|
||||||
# so, set "policy_time_limit = 3600" in /etc/postfix/main.cf.
|
|
||||||
#
|
|
||||||
# To run this from /etc/postfix/master.cf:
|
|
||||||
#
|
|
||||||
# policy unix - n n - - spawn
|
|
||||||
# user=nobody argv=/usr/bin/perl /usr/libexec/postfix/smtpd-policy.pl
|
|
||||||
#
|
|
||||||
# To use this from Postfix SMTPD, use in /etc/postfix/main.cf:
|
|
||||||
#
|
|
||||||
# smtpd_recipient_restrictions =
|
|
||||||
# ...
|
|
||||||
# reject_unauth_destination
|
|
||||||
# check_policy_service unix:private/policy
|
|
||||||
# ...
|
|
||||||
#
|
|
||||||
# NOTE: specify check_policy_service AFTER reject_unauth_destination
|
|
||||||
# or else your system can become an open relay.
|
|
||||||
#
|
|
||||||
# To test this script by hand, execute:
|
|
||||||
#
|
|
||||||
# % perl smtpd-policy.pl
|
|
||||||
#
|
|
||||||
# Each query is a bunch of attributes. Order does not matter, and
|
|
||||||
# the demo script uses only a few of all the attributes shown below:
|
|
||||||
#
|
|
||||||
# request=smtpd_access_policy
|
|
||||||
# protocol_state=RCPT
|
|
||||||
# protocol_name=SMTP
|
|
||||||
# helo_name=some.domain.tld
|
|
||||||
# queue_id=8045F2AB23
|
|
||||||
# sender=foo@bar.tld
|
|
||||||
# recipient=bar@foo.tld
|
|
||||||
# client_address=1.2.3.4
|
|
||||||
# client_name=another.domain.tld
|
|
||||||
# [empty line]
|
|
||||||
#
|
|
||||||
# The policy server script will answer in the same style, with an
|
|
||||||
# attribute list followed by a empty line:
|
|
||||||
#
|
|
||||||
# action=dunno
|
|
||||||
# [empty line]
|
|
||||||
#
|
|
||||||
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: client_address=208.210.125.227
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: client_name=newbabe.mengwong.com
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: helo_name=newbabe.mengwong.com
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: protocol_name=ESMTP
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: protocol_state=RCPT
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: queue_id=
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: recipient=mengwong@dumbo.pobox.com
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: request=smtpd_access_policy
|
|
||||||
# Jul 23 18:43:29 dumbo/dumbo policyd[21171]: Attribute: sender=mengwong@newbabe.mengwong.com
|
|
||||||
|
|
||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
# initialization
|
# initialization
|
||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
Loading…
Add table
Add a link
Reference in a new issue