1). 安装postfix、SASL及smtp服务
apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail
2). 配置服务器
选择Ineternet Site(通过SMTP发送和接收邮件),然后确定
输入邮件后缀名,比如如果你想设置你的邮箱地址为[email protected],则此处系统邮件名称填写为test.com。然后选择“确定”
3). 配置postfix
dpkg-reconfigurepostfix
您将再次被问一些问题:
选择Internet Site,然后选择“确定”
输入邮件后缀名,比如如果你想设置你的邮箱地址为[email protected],则此处系统邮件名称填写为test.com。然后选择“确定”
此处空白即可,然后选择“确定”
邮件接收目的地址,根据需要增减。此处采取默认,然后选择“确定”即可
选择“否”
采取默认即可,然后选择“确定”
选择“是”
若为0表示没有限制,此处设置为2 000 000 000。然后选择确定
选择“确定”
选择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
将文件安装以下内容进行修改
# START值yes,使其自动运行
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
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
若失败,会有相应的错误提示