postfix 安装

一.系统配置

1. 使用Centos 6.4 最小安装包进行安装,下载链接:

http://mirrors.163.com/centos/6.4/isos/i386/CentOS-6.4-i386-minimal.iso

2. 修改/etc/hosts及/etc/sysconfig/network文件

3. 修改ifcfg-eth0,DNS必须指向能解析邮箱域名的IP,也可以自身集成DNS服务,然后DNS指向自己,用host -t mx kingmed.com确认MX记录生效。

4. 查看时区:cat /etc/sysconfig/clock,内容为:ZONE="Asia/Shanghai",如不是,手动修改即可,并用/usr/share/zoneinfo/Asia/Shanghai 替换 /etc/localtime

5. 查看时间:date,如果时间不对,也要修改:

date -s 21/07/2013 #修改日期; date -s 12:11:00 #修改时间  clock -w #同步BIOS时间

6. 更新系统:yum update -y, 完成后reboot

 

二.创建邮箱用户

建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。

[root@mail ~]# mkdir /etc/skel/Maildir  在用户模板下建立用户邮箱目录
[root@mail ~]# chmod 700 /etc/skel/Maildir  设置用户邮箱目录属性为700

[root@mail ~]# useradd liuyuhui

[root@mail ~]# useradd jiangtao

[root@mail ~]# echo "123456" | passwd liuyuhui --stdin

[root@mail ~]# echo "123456" | passwd jiangtao --stdin

 

三.Postfix安装及配置

1. yum -y install postfix,提示已经安装并且是最新版

2. 检查默认的MTA

[root@mail ~]# /usr/sbin/alternatives --display mta

