郵件傳輸的驗證

smtp 並不支持身份的驗證。因此每一個人均可以發送郵件。因此咱們但願郵件服務器可以經過對發信人進行驗證。vim

p_w_picpath

系統帳戶並無adce帳戶。可是他仍是能夠發送郵件的。服務器

p_w_picpath

並且user1仍是接受到了該郵件。有時候該郵件多是垃圾郵件,病毒等等咱們不想接受的東西。app

這就利用到了sasldom

SASL全稱Simple Authentication and Security Layer,是一種用來擴充C/S模式驗證能力的機制。能夠利用SASL來判斷用戶是否有權使用轉發服務,或是辨認誰在使用你的服務器。ide

咱們這時候就要對中繼進行配置了。有兩種方法驗證:post

IP地址驗證:測試

帳號驗證: 本地帳號編碼

虛擬帳號3d

郵件服務器能夠對特定的IP地址進行中繼 。但有時候使用者要到外地出差。這時候用IP地址驗證已經行不通了。rest

郵件服務器對帳號進行驗證,只有帳號驗證成功了。才能使用郵件服務器進行發送郵件。 郵件服務器決定是否中繼。

首先介紹IP地址的驗證

拿sendmail來講

修改中繼配置文件以下

[root@mail ~]# vim /etc/mail/access

Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
connnect:192.168.145 RELAY //對來自該網段的郵件進行中繼

拿postfix來講

255 mynetworks = 192.168.145.0/24, 127.0.0.0/8 //對來自該網段和本區域的郵件進行中繼

發送郵件測試,這裏就不利用outlook了

[root@mail ~]# telnet 192.168.145.100 25
Trying 192.168.145.100...
Connected to mail.bj.zz.com (192.168.145.100).
Escape character is '^]'.
220 mail.bj.zz.com ESMTP Postfix
mail from:user1@bj.zz.com
250 2.1.0 Ok
rcpt to:user3@sh.zz.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:qq
qqqqqqqqqqqqqqqqqqqqqqqqqqqq
.
250 2.0.0 Ok: queued as B0FEB10D74C

查看日誌

[root@mail ~]# tail -f /var/log/maillog

Aug 13 04:44:22 mail postfix/qmgr[7697]: A396010D75A: from=<user1@bj.zz.com>, size=383, nrcpt=1 (queue active)
Aug 13 04:44:22 mail postfix/smtp[7779]: A396010D75A: to=<user3@sh.zz.com>, relay=mail.sh.zz.com[192.168.145.101]:25, delay=36, delays=36/0.02/0.06/0.05, dsn=2.0.0, status=sent (250 2.0.0 q7CDIRWZ004886 Message accepted for delivery)
Aug 13 04:44:22 mail postfix/qmgr[7697]: A396010D75A: removed

查看user3用戶是否收到郵件

p_w_picpath

下面介紹帳號驗證 拿sendmail來講

root@mail ~]# vim /etc/mail/access
[root@mail ~]# rpm -qa |grep sasl
cyrus-sasl-lib-2.1.22-5.el5
cyrus-sasl-2.1.22-5.el5
cyrus-sasl-devel-2.1.22-5.el5
cyrus-sasl-plain-2.1.22-5.el5
[root@mail ~]# vim /usr/lib/sasl2/Sendmail.conf

pwcheck_method:saslauthd //sendmail的驗證方法是saslauthd來實現的

首先咱們啓用sasl驗證功能

[root@mail ~]# vim /etc/mail/sendmail.mc

39 define(`confAUTH_OPTIONS', `A y')dnl //採用身份驗證

52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl //支持的身份驗證的方法

53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl //驗證的機制

116 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA , M=Ea')dnl //強制的身份驗證

測試以下:

p_w_picpath

咱們能夠看到這時候郵件發送是採用身份驗證的

咱們這時候驗證的命令是AUTH LOGIN

但這個命令只支持base 64編碼。咱們這時候能夠利用以下命令生成帳號base64編碼。

[root@mail ~]# echo -n "user1@bj.zz.com"|openssl base64
dXNlcjFAYmouenouY29t

[root@mail ~]# echo -n "123"|openssl base64
MTIz

[root@mail ~]# service saslauthd start //打開驗證功能
啓動 saslauthd: [肯定]

p_w_picpath

這時候測試一下郵件是否發送成功

[root@mail ~]# su - user2
[user2@mail ~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/user2": 2 messages 1 new
1 MAILER-DAEMON@mail.b Sun Aug 12 19:28 13/548 "DON'T DELETE THIS MESSAGE -- F"
& gt;N 2 user1@bj.zz.com Mon Aug 13 03:41 14/509 "ooo"
& 2
Message 2:
From user1@bj.zz.com Mon Aug 13 03:41:45 2012
Date: Mon, 13 Aug 2012 03:39:43 +0800
From: user1@bj.zz.com
X-Authentication-Warning: mail.bj.zz.com: [192.168.145.10] didn't use HELO protocol
subject: ooo

zzzzzzzzzzZZZZZZZZZZZZ

&

咱們的郵件已經發送成功

使用outlook時咱們須要作以下修改才能成功經過驗證發送郵件

p_w_picpath

拿postfix來講

255 mynetworks = 127.0.0.0/8

668 broken_sasl_auth_clients = yes //啓用客戶端驗證功能
669 smtpd_sasl_auth_enable = yes //postfix利用sasl進行驗證
670 smtpd_sasl_security_options = noanonymous //不容許匿名帳號發送郵件
671 smtpd_sasl_application_name = smtpd //發送服務器進程
672 smtpd_client_restrictions = permit_sasl_authenticated,reject //容許通過驗證的帳戶進行發送郵件

673 #smtpd_client_restrictions = permit_sasl_authenticated
674 smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination //容許經過驗證的進行中繼。拒絕沒有經過驗證的。

[root@mail sasl2]# service postfix restart

[root@mail sasl2]# service saslauthd restart

測試發送郵件

[root@mail ~]# telnet 192.168.145.100 25
Trying 192.168.145.100...
Connected to mail.bj.zz.com (192.168.145.100).
Escape character is '^]'.
220 mail.bj.zz.com ESMTP Postfix
mail from:user1@bj.zz.com
250 2.1.0 Ok
rcpt to:user3@sh.zz.com
554 5.7.1 <mail.bj.zz.com[192.168.145.100]>: Client host rejected: Access denied
auth login dXNlcjFAYmouenouY29t
334 UGFzc3dvcmQ6
MTIz
235 2.0.0 Authentication successful
rcpt to:user3@sh.zz.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:aa
ssssssssssssssssssssssssssss
.
250 2.0.0 Ok: queued as A6CD810D74C

查看日誌

Aug 13 05:21:12 mail postfix/qmgr[7892]: A6CD810D74C: from=<user1@bj.zz.com>, size=383, nrcpt=1 (queue active)
Aug 13 05:21:12 mail postfix/smtp[7943]: A6CD810D74C: to=<user3@sh.zz.com>, relay=mail.sh.zz.com[192.168.145.101]:25, delay=80, delays=80/0.02/0.02/0.01, dsn=2.0.0, status=sent (250 2.0.0 q7CDtHrc004985 Message accepted for delivery)

測試user3是否收到郵件

p_w_picpath

相關文章
相關標籤/搜索