debian安装配置postfix Mail

作者:system 发布于:2013-5-12 20:50

Debian用的是最小化安装,postfix相关软件需要下载安装,记录如下:

Debian版本: Debian GNU/Linux 6.0.3 (squeeze)

postfix版本: 2.7.1

一.安装配置postfix <MTA (Mail Transfer Agent)>

  1.使用debian的apt-get下载安装

  # apt-get install postfix

  2.配置 postfix 主配置文件

  # vim /etc/postfix/main.cf

      配置文件如下:

myhostname = cpdns.test           

myorigin = /etc/mailname                 

inet_interfaces = all                                    

mydestination = $myhostna, localhost.$mydomain, localhost

mynetworks = 127.0.0.0/8, 192.168.10.0/24, hash:/etc/postfix/access

relay_domains = $mydestination        

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases      

# 其他的设定值保留默认

  3.用 postmap转换 access 的数据库

  # postmap hash:/etc/postfix/acces

  4.设定别名数据库指令,用 postalias转换成aliases.db

  # postalias hash:/etc/aliases

  5.检查一下配置是否有错

  # postfix check

  6.启动postfix start,默认安装后已启动,可以用postfix reload重读入配置,也可以如下

  # service postfix restart

    或

  # /etc/init.d/postfix restart

  7.查看postfix是否运行,查看是否25端口是否在监听

  # netstat -tlunp | grep ':25'

 

二.使用Cyrus-SASL V2做SMTP的认证

  1.使用debian的apt-get下载安装SASL2,sasl2-bin需要安装,libsasl2-modules默认已安装,

  # apt-get install sasl2-bin

  2.查看saslauthd有那些密码管理功能

  # saslauthd -v

  3.修改saslauthd的配置文件,

    设置start=yes , MECHANISMS="pam"(设置验证机制,已可以设置其他,如:shadow,通过上面的命令查看)

  # vi /etc/default/saslauthd

  4.在鸟哥的教程里,还要配置cyrus,但在debian上没找到,相关的资料也没提到,就跳过。

  5.更改postfix的main.cf,设定SMTP身份验证

  # vi /etc/postfix/main.cf

# 在配置的最后面增加这些与 SASL 有关的设定: smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes 

# 然后找到跟 relay 有关的设定项目,增加一段允许 SMTP 认证的字样: 

smtpd_recipient_restrictions =

     permit_mynetworks,

     permit_sasl_authenticated,  <==重点在这里!注意顺序!

     reject_unknown_sender_domain,

     reject_unknown_recipient_domain,

     reject_unauth_destination,

     check_policy_service unix:/var/spool/postfix/postgrey/socket

  上面配置说明:

  smtpd_sasl_auth_enable

  就是设定是否要启动 sasl 认证

  smtpd_sasl_security_options

  禁止匿名者登入使用 SMTP 的 Relay 功能

  broken_sasl_auth_clients

  兼容早期的MUA

  smtpd_recipient_restrictions

  重要:放在第二行,第一行局域网不需认证,除此之外则需SASL认证,可以去掉第一行,那所有的SMTP都需要认证。

  6.重启saslauthd 和 postfix

  # service saslauthd restart

  # service postfix restart

  7.则试是否认证

  # telnet localhost 25

  如下:

  220 cpdns.test ESMTP Postfix (Debian/GNU)

  ehlo localhost          应答

  250-cpdns.test

  250-PIPELINING

  250-SIZE 10240000

  250-VRFY

  250-ETRN

  250-STARTTLS

  250-AUTH CRAM-MD5 LOGIN DIGEST-MD5 PLAIN NTLM

  250-AUTH=CRAM-MD5 LOGIN DIGEST-MD5 PLAIN NTLM               这两和表示启用认证

  250-ENHANCEDSTATUSCODES

  250-8BITMIME

  250 DSN

  quit     退出 

关于认证还有一些进阶,如DB,下次再学习

 

三.dovecot 设定 (MRA)POP3,POPS,IMAP

  1.apt-get下载安装dovecot,在debian上是dovecot-common

  # apt-get install dovecot-common

  2.配置dovecot

  # vi /etc/dovecot/dovecot.conf

     配置:protocols = pop3 imap

    在鸟哥的教程里,还有配置 /etc/dovecot/conf.d/10-ssl.conf,设置ssl=no,但在这版的debian上没找到有conf.d的目录,

    只接把 protocols = pop3s imaps 去掉后,就没有SSL了

  3.重启dovecot

  # service dovecot restart

  4.查看端口是否已启用,110 143

  # netstat -tlnp | grep dovecot

 

四.使用加密传输POP3s/IMAPs,SSL

  1.与鸟哥的稍不同,路径不同,只接设置dovecot.conf即可

  # vi /etc/dovecot/dovecot.conf

    #使用SSL传输

    protocols = pop3s imaps

    #设置邮件路径

    mail_location = mbox:~/mail:INBOX=/var/mail/%u

  关于SSL 凭证,debian在/etc/pam.d目录下,安装dovecot已生成一个预设的凭证:/etc/pam.d/dovecot

  如果要自定议凭证,可以参考这里

  3.重启dovecot并查看端口状态 993 995

  # service dovecot restart

  # netstat -tlnp | grep dovecot


四.SMTP 加密传输, SSL/TLS

  通过APT-GET安装的本版postfix,已默认配置TLS,可通过telnet查看

  #telnet 127.0.0.1 25

220 debian.a.cn ESMTP Postfix (Debian/GNU)

ehlo local             <应答 

250-debian.a.cn

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-STARTTLS

250-AUTH CRAM-MD5 LOGIN DIGEST-MD5 PLAIN NTLM

250-AUTH=CRAM-MD5 LOGIN DIGEST-MD5 PLAIN NTLM

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

STARTTLS           <查看TLS

220 2.0.0 Ready to start TLS         <出现这个就表示已启用TLS

  可以通过邮件客户端设置SSL连接STMP试一下发信。

 

  #vi /etc/postfix/main.cf

#强制要求发送HELO/EHLO指令

smtpd_helo_required = yes

#smtpd_helo_restrictions可设定多个参数,下面参数低于2.3可用,如果是2.3及以上则不同,用处是:拒绝没有dns的a记录或mx记录的HELO主机名,

#http://www.postfix.org/postconf.5.html#smtpd_helo_restrictions

smtpd_helo_restrictions = reject_unknown_hostname


 

 

以下下次学习

外部要连接postfix的SMTP和POP/IMAP,需要在防火墙开放相应端口

上面的服务应设为开机启动和进程守护

 

参考: http://vbird.dic.ksu.edu.tw/linux_server/0380mail_3.php

 

标签: postfix mail debian linux SMTP SASL dovecot SSL POP3 IMAP

Powered by emlog