On 11/5/2013 5:41 AM, mark hardwick wrote:
> Hi All
> I'm setting up a new email server and I'm fairly green so I just wanted
> someone to confirm I'm not doing anything stupid.
>
> First I've followed the instructions from Falco here:
> http://www.howtoforge.com/virtual-users-and-domains-with-postfix-courier-mysql-and-squirrelmail-debian-wheezy
>
> this worked fine. it's all tested and gives the correct responses. even
> sends email :)
>
> I altered it slightly to forward inbound mail to offered+[code]@domain.com to
> a script. (Thanks to Noel for helping me to get that working.)
>
> Next I wanted to add support for DKIM.
>
> For this I followed some short instructions for postfix + amavisd-new here :
> http://blog.purrdeta.com/2012/06/guide-to-dkim-signing-with-amavisd-new-and-postfix/
>
> It required a bit of hacking of the amasid config and master.cf. My problem
> is I'm not 100% sure it's compatible with falcon's setup.
> I wondered if someone could scan this and tell me if and where it's broken?
> I don't want to accidentally create a relay or anything else nasty.
>
> The modifications to Amavisd seemed fine so I just went with what was in the
> post above, however I'm not 100% certain they're in the correct files. I
> changed the following;
>
I don't see any obviously dangerous errors, but I don't have time to
comb through a complex config looking for all possible errors.
Try it and test it. If it doesn't behave as expected, feel free to
come back with specific questions.
-- Noel Jones
> 20-debian_defaults:
> $inet_socket_port = [10024,10026];
>
> 25-amavisd-helpers ;
>
> ##
> ## Functionality required for amavis helpers like
> ## amavis-release.
> ##
>
> # Enable required AM.PDP protocol socket.
> #
> # this is incompatible with the old helpers, but one can
> # have multiple inet (not unix) sockets to overcome this
> # issue. Refer to the amavisd-new documentation for more
> # information
>
> $unix_socketname = "/var/lib/amavis/amavisd.sock";
>
> $interface_policy{'SOCK'} = 'AM.PDP-SOCK';
> $policy_bank{'AM.PDP-SOCK'} = {
> protocol => 'AM.PDP',
> auth_required_release => 0, # don't require secret-id for release
> };
>
> #NEW policy for user with DKIM signing - not sure if this is the correct
> location?
>
> $interface_policy{'10026'} = 'ORIGINATING';
>
> $policy_bank{'ORIGINATING'} = { # mail supposedly originating from our users
> originating => 1, # declare that mail was submitted by our smtp client
> allow_disclaimers => 1, # enables disclaimer insertion if available
> # notify administrator of locally originating malware
> virus_admin_maps => ["virusalert\@$mydomain"],
> spam_admin_maps => ["virusalert\@$mydomain"],
> warnbadhsender => 1,
> # forward to a smtpd service providing DKIM signing service
> forward_method => 'smtp:[127.0.0.1]:10027',
> # force MTA conversion to 7-bit (e.g. before DKIM signing)
> smtpd_discard_ehlo_keywords => ['8BITMIME'],
> bypass_banned_checks_maps => [1], # allow sending any file names and types
> terminate_dsn_on_notify_success => 0, # don’t remove NOTIFY=SUCCESS option
> };
>
> 1; # ensure a defined return
>
>
> Then in the master.cf I have (the main change is at the bottom).
>
> Master.cf:
>
> #
> # Postfix master process configuration file. For details on the format
> # of the file, see the master(5) manual page (command: "man 5 master").
> #
> # Do not forget to execute "postfix reload" after editing this file.
> #
> # ==========================================================================
> # service type private unpriv chroot wakeup maxproc command + args
> # (yes) (yes) (yes) (never) (100)
> # ==========================================================================
> smtp inet n - - - - smtpd
> #smtp inet n - - - 1 postscreen
> #smtpd pass - - - - - smtpd
> #dnsblog unix - - - - 0 dnsblog
> #tlsproxy unix - - - - 0 tlsproxy
> submission inet n - n - - smtpd
> # -o syslog_name=postfix/submission
> -o smtpd_tls_security_level=encrypt
> -o content_filter=amavis:[127.0.0.1]:10026
> # -o smtpd_sasl_auth_enable=yes
> # -o smtpd_client_restrictions=permit_sasl_authenticated,reject
> # -o milter_macro_daemon_name=ORIGINATING
> #smtps inet n - - - - smtpd
> # -o syslog_name=postfix/smtps
> # -o smtpd_tls_wrappermode=yes
> # -o smtpd_sasl_auth_enable=yes
> # -o smtpd_client_restrictions=permit_sasl_authenticated,reject
> # -o milter_macro_daemon_name=ORIGINATING
> #628 inet n - - - - qmqpd
> #pickup fifo n - - 60 1 pickup
> pickup fifo n - - 60 1 pickup
> -o smtpd_tls_security_level=encrypt
> -o content_filter=smtp-amavis:[127.0.0.1]:10026
> cleanup unix n - - - 0 cleanup
> qmgr fifo n - n 300 1 qmgr
> #qmgr fifo n - n 300 1 oqmgr
> tlsmgr unix - - - 1000? 1 tlsmgr
> rewrite unix - - - - - trivial-rewrite
> bounce unix - - - - 0 bounce
> defer unix - - - - 0 bounce
> trace unix - - - - 0 bounce
> verify unix - - - - 1 verify
> flush unix n - - 1000? 0 flush
> proxymap unix - - n - - proxymap
> proxywrite unix - - n - 1 proxymap
> smtp unix - - - - - smtp
> relay unix - - - - - smtp
> # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
> showq unix n - - - - showq
> error unix - - - - - error
> retry unix - - - - - error
> discard unix - - - - - discard
> local unix - n n - - local
> virtual unix - n n - - virtual
> lmtp unix - - - - - lmtp
> anvil unix - - - - 1 anvil
> scache unix - - - - 1 scache
> #
> # ====================================================================
> # Interfaces to non-Postfix software. Be sure to examine the manual
> # pages of the non-Postfix software to find out what options it wants.
> #
> # Many of the following services use the Postfix pipe(8) delivery
> # agent. See the pipe(8) man page for information about ${recipient}
> # and other message envelope options.
> # ====================================================================
> #
> # maildrop. See the Postfix MAILDROP_README file for details.
> # Also specify in main.cf: maildrop_destination_recipient_limit=1
> #
> maildrop unix - n n - - pipe
> flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
> #
> # ====================================================================
> # See the Postfix UUCP_README file for configuration details.
> #
> uucp unix - n n - - pipe
> flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail
> ($recipient)
> #
> # Other external delivery methods.
> #
> ifmail unix - n n - - pipe
> flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
> bsmtp unix - n n - - pipe
> flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender
> $recipient
> scalemail-backend unix - n n - 2 pipe
> flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
> ${nexthop} ${user} ${extension}
> mailman unix - n n - - pipe
> flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
> ${nexthop} ${user}
>
> parser unix - n n - - pipe
> user=virtual argv=/bin/bash /usr/local/bin/ssh_parser
>
> amavis unix - - - - 2 smtp
> -o smtp_data_done_timeout=1200
> -o smtp_send_xforward_command=yes
>
> 127.0.0.1:10025 inet n - - - - smtpd
> -o content_filter=
> -o local_recipient_maps=
> -o relay_recipient_maps=
> -o smtpd_restriction_classes=
> -o smtpd_client_restrictions=
> -o smtpd_helo_restrictions=
> -o smtpd_sender_restrictions=
> -o smtpd_recipient_restrictions=permit_mynetworks,reject
> -o mynetworks=127.0.0.0/8
> -o strict_rfc821_envelopes=yes
> -o
> receive_override_options=no_unknown_recipient_checks,no_header_body_checks
>
>
> 127.0.0.1:10027 inet n - n - - smtpd
> -o content_filter=
> -o smtpd_delay_reject=no
> -o smtpd_client_restrictions=permit_mynetworks,reject
> -o smtpd_helo_restrictions=
> -o smtpd_sender_restrictions=
> -o smtpd_recipient_restrictions=permit_mynetworks,reject
> -o smtpd_data_restrictions=reject_unauth_pipelining
> -o smtpd_end_of_data_restrictions=
> -o smtpd_restriction_classes=
> -o mynetworks=127.0.0.0/8
> -o smtpd_error_sleep_time=0
> -o smtpd_soft_error_limit=1001
> -o smtpd_hard_error_limit=1000
> -o smtpd_client_connection_count_limit=0
> -o smtpd_client_connection_rate_limit=0
> -o
> receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
> -o local_header_rewrite_clients=
>
> Any thought greatly received.
> Please ask if I need to send more files.
>
> Thanks
> Mark.
>