邮件服务器配置

邮件服务器配置



1、绑定域名(ffkey.com):

添加A记录指向服务器IP,添加MX记录指向ffkey.com


2、软件安装:

2.1 查看安装

rpm -qa | grep sendmail

rpm -qa | grep dovecot

rpm -qa | grep cyrus


2.2 安装服务

安装邮件服务器

# yum install sendmail sendmail-cf

安装pop3/imap服务

# yum install dovecot

安装用户认证

# yum install cyrus-sasl

# yum install cyrus-sasl-md5

# yum install cyrus-sasl-plain

# yum install cyrus-sasl-lib

防火墙开放25smtp)、143imap)端口

# vi /etc/sysconfig/iptables

添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT

# service iptables restart  **重启防火墙 

关闭selinux,否则会影响saslauthd使用shadow认证;

# vi /etc/selinux/config

SELINUX=enforce改成SELINUX=disabled

**需要重新启动计算机生效;


3、配置sendmail

进入/etc/mail

# cd /etc/mail


3.1 配置access

# vi /etc/mail/access

通常情况下,Sendmail不会为邮件服务Relay信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件,所以,access保持默认配置即可

内容如下

Connect:localhost.localdomain           RELAY

Connect:localhost                       RELAY

Connect:127.0.0.1                       RELAY

当然也可针对某段IP或某个IP做修改,如要禁止某个ip发信,则可添加

    192.168.0.2   deny

保存文件后运行下面命令进行编译

    # makemap hash access.db < access


3.2 配置TLS(支持加密连接LLS)

首先生成sendmail.pem文件

# cd /etc/pki/tls/certs

# make sendmail.pem

Country Name (2 letter code) [GB]:ch   

State or Province Name (full name) [Berkshire]:sh

Locality Name (eg, city) [Newbury]:sh

Organization Name (eg, company) [My Company Ltd]:test.

Organizational Unit Name (eg, section) []:IT

Common Name (eg, your name or your server's hostname)[]:ffkey.com

E-mail Address []:test@ffkey.com


3.3 配置sendmail.mc

# vi /etc/mail/sendmail.mc

添加:

define(`confAUTH_OPTIONS', `A p y')dnl

define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl

define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl

define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl

define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl

如果有,则默认被dnl注释,删除前面的dnl注释即可

取消如下两行的注释(删除开头的dnl)

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

修改SMTP的监听IP 0.0.0.0

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

不要改

dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea’)dnl

这句话!保持注释状态。

上面那句话,网上好多文章都说把Port=submission,改成Port=25,说是强制所有用户在25端口

上做认证。

我不知道sendmail以前的版本是怎么样设置smtp认证的。sendmail8.13不用这么设置,这句话

人家sendmail的意思是:取消注释后,一旦当25号端口被重定向或者被屏蔽,或者在25号端口

打不开的情况下,马上使用587备用端口给用户做认证。

本来人家sendmail就已经打开了25端口(Port=smtp了已经),你却在这里还Port=25,把备用

端口也改成25,这不是让sendmailsm-client

证进程和sendmail的主进程抢端口么….

生成配置(如果语法有错误是不能执行的)

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


4、配置dovecot

# vi /etc/dovecot/dovecot.conf

找到

#protocols = imap pop3 lmtp

将之改为

protocols = imap pop3 lmtp

添加域名

# vi /etc/mail/local-host-names

添加域名如:ffkey.com //每个域名一行


5、配置cyrus sasl

vi /etc/sysconfig/saslauthd

MECH=pam

改为

MECH=shadow


6、停止postfix

# service postfix stop


7、设置开机启动

# chkconfig sendmail on

# chkconfig dovecot on

# chkconfig saslauthd on


8、重启服务

# service sendmail restart

# service dovecot restart

# service saslauthd restart


9、测试SMTP验证  22:58 2016/5/12

# useradd mailtest

# passwd mailtest //添加邮箱帐号

# vi /etc/passwd

修改bash/sbin/nologin,这样添加的用户名就没有了shell,只能收发信而不能登录到服务器运行其他程序

测试

# saslauthd -v

看结果支不支持 pamshadow

# testsaslauthd -u mailtest -p mailtest

如果显示0: OK Success.则表明saslauthd工作正常

查看sendmail队列:mailq

察看邮件系统的状态:mailstats

查看暂时存储邮件:ls -l /var/spool/mail |more

/*****************高级功能,可以不用配置

查看映射用户

# sasldblistusers2

运行 saslpasswd2 添加用户

# saslpasswd2 -u ffkey.com -c mailtest

# sasldblistusers2

# mailtest@ffkey.com: userPassword

删除用户

# saslpasswd2 -d mailtest@ffkey.com

注意:为什么没有设定foxmail中的smtp服务器需要验证,也可以发送E-mail?

要用OUTLOOK来测试,Foxmail似乎可以自动地进行smtp认证。OUTLOOKsmtp服务器验证失败后,有拒绝提示

工 具->;帐户->;邮件->;属性->;服务器->;我的服务器要求身份验证(选上)->;设置->;(选 择)登录方式->;帐户名:(saslpasswd2建立的),密码(saslpasswd2建立的)->;确定.

另外:接收邮件服务器的帐户名与密码应该是系统里的用户名与密码.

saslauthd -v 看结果支不支持 pamshadow

smtp验证测试: testsaslauthd -u test -p 123456

sasldblistusers2 检查已经增加的smtp验证用户

saslpasswd2增加smtp验证用户:saslpasswd2 -u cencn.com -c test 


/******************

10、验证Sendmail SMTP 认证功能

telnet localhost 25 后输入ehlo localhost 验证Sendmail SMTP 认证功能

 [root@localhost CentOS]# telnet localhost 25



295
Sign in to leave a comment.
No Leanote account? Sign up now.
0 comments