postfix 邮件服务器认证(以ubuntu10.04 64位为例)


1. 安装postfix+sasl+smtp

1. 安装postfixSASLsmtp服务

apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail

2). 配置服务器

  选择Ineternet Site(通过SMTP发送和接收邮件),然后确定

输入邮件后缀名,比如如果你想设置你的邮箱地址为[email protected],则此处系统邮件名称填写为test.com。然后选择“确定”

3. 配置postfix

dpkg-reconfigurepostfix

您将再次被问一些问题:

spacer.gif

选择Internet Site,然后选择“确定”

spacer.gif

输入邮件后缀名,比如如果你想设置你的邮箱地址为[email protected],则此处系统邮件名称填写为test.com。然后选择“确定”

spacer.gif

此处空白即可,然后选择“确定”

spacer.gif

邮件接收目的地址,根据需要增减。此处采取默认,然后选择“确定”即可

spacer.gif

选择“否”

spacer.gif

采取默认即可,然后选择“确定”

spacer.gif

选择“是”

spacer.gif

若为0表示没有限制,此处设置为2 000 000 000。然后选择确定

spacer.gif

选择“确定”

spacer.gif

选择all,然后“确定”

至此,配置完毕

4. 配置postfix使它通过SASL实现smtp

输入以下命令配置sasl

postconf -e 'smtpd_sasl_local_domain ='

postconf -e 'smtpd_sasl_auth_enable = yes'

postconf -e 'smtpd_sasl_security_options = noanonymous'

postconf -e 'broken_sasl_auth_clients = yes'

postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'

postconf -e 'inet_interfaces = all'

echo 'pwcheck_method: saslauthd' >>/etc/postfix/sasl/smtpd.conf

echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

 

5. 生成用于加密和认证用的证书

mkdir/etc/postfix/ssl

cd/etc/postfix/ssl/

opensslgenrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod600 smtpd.key

opensslreq -new -key smtpd.key -out smtpd.csr

opensslx509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

opensslrsa -in smtpd.key -out smtpd.key.unencrypted

mv -fsmtpd.key.unencrypted smtpd.key

opensslreq -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

 

6. 配置postfix,加密发送和接收的邮件

postconf-e 'smtpd_tls_auth_only = no'

postconf -e 'smtp_use_tls = yes'

postconf -e 'smtpd_use_tls = yes'

 

postconf -e 'smtp_tls_note_starttls_offer = yes'

postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'

postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'

postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'

postconf -e 'smtpd_tls_loglevel = 1'

postconf -e 'smtpd_tls_received_header = yes'

postconf -e 'smtpd_tls_session_cache_timeout = 3600s'

postconf -e 'tls_random_source = dev:/dev/urandom'

postconf -e 'myhostname = mail.[MailServer].com

7. 重启postfix服务

/etc/init.d/postfix restart

8. 做一些小的修改,以便于postfix可以通过saslauthd工作

mkdir -p /var/spool/postfix/var/run/saslauthd

9. 编辑/etc/default 下的saslauthd文件

vim /etc/default/saslauthd

将文件安装以下内容进行修改

 

# STARTyes,使其自动运行

START=yes

#增加以下两个配置

PWDIR="/var/spool/postfix/var/run/saslauthd"

PARAMS="-m${PWDIR} -r"

# MECHANISMS值为shadow

MECHANISMS="shadow"

#修改OPTION的值

OPTIONS="-c-m /var/spool/postfix/var/run/saslauthd"

 

10. 编辑/etc/init.d下的saslauthd文件

vim/etc/init.d/saslauthd

#增加以下两个内容

PWDIR=/var/spool/postfix/var/run/saslauthd

PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"

 

11. 配置一下

sudo dpkg-statoverride --force --update --add root sasl 755/var/spool/postfix/var/run/saslauthd

 

12. 重启saslauthd服务

/etc/init.d/saslauthd start

2.认证测试

1. 连接到本地

telnet localhost25

 

如果正常,您将会看到以下来自 IMC 的类似响应:

220 xxx ESMTP Postfix

2). 将用户名和密码加密

按照以下指令对用户名和密码加密:

perl-MMIME::Base64 -e 'print encode_base64("\000username\000password");'

 

如用户名为root,密码是123456,则加密方式为

perl -MMIME::Base64 -e 'print encode_base64("\000root\000123456");'

上述加密结果为:AHJvb3QAMTIzNDU2

3). 键入以下命令开始进行通讯:

      ehlo  ******

*代表邮件目的地址。例如HELO test.com,test.com是安装过程中配置的。会得到如下回应:

250-mail.example.com

250-PIPELINING

250-SIZE20000000

250-VRFY

250-ETRN

250-STARTTLS

250-AUTHPLAIN LOGIN

250-AUTH=PLAINLOGIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

其中,必须要有以下两个响应,或者类似响应

250-AUTH PLAIN LOGIN

250-AUTH=PLAIN LOGIN

如果没有需要检查安装过程

4). 进行认证

     auth plain 用base64加密后的用户名和密码

例如对root用户(密码是123456)进行认证,则输入auth plain AHJvb3QAMTIzNDU2

认证通过时得到如下类似回应:

2352.7.0 Authentication successful

若失败,会有相应的错误提示


你可能感兴趣的:(认证,internet,邮箱,邮件服务器)