AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 433828
Accepted
Jakub Lucký
Jakub Lucký
Asked: 2018-03-28 04:40:06 +0800 CST2018-03-28 04:40:06 +0800 CST 2018-03-28 04:40:06 +0800 CST

为什么 postfix-spamassassin-dovecot 是这样设置的?

  • 772

我最近在我的邮件服务器中添加了 spamassassin,因为黑名单不够有效。

澄清一下:我使用 Postfix 作为 SMTP + Dovecot 作为 LDA,使用 postgrey 作为灰名单,使用 postfwd 作为速率限制。

要添加 Spamassassin,我使用指南:https ://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassassin即使它有效,我不明白为什么会这样。困扰我的是master.cf:

smtp       inet  n       -       y       -       -       smtpd
-o content_filter=spamassassin

dovecot unix    -       n       n       -       -      pipe
  flags=DRhu user=virtual:virtual argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -m ${extension}

spamassassin unix -     n       n       -       -       pipe
user=debian-spamd argv=/usr/bin/spamc -f -e  
/usr/sbin/sendmail -oi -f ${sender} ${recipient}

我不明白为什么突然涉及到 sendmail。有没有办法更正确地设置它?

如果需要,这也是我postconf -n的。

append_at_myorigin = yes
biff = no
broken_sasl_auth_clients = yes
default_destination_concurrency_limit = 1
delay_warning_time = 8h
disable_vrfy_command = yes
dovecot_destination_concurrency_limit = 1
dovecot_destination_recipient_limit = 1
enable_original_recipient = yes
local_destination_concurrency_limit = 1
mailbox_size_limit = 100000000
maximal_queue_lifetime = 6d
message_size_limit = 52428800
myhostname = REDACTED
myorigin = /etc/mailname
smtp_helo_name = REDACTED
smtp_use_tls = yes
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated
smtpd_delay_reject = no
smtpd_hard_error_limit = 10
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10040 permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_rbl_client zen.spamhaus.org=127.0.0.[2..11], reject_rbl_client bl.spamcop.net, reject_rbl_client cbl.abuseat.org, check_policy_service inet:127.0.0.1:10023
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination, reject_unauth_pipelining
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = REDACTED
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain
smtpd_soft_error_limit = 5
smtpd_tls_cert_file = REDACTED
smtpd_tls_dh1024_param_file = /etc/ssl/dhparams.pem
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA
smtpd_tls_key_file = REDACTED
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_transport = dovecot
dovecot postfix
  • 2 2 个回答
  • 409 Views

2 个回答

  • Voted
  1. Diego Roccia
    2018-03-28T04:59:47+08:002018-03-28T04:59:47+08:00

    sendmail 不涉及。那只是一个后缀可执行文件,出于历史原因和兼容性,它被这样调用。

    查看手册页:

    SENDMAIL(1)                                       General Commands Manual 
    
    NAME
           sendmail - Postfix to Sendmail compatibility interface
    
    SYNOPSIS
           sendmail [option ...] [recipient ...]
    [...]
    

    编辑:(在您的评论后添加)

    您可以使用 dovecot LDA 更改它,但它当然只适用于本地交付。您可以检查垃圾邮件以及外发电子邮件,但它们不适用于 dovecot。完全免责声明:我没有检查您的所有配置 :)

    • 0
  2. Best Answer
    telcoM
    2018-03-28T05:03:04+08:002018-03-28T05:03:04+08:00

    当一个商标非常成功时,它可以成为它最知名的事物的通用名称。/usr/sbin/sendmailLinux 和 Unix 系统中的命令也发生了非常相似的情况。

    安装 Postfix 后,/usr/sbin/sendmail它实际上并不是 Sendmail——它只是 Postfix 的一个组件,提供与 Sendmail 相同的接口(即相同的选项和管道约定)。

    Postfix 被设计为 Sendmail 的替代品。事实证明,许多程序将通过调用/usr/sbin/sendmail众所周知的选项和管道来与邮件子系统交互。所以 Postfix 也必须支持它。

    使用 Spamassassin 时,必须将邮件传递给spamc垃圾邮件检测。由于它将向邮件添加至少几个标头,表明已执行垃圾邮件检查及其结果(并且,如果邮件是垃圾邮件,则在邮件内容开头的通知),spamc然后必须传递该邮件返回 Postfix 进行最终交付。

    请注意,Postfix 认为“管道”是一种传输方法,或者换句话说,如果消息被发送到spamc,Postfix 认为它的工作在那个时候已经完成。因此,需要将经过垃圾邮件检查的消息重新注入到 Postfix 的处理中——这就是sendmail命令的作用。

    关键字的content_filter作用比你想象的要少——它只是告诉 Postfix 将传入的消息传递smtpd给特定的传输方法。它不会自动期望返回任何内容:如果 content_filter 传输方法吞下没有输出的消息,则 Postfix 的工作就完成了。如果在消息通过过滤器后还有任何内容,过滤器的工作就是让它重新回到处理状态。

    至少还有另一种方法可以实现相同的目的,但最终也会sendmail在垃圾邮件检查后使用命令重新注入邮件。

    如果您确定此 Postfix 只会处理传入的邮件,您可以配置spamc为将邮件直接传递给 Dovecot。

    • 0

相关问题

  • postfix 和 dovecot 使用 /root/Maildir 而不是 /var/spool/mail

  • Postfix 配置检查收件人

  • 后缀根电子邮件仅作为密件抄送转发到外部地址

  • 如何设置 Postfix 来满足这些要求?

  • 如果 Gmail 托管我们的电子邮件,我是否需要在服务器上安装 Dovecot?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve