kolab_smtpdpolicy(1) Kolab SMTP policy

SYNOPSIS

kolab_smtpdpolicy [-v]

DESCRIPTION

kolabdelegated Postfix SMTPD policy server for Kolab. This server implements various policies for Kolab:

1) Only authenticated users can use sender <username>@$domain

2) Some distribution lists are only available to authenticated users

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.

To run this from /etc/postfix/master.cf:

    policy  unix  -       n       n       -       -       spawn
      user=kolab-n argv=/usr/bin/perl /usr/libexec/postfix/kolab_smtpdpolicy

To use this from Postfix SMTPD, use in /etc/postfix/main.cf:

    smtpd_recipient_restrictions =
        ...
        reject_unauth_destination
        check_policy_service unix:private/policy
        ...
    smtpd_sender_restrictions =
        ...
        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 kolab_smtpdpolicy, optionally with the option -v to print debugging output. Example for OpenPKG based installations:

    # su - kolab
    $ /kolab/etc/kolab/kolab_smtpdpolicy -v

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
    [email protected]
    [email protected]
    client_address=1.2.3.4
    client_name=another.domain.tld
    instance=123.456.7
    sasl_method=plain
    sasl_username=you
    sasl_sender=
    size=12345
    [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]

OPTIONS AND ARGUMENTS

-v

COPYRIGHT AND AUTHORS

See AUTHORS file

LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You can view the GNU General Public License, online, at the GNU Project's homepage; see <http://www.gnu.org/licenses/gpl.html>.