2017-04-03 128 views
0

我在server1和server2上都安裝了sendmail。他們使用相同的配置文件:sendmail.mc。我可以使用電腦上的電子郵件客戶端向同一服務器上的用戶發送/接收郵件。但我無法將電子郵件發送給其他服務器上的用戶。例如,我無法使用電子郵件客戶端從[email protected][email protected]發送電子郵件。我已將我的PC的IP地址添加到server1上的/ etc/mail/access(Connect:zz.zz.zz.zz RELAY)並重新構建了access.db。查看/ var/log/maillog,server1上的sendmail已成功接受來自PC的郵件,但在連接到服務器2時等待了很長時間。sendmail無法將電子郵件轉發到其他服務器

Apr 3 07:21:06 server1 sendmail [19771]:v33BKxfr019769:SMTP傳出連接上server1.xxxxx.com

然後超時:

04月03日7時26分06秒的sendmail server1的[19771]:v33BKxfr019769:超時從server2domain.com等待輸入。 v33BKxfr019769:爲=,ctladdr =(五百〇一分之五百〇一),延遲= 00:05:04,xdelay = 00:05:00,郵件收發器的客戶端問候

04月03日7時26分06秒的sendmail server1的[19771]過程中= esmtp,pri = 121178,relay = server2domain.com。 [yy.yy.yy.yy],dsn = 4.0.0,stat = Deferred:連接超時server2domain.com。

在server2,則該日誌:

04月03日7時18分02秒的sendmail服務器2 [20121]:v33BI2Os020121:分配的id

04月03日7時18分02秒的sendmail服務器2 [20121]:NOQUEUE :AUTH:可用機甲=匿名, 允許機甲= EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5

從[XX.XX.XX.XX]

04月03日7時18分02秒的sendmail服務器2 [20121]連接

Apr 3 07:18:02 server2 sendmail [20121]:v33BI2Os020121:M ILTER:沒有有源濾波器

04月03日7時23分02秒的sendmail服務器2 [20121]:STARTTLS =服務器,信息:FDS = 6/4,ERR = 5

04月03日7時23分02秒的sendmail服務器2 [20121]:STARTTLS = server,error:accept failed = 0,SSL_error = 5,errno = 0,retry = -1,relay = [xx.xx.xx.xx]

Apr 3 07:23:02服務器2的sendmail [20121]:v33BI2Os020121:斷開電平1

04月03日7時23分02秒的sendmail服務器2 [20121]:v33BI2Os020121:在背景,PID = 20121

Apr 3 07:23:02 server2 sendmail [20121]:v33BI2Os020121:[xx.xx.xx.xx]在連接到MTA-SSL期間未發出MAIL/EXPN/VRFY/ETRN

我可以成功發送電子郵件給服務器1上的server2使用openssl命令,不需要輸入用戶名/密碼。 的sendmail.mc是:

divert(-1)dnl 
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl 
VERSIONID(`setup for linux')dnl 
OSTYPE(`linux')dnl 
define(`confDEF_USER_ID', ``8:12'')dnl 
define(`confTO_CONNECT', `1m')dnl 
define(`confTRY_NULL_MX_LIST', `True')dnl 
define(`confDONT_PROBE_INTERFACES', `True')dnl 
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl 
define(`ALIAS_FILE', `/etc/aliases')dnl 
define(`STATUS_FILE', `/var/log/mail/statistics')dnl 
define(`UUCP_MAILER_MAX', `2000000')dnl 
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl 
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl 
define(`confAUTH_OPTIONS', `A')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 
define(`confCRL', `/etc/pki/tls/certs/revoke.crl') 
define(`confCLIENT_CERT', `/etc/pki/tls/certs/sendmail.pem') 
define(`confCLIENT_KEY', `/etc/pki/tls/certs/sendmail.pem') 
define(`confTO_IDENT', `0')dnl 
FEATURE(`no_default_msa', `dnl')dnl 
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl 
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl 
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl 
FEATURE(redirect)dnl 
FEATURE(always_add_domain)dnl 
FEATURE(use_cw_file)dnl 
FEATURE(use_ct_file)dnl 
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl 
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl 
FEATURE(`blacklist_recipients')dnl 
EXPOSED_USER(`root')dnl 
DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnl 
CLIENT_OPTIONS(`Family=inet')dnl 
FEATURE(`accept_unresolvable_domains')dnl 
LOCAL_DOMAIN(`localhost.localdomain')dnl 
define(`RELAY_MAILER_ARGS', `TCP $h 465') 
define(`ESMTP_MAILER_ARGS', `TCP $h 465') 
MAILER(smtp)dnl 
MAILER(procmail)dnl 

兩個sendmail的監聽端口465,我懷疑這個問題是關係到身份驗證,但不知道原因。

請幫忙,謝謝!

採用Andrzej A. Filip的建議並刪除sendmail中的兩行。mc,server1上的日誌中發生以下錯誤:

Apr 3 13:02:25 server sendmail [19927]:v33BKxfr019769:makeconnection(server2domain.com。[yy.yy.yy.yy])failed:Connection由server2domain.com拒絕。 04月03日13時02分25秒的sendmail服務器[19927]:v33BKxfr019769:的makeConnection(server2domain.com [yy.yy.yy.yy]。)失敗:連接由server2domain.com拒絕。 Apr 3 13:02:25 server sendmail [19927]:v33BKxfr019769:to =,ctladdr =(501/501),delay = 05:41:23,xdelay = 00:00:01,mailer = esmtp,pri = 301178 ,relay = server2domain.com。 [yy.yy.yy.yy],dsn = 4.0.0,stat = Deferred:連接被server2domain.com拒絕。

沒有登錄服務器2的消息。

我認爲沒有兩行,server1上的sendmail將嘗試通過端口25連接server2,而不是sendmail正在偵聽的端口465。

回答

0

SMTPS(465)之前的任何SMTP級通信開始SSL會話。 AFAIR sendmail本身不支持傳出連接。
刪除以下兩行,將sendmail.mc重新編譯爲sendmail.cf,重新啓動或(發送信號)HUP您的sendmail守護進程。

define(`RELAY_MAILER_ARGS', `TCP $h 465') 
define(`ESMTP_MAILER_ARGS', `TCP $h 465') 
+0

謝謝你的建議。但有新的錯誤發生(包括在原始問題的結尾處)。 – peter

+0

你能telnet服務器2上的端口25或587嗎?你有smtp問候消息嗎? 'telnet server2domain.com 587'順便說一下'FEATURE(no_default_msa)'關閉監聽端口587上的連接。 – AnFi

+0

我無法telnet/openssl服務器2上的端口25或端口587從server1。使用netstat -antp,我發現server1上的sendmail連接到server2上的端口465,即使沒有兩行。稍後,我在兩臺服務器上註釋FEATURE(no_default_msa)行,並將server1上兩行中的端口465更改爲587,然後可以成功中繼郵件。看起來繼電器不能通過端口465完成,但可以通過587完成。但是,AFAIR,通過端口587的通信未加密且不安全。所以我想知道爲什麼它不能使用端口465。 – peter

相關問題