DOKK / manpages / debian 12 / mtpolicyd / Mail::MtPolicyd::Cookbook::Installation.3pm.en
Mail::MtPolicyd::Cookbook::Installation(3pm) User Contributed Perl Documentation Mail::MtPolicyd::Cookbook::Installation(3pm)

Mail::MtPolicyd::Cookbook::Installation - How to install mtpolicyd

version 2.05

INSTALL MEMCACHED

memcached is required for mtpolicyd. A package of memcached should come with your os distribution. On Debian based distributions it can be installed by:

  apt-get install memcached

Check /etc/default/memcached if the service is enabled:

  ENABLE_MEMCACHED=yes

Start the memcached service

  /etc/init.d/memcached start

INSTALL MTPOLICYD

FROM PACKAGE

Packages for mtpolicyd are included in the Debian package repositories.

FROM SOURCE/CPAN

Since mtpolicyd source is shipped as a perl/CPAN package it could be installed from CPAN. To install the Mail::Mtpolicyd package with all dependencies required make sure you have installed cpanminus:

  apt-get install cpanminus

Then install the Mail::Mtpolicyd distribution with:

  cpanm Mail::MtPolicyd

It is recommended to create an system user and group for the daemon.

You can get a default configuration file etc/mtpolicyd.conf from the tarball.

The init scripts for the debian packages are located at debian/mtpolicyd.init and for redhat systems at rpm/mtpolicyd.init within the tarball.

TEST MTPOLICYD

Now the daemon should be up:

  $ ps -u mtpolicyd f
    PID TTY      STAT   TIME COMMAND
   2566 ?        Ss     0:12 /usr/bin/mtpolicyd (master)
   2731 ?        S      0:28  \_ /usr/bin/mtpolicyd (idle)
  19464 ?        S      0:26  \_ /usr/bin/mtpolicyd (idle)
  28858 ?        S      0:26  \_ /usr/bin/mtpolicyd (idle)
  32372 ?        S      0:24  \_ /usr/bin/mtpolicyd (idle)

And it should be listening on localhost:12345:

  $ netstat -aenpt | grep :12345
  tcp        0      0 127.0.0.1:12345         0.0.0.0:*               LISTEN      0          17333578    -

Now test it with a simple query:

  $ policyd-client -h localhost:12345

Paste the following request to the command:

  reverse_client_name=smtp.google.com
  sender=bob@gmail.com
  client_address=192.168.1.1
  recipient=ich@markusbenning.de
  helo_name=smtp.google.com

Terminate the request by a blank line. Just press enter.

The mtpolicyd should respond with a action like:

  PREPEND X-MtScore: NO score

ADD A MTPOLICYD QUERY TO YOUR POSTFIX SMTPD

Open you postfix main.cf configuration file in a text editor. It should be located below /etc/postfix.

Add a 'check_policyd_service inet:127.0.0.1:12345' check to your smtpd_recipient_restrictions. It should look like this one:

  smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service inet:127.0.0.1:12345

Now restart postfix. Now follow your maillog as new mails arrive. There should be a mtpolicyd line for every query.

CONGRATULATIONS

Your mtpolicyd is now configured and running with the default configuration.

You may now want to continue with reading Mail::MtPolicyd::Cookbook::DefaultConfig which explains what the default configuration does.

Markus Benning <ich@markusbenning.de>

This software is Copyright (c) 2014 by Markus Benning <ich@markusbenning.de>.

This is free software, licensed under:

  The GNU General Public License, Version 2, June 1991
2022-10-15 perl v5.34.0