Postfix 加入SPF过滤功能(postfix 黑名单, SPF 白名单

一、SPF简介
让别人验证自己,域名添加txt记录,向支持SPF功能的邮件服务器提供验证信息。也可以验证别人,配置邮件服务器支持 SPF,对每封进入的邮件进行SPF验证。

二、安装SPF模块(Perl)
有两个兼容的策略模块给postfix使用,一个是用Python编写,另一种是用Perl编写的。Perl包满足最基本的要求,Python包配置复杂一点。
# wget https://launchpad.net/postfix-po ... f-perl-2.010.tar.gz
# perl -MCPAN -e 'install version'
# perl -MCPAN -e 'NetAddr::IP'
# perl -MCPAN -e 'Mail::SPF'
# perl -MCPAN -e 'Sys::Hostname::Long'
# tar zxvf postfix-policyd-spf-perl-2.010.tar.gz
# cd postfix-policyd-spf-perl-2.010
# cp postfix-policyd-spf-perl /usr/libexec/postfix/policyd-spf-perl

三、配置Postfix支持SPF检查
# vi /etc/postfix/master.cf
添加以下内容:
## spf check
policy-spf unix -       n       n       -       -       spawn
  user=nobody argv=/usr/bin/perl /usr/libexec/postfix/policyd-spf-perl

# vi /etc/postfix/main.cf
添加以下内容:
smtpd_recipient_restrictions =
        ......,
        check_policy_service unix:private/policy-spf

重新载入postfix服务
# service postfix reload

备注:
可以设置检查policy最长执行时间(单位秒),参数如下:
policy_time_limit = 3600

四、增加SPF记录:
给自己的域名添加TXT记录,含义:
*@dspam.org.cn账户只能在116.254.202.94的IP发送邮件,否则SPF验证不通过。
# dig -t txt dspam.org.cn
dspam.org.cn.           600     IN      TXT     "v=spf1 ip4:116.254.202.94 ~all"


配置成功后,Postfix的SPF检查日志如下:
maillog.1:May 10 10:23:50 212 postfix/policy-spf[29983]: Policy action=PREPEND Received-SPF: pass
 

 

第二种方式:
一、安装SPF模块(python)
# wget https://launchpad.net/pypolicyd- ... icyd-spf-1.1.tar.gz
# tar zxvf pypolicyd-spf-1.1.tar.gz
# cd pypolicyd-spf-1.1
# python setup.py build
# python setup.py install

二、配置Postfix支持SPF检查
# vi /etc/postfix/master.cf
添加以下内容:
## spf check
policy-spf unix -       n       n       -       -       spawn
    user=nobody argv=/usr/bin/python /usr/bin/policyd-spf

# vi /etc/postfix/main.cf
添加以下内容:
smtpd_recipient_restrictions =
        ......,
        check_policy_service unix:private/policy-spf

重新载入postfix服务
# service postfix reload

<think>好的,用户现在问的是如何配置Postfix来发送邮件。之前他们问过如何在不配置个人邮箱的情况下使用SMTP,我推荐了第三方服务和本地测试服务器。现在用户可能已经决定使用自己的服务器,需要具体的Postfix配置步骤。 首先,我需要确认用户的使用场景。他们可能是在搭建自己的邮件服务器,用于应用发送邮件,比如网站的通知邮件。也可能是个人想学习邮件服务器的配置。由于Postfix是一个常见的MTA(邮件传输代理),配置起来有一定复杂性,需要分步骤讲解。 用户可能的需求包括:正确安装Postfix,配置基本的发送功能,确保邮件能被外部接收,避免进入垃圾箱,以及可能的DNS设置。他们可能对SPF、DKIM这些术语不太熟悉,所以需要简要说明这些的重要性。 接下来要整理配置步骤。首先安装Postfix,不同系统命令不同,需要区分Ubuntu和CentOS。然后主配置文件的修改,比如设置主机名、网络接口、邮箱大小限制等。DNS设置是关键,特别是MX记录、A记录和PTR反向解析,否则邮件可能被拒收。SPF和DKIM的记录也要指导用户添加,提高邮件的可信度。 然后测试部分,安装mailutils或mailx,发送测试邮件,检查日志。常见问题如端口25被封,可能需要联系ISP或改用端口587。安全配置方面,比如SASL认证和SSL证书,可能用户需要进一步的安全保障,但如果是内部使用,可能暂时不需要,但应该提到。 另外,用户可能遇到的问题包括配置错误导致邮件无法发送,或者邮件被标记为垃圾邮件。需要提醒检查日志,逐步排查。还要注意云服务商可能限制25端口,需要用户确认或更换端口。 最后,确保回答结构清晰,步骤明确,代码块正确使用格式。可能需要警告用户自行搭建邮件服务器的维护成本,比如维护信誉度、反垃圾邮件措施等,可能推荐结合第三方服务,但用户的问题明确是配置Postfix,所以重点还是在配置本身。</think>以下是配置Postfix邮件服务器的详细步骤: $$sudo\ apt-get\ install\ postfix\ mailutils \quad \text{(Ubuntu)}$$ $$sudo\ yum\ install\ postfix\ mailx \quad \text{(CentOS)}$$ --- ### **1. 基础配置** 修改主配置文件 */etc/postfix/main.cf*: ```properties # 设置邮件域名 myhostname = mail.yourdomain.com mydomain = yourdomain.com # 允许发送的网段(根据实际情况调整) mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24 # 限制邮件大小(单位:字节) message_size_limit = 104857600 # 启用IPv4监听 inet_protocols = ipv4 ``` --- ### **2. DNS配置** | 记录类型 | 值 | 作用 | |----------|------------------------|----------------------| | MX | mail.yourdomain.com | 邮件服务器指向 | | A | mail.yourdomain.com → [服务器IP] | 解析邮件服务器地址 | | PTR | [服务器IP] → mail.yourdomain.com | 反向解析(需联系ISP) | --- ### **3. 防垃圾邮件配置** ```properties # 添加SPF策略检查 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination # 启用DKIM签名(需配合OpenDKIM) milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891 ``` --- ### **4. 测试与验证** ```bash # 发送测试邮件 echo "Test content" | mail -s "Test Subject" recipient@example.com # 查看发送日志 tail -f /var/log/mail.log # Ubuntu tail -f /var/log/maillog # CentOS ``` --- ### **常见问题处理** 1. **端口25被封** $$telnet\ yourdomain.com\ 25$$ 若不通,需联系ISP解封或改用端口587(需配置SASL认证) 2. **邮件进入垃圾箱** - 添加SPF记录: ```v=spf1 ip4:[你的服务器IP] ~all``` - 配置DKIM签名(推荐使用OpenDKIM) - 配置DMARC策略 --- ### **安全强化建议** ```bash # 启用SASL认证(用于外部发信) sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth' # 配置SSL证书 sudo postconf -e 'smtpd_use_tls=yes' sudo postconf -e 'smtpd_tls_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem' sudo postconf -e 'smtpd_tls_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pem' ``` > **注意**:自建邮件服务器需维护IP信誉度,建议云服务器选择固定IP并提前在[Spamhaus](https://www.spamhaus.org/)等平台检查IP黑名单状态。商业场景建议结合Amazon SES/SendGrid等专业服务使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值