......
Current `best' version is /usr/sbin/sendmail.postfix.

最后一行说明默认的MTA已经是postfix,在老版本中可能为sendmail.sendmail,这时就要手工更改下,方法为:

[root@mail ~]# /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

 

3. Postfix配置文件主要是两个master.cf和main.cf,这里我们只需要配置main.cf

vi /etc/postfix/main.cf,在文件main.cf找到以下的几行并按照下面的更改好。

myhostname = mail.kingmed.com

mydomain = kingmed.com

myorigin = $mydomain

inet_interfaces = all

mydestiNation = $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks = 10.6.0.0/16,192.168.0.0/16, 127.0.0.0/8

relay_domains = $mydestination

home_mailbox = Maildir/

在最后面添加SMTP认证:

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_security_options = noanonymous

smtpd_recipient_restrictions =  permit_mynetworks,permit_sasl_authenticated, reject_unauth_destination

smtpd_client_restrictions = permit_sasl_authenticated

message_size_limit = 15728640   规定邮件最大尺寸为15MB

完成后,使用/usr/sbin/postconf -n来检查配置是否正确。

 

4. 配置SELinux

wget linuxmail.info/files/rhel6/postfixdovecotsasl.te 

checkmodule -M -m -o postfixdovecotsasl.mod postfixdovecotsasl.te 

semodule_package -o postfixdovecotsasl.pp -m postfixdovecotsasl.mod 

semodule -i postfixdovecotsasl.pp

 

5. 安装 cyrus-sasl 软件包

[root@mail ~]# yum install cyrus-sasl*

 

(A)使用/etc/shadow文件验证

[root@mail ~]# vi /etc/sysconfig/saslauthd

MECH=shadow

FLAGS=

 

[root@mail ~]# vi /etc/sasl2/smtpd.conf 

pwcheck_method: saslauthd

mech_list: plain login

 

(B)使用/etc/sasldb文件验证

[root@mail ~]# vi /etc/sysconfig/saslauthd

#MECH=pam      #注释掉原文此行

FLAGS=sasldb

 

[root@mail ~]# vi /etc/sasl2/smtpd.conf

pwcheck_method: auxprop

auxprop_plugin: sasldb

mech_list: plain login

 

[root@mail ~]# saslpasswd2 -c liuyuhui -u kingmed.com

[root@mail ~]# saslpasswd2 -c jiangtao -u kingmed.com

按提示输入两次密码(不要与系统密码相同),首次操作会生成/etc/sasldb2文件。

[root@mail ~]# chgrp postfix /etc/sasldb2

[root@mail ~]# chmod 640 /etc/sasldb2

 

启动saslauthd

[root@mail ~]#chkconfig saslauthd on

[root@mail ~]#service saslauthd start

 

[root@mail ~]# /usr/sbin/testsaslauthd -u liuyuhui -p '123456' #用系统密码测试

0: NO "authentication failed"

解决办法:

[root@mail ~]# setsebool -P allow_saslauthd_read_shadow 1

但不知为什么用sasldb密码测试通不过。

 

6. 开放相关端口

[root@mail ~]# vi /etc/sysconfig/iptables

-A INPUT -p tcp -m multiport --dports 25,80,110,143 -j ACCEPT

[root@mail ~]# service iptables restart

 

7. 重启postfix

[root@mail ~]# chkconfig postfix on

[root@mail ~]# service postfix restart

 

8. 检查配置是否正确

postfix 提供了check命令,可以检查当前postfix 的配置是否有问题、文件和目录权限是否正确。 
[root@mail ~]# postfix check

没有消息就是好消息。

9. Telnet登录验证

这里是用虚拟用户即/etc/sasldb帐号,先取得用户名和密码的BASE64编码:

[root@mail ~]# printf  "[email protected]"  |  openssl base64

bGl1eXVodWlAa2luZ21lZC5jb20=

[root@mail ~]# printf  "liuyuhui"  |  openssl base64

bGl1eXVodWk=

[root@mail ~]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mail.kingmed.com ESMTP Postfix

ehlo localhost

250-mail.kingmed.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

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

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

auth login

334 VXNlcm5hbWU6

bGl1eXVodWlAa2luZ21lZC5jb20= #[email protected]的BASE64编码

334 UGFzc3dvcmQ6

bGl1eXVodWk= #密码liuyuhui的BASE64编码

235 2.7.0 Authentication successful

mail from:[email protected]

250 2.1.0 Ok

rcpt to:[email protected]

250 2.1.5 Ok

data

354 End data with . #回车后以点号(.)结束

hello,how are you?

.

250 2.0.0 Ok: queued as 934C83622

quit

221 2.0.0 Bye

Connection closed by foreign host.

来看下jiangtao用户家目录下是否有此邮件(注意queued as 934C83622):

[root@mail ~]# cat /home/jiangtao/Maildir/new/1375283408.Vfd00I3696M538506.mail.kingmed.com 

Return-Path: 

X-Original-To: [email protected]

Delivered-To: [email protected]

Received: from localhost (localhost [127.0.0.1])

        (Authenticated sender: [email protected])

        by mail.kingmed.com (Postfix) with ESMTPA id 934C83622

        for ; Wed, 31 Jul 2013 23:09:20 +0800 (CST)

Message-Id: <[email protected]>

Date: Wed, 31 Jul 2013 23:09:20 +0800 (CST)

From: [email protected]

To: undisclosed-recipients:;

 

hello,how are you?

 

 

POP/ IMAP设置

 

为了让用户能在本地机器下载邮件,必须在服务器安装设置POP或IMAP。Dovecot是适用CentOS Linux邮件系统有名的imap/pop服务器之一,它支持maildir和mbox格式。

 

1. 安装

[root@mail ~]# yum -y install dovecot 

[root@mail ~]# vi /etc/dovecot/dovecot.conf

protocols = imap pop3

listen = *

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no

auth_mechanisms = plain login

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-master.conf

service auth {

  unix_listener auth-userdb {

  }

  unix_listener /var/spool/postfix/private/auth {

    mode = 0666

    user = postfix

    group = postfix

  }

 

[root@mail ~]# vi /etc/dovecot/conf.d/10-ssl.conf

ssl = no

 

[root@mail ~]# vi /etc/dovecot/conf.d/20-pop3.conf

pop3_uidl_format = XuXv

pop3_client_workarounds = outlook-no-nuls oe-ns-eoh

 

配置完后使用dovecot -n查看所有配置。

 

启动dovecot:

[root@mail ~]# chkconfig dovecot on

[root@mail ~]# service dovecot start

 

现在你可以使用邮件客户端代理软件和系统用户及密码来连接我们的Dovecot服务器了。

 

四.邮件别名设置

根据需求发送到邮箱[email protected]邮件转发到[email protected],并且发送到邮箱[email protected]也能收到邮件

添加一个本地用户kf

kf:x:2011:2011::/var/spool/postfix/kf:/bin/bash

本地linux系统中有个用户service,为它设置一个别名,是kf

root@linux:mail#vim /etc/aliases

service: kf

还必须编辑/etc/postfix/main.cf文件

alias_maps = hash:/etc/aliases -->用来指定含有用户别名定义的文件路径,alias_database用来指定别名表数据库文件路径.

alias_database = hash:/etc/aliases -->用来指定别名表数据库文件路径.

注意配置文件中等号前后一定要有空格.

修改完配置文件后要使其生效,使用下面的命令

root@linux:mail# postalias /etc/aliases

root@linux:mail# postfix reload

postfix/postfix-script: refreshing the Postfix mail system

postalias命令用来将文件/etc/aliases生成postfix可以读取的数据库文件 /etc/aliases.db

#编辑配置文件,[email protected]转发至[email protected][email protected](限本地邮箱)
vi /etc/postfix/main.cf
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

vi /etc/aliases
service: kf,kf2

postalias /etc/aliases
postfix reload

五、密送邮件到指定邮箱

在实际应用中,要实现上述虚拟别名域,必须按以下步骤进行。

编辑Postfix主配置文件/etc/postfix/main.cf,进行如下定义:

virtual_alias_domains = dzxx.cn,xxx.com

virtual_alias_maps = hash:/etc/postfix/virtual

这里,参数virtual_alias_domains用来指定虚拟别名域的名称,参数virtual_alias_maps用来指定含有虚拟别名域定义的文件路径。

编辑配置文件/etc/postfix/virtual,进行如下定义:

@dzxx.cn  @gdvcp.net

[email protected]  lbt

[email protected]  st0321001,st0321002

[email protected]  lbt,[email protected]

在修改配置文件main.cf和virtual后,要使更改立即生效,应分别执行/usr/sbin目录下以下的两条命令。

postmap /etc/postfix/virtual

postfix reload

其中,第1条命令用来将文件/etc/postfix/virtual生成Postfix可以读取的数据库文件/etc/postfix /virtual.db;第2条命令用于重新加载Postfix主配置文件main.cf文件。

#本地邮箱和Internet邮箱都可以支持转发
vi /etc/postfix/main.cf
virtual_alias_domains = dzxx.cn,xxx.com
virtual_alias_maps = hash:/etc/postfix/virtual

vi /etc/postfix/virtual
service    kf,[email protected],[email protected]
postmap /etc/postfix/virtual
postfix reload



你可能感兴趣的:(postfix 安装)