Amavis: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „Amavis ist ein '''Content-Filter''' für Mailserver (z. B. Postfix). Amavis kann in Verbindung mit einem Antiviren-Programm (z. B. ClamAV) eingehende eMails autom…“ |
Keine Bearbeitungszusammenfassung |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 23: | Zeile 23: | ||
==Amavis konfigurieren== | |||
Nun muss man die [[#50-user]]-Datei im Ordner <code>/etc/amavis/conf.d/</code> anpassen. Hierfür kann auch das Beispiel aus diesem Wiki verwendet werden. | |||
Wenn man SPAM-Emails im Betreff mit "***** SPAM *****" kennzeichnen möchte, muss man den '''$sa_spam_subject_tag''' anpassen, z. B. | |||
$sa_spam_subject_tag = '***** SPAM *****'; | |||
Im nächsten Step wird der Content-Filter scharf geschaltet, indem '''@bypass_virus_checks_maps''' und '''@bypass_spam_checks_maps''' in der Datei [[#15-content_filter_mode]]einkommentiert werden: | |||
< | user@localhost:~# vim /etc/amavis/conf.d/15-content_filter_mode | ||
$ | |||
</ | <pre> | ||
@bypass_virus_checks_maps = ( | |||
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); | |||
@bypass_spam_checks_maps = ( | |||
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); | |||
</pre> | |||
Jetzt muss man '''clamav''' noch der Gruppe '''amavis''' hinzufügen: | |||
adduser clamav amavis | |||
==Postfix anpassen== | |||
So, Amavis ist nun bereit. Jetzt muss Postfix ihn nur noch verwenden. Hierfür muss die '''main.cf''' und die '''master.cf''' erweitert werden. Die '''main.cf''' kann mit folgenden Befehlen angepasst werden: | |||
user@localhost:~# postconf -e content_filter=smtp-amavis:[127.0.0.1]:10024 | |||
user@localhost:~# postconf -e receive_override_options=no_address_mappings | |||
Die [[#master.cf]] in <code>/etc/postfix/master.cf</code> muss manuell mit einem Editor bearbeitet werden. Folgenden Block oben einfügen: | |||
<pre> | |||
smtp-amavis unix - - n - 2 smtp | |||
-o smtp_data_done_timeout=1200 | |||
-o smtp_send_xforward_command=yes | |||
-o disable_dns_lookups=yes | |||
-o max_use=20 | |||
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_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 mynetworks=127.0.0.0/8,46.4.175.32/28,192.168.100.10/24 | |||
-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 | |||
-o local_header_rewrite_clients= | |||
</pre> | |||
Und ganz unten folgenden Block erweitern: | |||
<pre> | |||
dovecot unix - n n - - pipe | |||
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} | |||
</pre> | |||
Anschließend '''Postfix''' neustarten | |||
user@localhost:~# service postfix restart | |||
und Content-Filter testen: | |||
sendmail user@beispiel.de < /usr/share/doc/spamassassin/examples/sample-spam.txt | |||
=Tipps= | |||
==geblockte Extesions zulassen== | |||
Amavis blockt in der hier beschriebenen Standardkonfiguration gefährliche Extensions (Dateierweiterungen) wie z. B. '''.exe, .cmd, .bat''' und noch viele andere. Wenn man diese erlauben möchte muss die Amavis-Konfiguration angepasst werden. | |||
'''Hinweis:''' Bei Ubuntu 10.04 sind die Konfigdateien von Amavis in '''<code>/etc/amavis/conf.d</code>''' in mehrere Dateien gesplittet. Alle individuellen Einstellungen sollten '''immer''' in der '''<code>50-user</code>''' angepasst werden. Einfach folgende Zeile hinzufügen: | |||
$final_banned_destiny = D_PASS; | |||
Die eMails werden nun auch mit gefährlichen Anhängen zugestellt. | |||
==Benachrichtigung bei Virenfund== | |||
Wird in einem Anhang ein Virus entdeckt, wird die eMail verworfen. In der Standardkonfiguration wird aber keine Benachrichtigung an den Empfänger verschickt. Wenn Amavis eine Notification-eMail versenden soll, müssen folgenden Zeilen in der '''<code>50-user</code>''' hinzugefügt werden: | |||
<pre> | |||
# Notification | |||
$virus_admin = "virusadmin\@domain.tld"; | |||
$mailfrom_notify_recip = "notification\@domain.tld"; | |||
$notify_method = 'smtp:[127.0.0.1]:10025'; | |||
$forward_method = 'smtp:[127.0.0.1]:10025'; | |||
$warnvirusrecip = 1; | |||
$warn_offsite = 1; | |||
</pre> | |||
Ab sofort wird bei einem Virusfund eine Benachrichtigung an den Virus-Admin und an den Empfänger der virusbefallenen Nachricht verschickt. | |||
=Anhang= | =Anhang= | ||
Zeile 68: | Zeile 163: | ||
1; # ensure a defined return | 1; # ensure a defined return | ||
</source> | </source> | ||
==15-content_filter_mode== | |||
<source lang="bash"> | |||
use strict; | |||
# You can modify this file to re-enable SPAM checking through spamassassin | |||
# and to re-enable antivirus checking. | |||
# | |||
# Default antivirus checking mode | |||
# Please note, that anti-virus checking is DISABLED by | |||
# default. | |||
# If You wish to enable it, please uncomment the following lines: | |||
@bypass_virus_checks_maps = ( | |||
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); | |||
# | |||
# Default SPAM checking mode | |||
# Please note, that anti-spam checking is DISABLED by | |||
# default. | |||
# If You wish to enable it, please uncomment the following lines: | |||
@bypass_spam_checks_maps = ( | |||
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); | |||
1; # ensure a defined return | |||
</source> | |||
==master.cf== | |||
<source lang="bash"> | |||
# | |||
# 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-amavis unix - - n - 2 smtp | |||
-o smtp_data_done_timeout=1200 | |||
-o smtp_send_xforward_command=yes | |||
-o disable_dns_lookups=yes | |||
-o max_use=20 | |||
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_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 mynetworks=127.0.0.0/8,46.4.175.32/28,192.168.100.10/24 | |||
-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 | |||
-o local_header_rewrite_clients= | |||
#submission inet n - - - - smtpd | |||
# -o smtpd_tls_security_level=encrypt | |||
# -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 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 | |||
cleanup unix n - - - 0 cleanup | |||
qmgr fifo n - n 300 1 qmgr | |||
#qmgr fifo 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 | |||
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops | |||
relay unix - - - - - smtp | |||
-o smtp_fallback_relay= | |||
# -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} | |||
# | |||
# ==================================================================== | |||
# | |||
# Recent Cyrus versions can use the existing "lmtp" master.cf entry. | |||
# | |||
# Specify in cyrus.conf: | |||
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4 | |||
# | |||
# Specify in main.cf one or more of the following: | |||
# mailbox_transport = lmtp:inet:localhost | |||
# virtual_transport = lmtp:inet:localhost | |||
# | |||
# ==================================================================== | |||
# | |||
# Cyrus 2.1.5 (Amos Gouaux) | |||
# Also specify in main.cf: cyrus_destination_recipient_limit=1 | |||
# | |||
#cyrus unix - n n - - pipe | |||
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} | |||
# | |||
# ==================================================================== | |||
# Old example of delivery via Cyrus. | |||
# | |||
#old-cyrus unix - n n - - pipe | |||
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user} | |||
# | |||
# ==================================================================== | |||
# | |||
# 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} | |||
dovecot unix - n n - - pipe | |||
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} | |||
</source> | |||
[[Kategorie: E-Mail]] |
Aktuelle Version vom 16. März 2011, 20:27 Uhr
Amavis ist ein Content-Filter für Mailserver (z. B. Postfix). Amavis kann in Verbindung mit einem Antiviren-Programm (z. B. ClamAV) eingehende eMails automatisch überprüfen und entsprechend markieren. So kann z. B. jede SPAM-Mail mit einem Sternchen(*) im Betreff gekennzeichnet werden oder mit Hilfe von serverbasierten Filterregeln in einen Spam-Ordner verschoben werden.
Installation
Damit die Inhaltüberprüfung funktioniert, müssen folgende Pakete installiert werden:
- amavisd-new
- spamassassin
- clamav-daemon
- lha
- arj
- unrar
- zoo
- nomarch
- cpio
- lzop
- cabextract
Auf einem apt-get-basierenden System (z. B. Ubuntu) kann dies mit folgenden Befehlen erfolgen:
user@localhost:~# apt-get install amavisd-new spamassassin clamav-daemon lha arj unrar zoo nomarch cpio lzop cabextract
Amavis konfigurieren
Nun muss man die #50-user-Datei im Ordner /etc/amavis/conf.d/
anpassen. Hierfür kann auch das Beispiel aus diesem Wiki verwendet werden.
Wenn man SPAM-Emails im Betreff mit "***** SPAM *****" kennzeichnen möchte, muss man den $sa_spam_subject_tag anpassen, z. B.
$sa_spam_subject_tag = '***** SPAM *****';
Im nächsten Step wird der Content-Filter scharf geschaltet, indem @bypass_virus_checks_maps und @bypass_spam_checks_maps in der Datei #15-content_filter_modeeinkommentiert werden:
user@localhost:~# vim /etc/amavis/conf.d/15-content_filter_mode
@bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Jetzt muss man clamav noch der Gruppe amavis hinzufügen:
adduser clamav amavis
Postfix anpassen
So, Amavis ist nun bereit. Jetzt muss Postfix ihn nur noch verwenden. Hierfür muss die main.cf und die master.cf erweitert werden. Die main.cf kann mit folgenden Befehlen angepasst werden:
user@localhost:~# postconf -e content_filter=smtp-amavis:[127.0.0.1]:10024
user@localhost:~# postconf -e receive_override_options=no_address_mappings
Die #master.cf in /etc/postfix/master.cf
muss manuell mit einem Editor bearbeitet werden. Folgenden Block oben einfügen:
smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 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_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 mynetworks=127.0.0.0/8,46.4.175.32/28,192.168.100.10/24 -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 -o local_header_rewrite_clients=
Und ganz unten folgenden Block erweitern:
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Anschließend Postfix neustarten
user@localhost:~# service postfix restart
und Content-Filter testen:
sendmail user@beispiel.de < /usr/share/doc/spamassassin/examples/sample-spam.txt
Tipps
geblockte Extesions zulassen
Amavis blockt in der hier beschriebenen Standardkonfiguration gefährliche Extensions (Dateierweiterungen) wie z. B. .exe, .cmd, .bat und noch viele andere. Wenn man diese erlauben möchte muss die Amavis-Konfiguration angepasst werden.
Hinweis: Bei Ubuntu 10.04 sind die Konfigdateien von Amavis in /etc/amavis/conf.d
in mehrere Dateien gesplittet. Alle individuellen Einstellungen sollten immer in der 50-user
angepasst werden. Einfach folgende Zeile hinzufügen:
$final_banned_destiny = D_PASS;
Die eMails werden nun auch mit gefährlichen Anhängen zugestellt.
Benachrichtigung bei Virenfund
Wird in einem Anhang ein Virus entdeckt, wird die eMail verworfen. In der Standardkonfiguration wird aber keine Benachrichtigung an den Empfänger verschickt. Wenn Amavis eine Notification-eMail versenden soll, müssen folgenden Zeilen in der 50-user
hinzugefügt werden:
# Notification $virus_admin = "virusadmin\@domain.tld"; $mailfrom_notify_recip = "notification\@domain.tld"; $notify_method = 'smtp:[127.0.0.1]:10025'; $forward_method = 'smtp:[127.0.0.1]:10025'; $warnvirusrecip = 1; $warn_offsite = 1;
Ab sofort wird bei einem Virusfund eine Benachrichtigung an den Virus-Admin und an den Empfänger der virusbefallenen Nachricht verschickt.
Anhang
50-user
use strict;
#
# Place your configuration directives here. They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#
$sa_spam_subject_tag = undef;
$spam_quarantine_to = undef;
$sa_tag_level_deflt = undef;
$final_spam_destiny = D_PASS;
@lookup_sql_dsn = (
['DBI:mysql:database=postfix;host=127.0.0.1;port=3306',
'postfix',
'secret']);
$sql_select_policy = 'SELECT domain FROM domain WHERE CONCAT("@",domain) IN (%k)';
#------------ Do not modify anything below this line -------------
1; # ensure a defined return
15-content_filter_mode
use strict;
# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.
#
# Default antivirus checking mode
# Please note, that anti-virus checking is DISABLED by
# default.
# If You wish to enable it, please uncomment the following lines:
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
#
# Default SPAM checking mode
# Please note, that anti-spam checking is DISABLED by
# default.
# If You wish to enable it, please uncomment the following lines:
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1; # ensure a defined return
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-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
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_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 mynetworks=127.0.0.0/8,46.4.175.32/28,192.168.100.10/24
-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
-o local_header_rewrite_clients=
#submission inet n - - - - smtpd
# -o smtpd_tls_security_level=encrypt
# -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 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
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo 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
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - - - - smtp
-o smtp_fallback_relay=
# -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}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - pipe
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# 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}
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}