Body

IBM i安全邮件配置和常见故障排除方法

简介:电子邮件是现在普遍使用的一种通信方式,为了提高通信过程中的安全并且保护邮件内容不被泄露,IBM i SMTP增加了对TLS的支持, 通过此技术保障了邮件通信过程中的安全和数据的不被篡改。本文提供了IBM i V7R2及以上版本安全邮件的配置方法和常见故障排除方法。

术语缩写:

SMTP:Simple Mail Transfer Protocol

TLS: Transport Layer Security

DCM: Digital Certificate Manager

CA:Certification Authority

PCOMM:IBM Personal Communications

SMTPTLS配置清单

在配置安全的邮件服务之前,需要确保SMTP服务器是正常工作的,并且已经创建了邮件帐户,关于SMTP邮件服务器的基本配置方法,可以参考以下IBM知识中心的链接来配置:

注:以下的配置步骤是IBM i 的SMTP服务器最基本的安全邮件配置方法,其它配置可以查看IBM知识中心相关页面。 打开SMTP服务器TLS功能,可以选择以下三条命令之一来完成:

CHGSMTPA ALWAUTH(*LCLRLY)

CHGSMTPA ALWAUTH(*RELAY)

CHGSMTPA ALWAUTH(*ANONYM)

当ALWAUTH设置成*LCLRLY,服务器将对本地和转发的邮件要求使用TLS和认证;如果是*RELAY,邮件服务器只对转发邮件要求使用TLS和认证;当设置成*ANONYM,只是要求使用TLS,不进行认证。

如果是*LCLRLY或者*RELAY,SMTP服务器就要求认证,需要在SMTP客户端设置此SMTP服务器的登录信息。如果是IBM i邮件服务器,可以参考如下的设置方法,命令中hostname是SMTP服务器的主机名字,username和password是SMTP服务器的登录账户和密码:

ADDSMTPLE TYPE(*HOSTAUTH) HOSTNAME(hostname) USERNAME(username) PASSWORD( password ) 通过DCM配置SMTP服务器证书的步骤如下,登录DCM的方法具体可参考如下链接: 登录到DCM,点击“Select a Certificate Store”,然后选择”*SYSTEM”。 注:如果没有*SYSTEM这个选项,需要提前创建*SYSTEM 证书仓库,请参考DCM Knowledge Center;

输入证书仓库的密码,然后继续;

在左上界面打开“Fast Path”界面,依次选择“Work with server applications”->“IBM i TCP/IP SMTP Server”->”Work with Application“;

点击“Update Certificate Assignment“,选择一个证书,分配到SMTP服务器,如果没有证书,需要创建一个。

如果邮件客户端没有包含服务器的CA证书,就需要导出CA 证书到邮件客户端,如果是IBM i 邮件客户端, 在DCM 的界面上选择“Work with CA certificates“,此菜单下有导入和导出CA证书的功能,如果是其它邮件客户端,根据相应的产品说明导入CA证书。

重启SMTP服务 结束SMTP: ENDTCPSVR *SMTP

结束 MSF: ENDMSF OPTION(*IMMED)

启动 SMTP: STRTCPSVR *SMTP

启动 MSF: STRMSF

到此为止,基本的SMTP TLS配置已完成,下面将介绍几种SMTP TLS常用的故障排除工具。

故障排除工具包: WRKSMTPEMM查看邮件发送状态

WRKSMTPEMM是IBM i V7R2及以上版本增加的一个新功能,该功能提供了非常直观和便捷的方式用于浏览邮件的发送和接收状态,以下是IBM i 客户端上的使用案例: 登录邮件客户端的PCOMM(或其它IBM  i 客户端软件);

通过以下的命令,改变邮件保留时间到1200秒,并且打开日志功能;

CHGSMTPA KEEPUNTIL(1200)  JOURNAL(*YES); 使用此命令SNDSMTPEMM 发送邮件到另外的邮件服务器的帐户;

使用 WRKSMTPEMM QUEUE(*ALL),在需要查看的邮件上选择 “8”来查看邮件发送详细过程记录;

检查详细的邮件信息,查找失败原因。 使用TELNET命令获得SMTP服务器是否支持TLS

如果你想知道SMTP服务器是否支持了TLS,可以使用Telnet和EHLO命令来查看。 Telnet到SMTP服务器的端口上,比如 “telnet  rcv1.test.com 25 “

如果SMTP服务器是工作状态的,就会响应“220 rcv1.test.com server ready“,此时可以回复”ehlo snd1.test.com“ 命令

SMTP服务器会发出本服务器的支持列表,比如 “8BITMIME”,”STARTTLS”等等

图1:TELNET 到SMTP服务器端

抓包和分析工具

Wireshark是一个开源的TCP/IP抓包和通信包分析软件,可以从他们的官网得到该软件

Wireshark在SMTP服务器或者客户端都可以使用,只要操作系统支持该软件即可,抓包之后可以直接使用Wireshark分析。

图2:Wireshark分析界面

如果SMTP服务器和客户端都是IBM i,可以使用“TRCCNN”命令抓包,通过FTP下载该抓包文件到本地机器,然后通过Wireshark分析。

IBM i抓包工具使用方法: TRCCNN SET(*ON) TRCTYPE(*IP)

重现问题

TRCCNN SET(*OFF) OUTPUT(*STMF) TOSTMF('/home/SMTP.pcap') OpenSSL

OpenSSL是一个开放源代码的软件库包,应用程序可以使用它来进行安全通信,同时也可以用来做安全通信中的故障排除工具, 该软件包可以从OpenSSL官网得到。

通过OpenSSL s_client功能可以打开到某一服务器的安全连接,并且可以通过服务器返回消息内容确定服务器提供的安全服务属性或者显示可能失败的原因,例如:

如果SMTP服务器使用了STARTTLS(显式TLS),可以在SMTP客户端上使用如下的命令查看:

OpenSSL s_client -crlf -connect hostname:25 -starttls smtp -CAfile ServerCA

如果SMTP服务器使用了指定安全端口465(隐式TLS),可以在SMTP客户端上使用如下的命令查看:

OpenSSL s_client -connect hostname:465 -CAfile ServerCA

注:hostname是SMTP服务器的主机名字或IP地址,ServerCA是SMTP服务器的CA证书文件,在使用上述命令前,需要将CA证书文件传送到SMTP客户端。

对于成功的安全协商,OpenSSL会输出证书信息,安全协商信息等,如下图3:

图3: OpenSSL成功的协商信息

几种常用的故障排除工具介绍到这里,下面将进入故障原因分析环节。

常见SMTP TLS失败案例及解决方案:

下面是各种常见的故障的描述,具体失败原因和定位步骤。

案例1:邮件发送成功,但是没有通过TLS发送

在这种条件下,邮件成功发送,但是通过WRKSMTPEMM或者抓包工具看到没有使用TLS

如果SMTP客户端是IBM i,WRKSMTPEMM中显示

在下面图4中,SMTP服务器没有发送STARTTLS,原因是服务器没有打开TLS功能

其它客户端使用Telnet命令看图5 的结果

Telnet  rcv1.test.com  25

如果服务器正常响应,输入“ehlo cient hostname”,具体命令,查看图5

图5: TELNET显示服务器不支持TLS

在上面的图中,没有看到服务器发出STARTTLS消息,同样可以说明SMTP服务器没有打开TLS功能。

案例1的解决方案:

使用“SMTPTLS配置清单”中第一个方法打开服务器的TLS功能。

案例2:邮件发送成功,没有使用TLS,但是SMTP服务器已经发送STARTTLS

这个案例和上面的看起来有点类似,邮件同样成功发送,没有使用TLS,通过WRKSMTPEMM或者TELNET等工具查看到服务器TLS功能已经打开。此种情况,可以使用WRKSMTPEMM或者Wireshark来分析。如果SMTP客户端是IBM i并且版本是V7R2及以上,可以使用WRKSMTPEM命令查看原因;如果是其它类型的邮件客户端,可以使用Wireshark抓包并分析。下图显示的原因是SMTP客户端忽略了服务器端的TLS能力,直接使用了非TLS进行对话,并且服务器没有强制要求使用TLS。在下图6中,可以看到SMTP客户端没有响应服务器的STARTTLS,直接回复 “MAIL FROM…” 消息,

图6:SMTP客户端不支持TLS的Wireshark追踪包

案例2的解决方案:

这种情况下,主要原因是SMTP客户端不支持TLS,可以考虑换成其它支持TLS的客户端。

案例3: 安全邮件发送失败,显示“TLS not available”

当安全邮件发送失败显示的原因是“TLS not available”或者“no peer certificate available“,这意味着SMTP服务器的TLS没有被完全配置好,最可能的原因是服务器没有配置证书。

WRKSMTPEMM,OpenSSL可以分别看到下面的两种提示,

图7:WRKSMTPEMM显示的没有证书

图8:使用OpenSSL命令:OpenSSL s_client -crlf -connect hostname:25 -starttls smtp

案例3解决方案:按照“SMTPTLS配置清单”中,第2条的方案配好服务器证书。

案例4:安全邮件发送失败,证书不被信任

如果在工具中看到有类似“certificate not trusted”或者“Secure socket init failed:6000…”,主要的原因是服务器的证书的CA没有加入到SMTP客户端的信任清单中。

WRKSMTPEMM中将会提示“Secure socket init failed:6000(Certificate is not signed by a trusted certificate authority)”,Wireshark中的提示如下图9:

图9:CA不被信任

案例4解决方案:导入SMTP服务器的证书的CA到客户端的证书库中并且信任该CA,可参考按照“SMTPTLS配置清单”中,第3条.

案例5:认证失败

当在故障排除工具中看到“530 authentication required”时表明,SMTP服务器要求认证,SMTP客户端需要提供正确的登录SMTP服务器的帐户信息,如果没有或者登录信息不正确,邮件发送就会失败。下图是WRKSMTPEMM的消息记录,Wireshark中同样可以看到类似的消息。

图10:WRKSMTPEMM的认证失败的消息

案例5解决方案:如果客户端是IBM i,可以使用ADDSMTPLE配置主机登录信息,具体参考“SMTPTLS配置清单”中第1条,如果是其它系统,可参考相应产品配置方案。

案例6;协商失败

如果前面的问题都已经解决,但是邮件仍然发送失败,可以考虑查看TLS协商是否成功,比如是否有匹配的TLS版本、加密组件或者是签名算法,对此类问题,OpenSSL是个很好的工具。

下面这个例子是一个不匹配的TLS版本导致的协商失败,SMTP的客户端和服务器将会优先尝试最高版本的TLS,如果双方没有对应的TLS版本,协商就会失败。比如SMTP服务器最高支持到TLS1.1,而客户端要求最低使用TLS1.2,客户端和服务器就不能建立成功的 TLS连接。下面的例子是客户端指定使用TLS1.2版本:

opnessl s_client -crlf -connect xxx:25 -starttls smtp –tls1_2

如果服务器端不支持TLS1.2,协商失败,显示的原因为“wrong version number“

图11:TLS版本不一致,协商失败

opnessl s_client命令中还包含很多参数,不但可以指定协商的版本,还可以指定加密算法的类型。具体可以参考OpenSSL官网。

案例6解决方案:改变客户端或者服务器的支持的版本,确保他们有匹配的TLS版本。

结论:本文介绍了4个故障排除工具和6种常见的失败案例的解决方法,阅读本文后,能快速解决安全SMTP的一些基本问题,如果遇本文未提及问题,你也可以利用这些工具找出具体原因。

参考文章:

ibm邮箱连接不到服务器,IBM i 安全邮件配置和常见故障排除方法相关推荐

  1. ibm邮箱连接不到服务器,IBM System x3400/x3500 M2服务器常见问题QA

    Q)x3400M2/3500M2与x3400/3500相比有哪些主要区别? A)x3400M2/3500M2使用了最新的Intel Xeon 5500系列处理器以及DDR-3内存:在系统管理方面,全新 ...

  2. 服务器显卡不能显示器,显卡与显示器的故障排除方法大全

    电脑的显示器的故障分为软故障和硬故障,当我们的显示器不能正常显示时,我们应该先简单的分析一下,故障出在哪里,是软件设置问题还是显示器的内部电路坏了.那么,今天小编为大家整理了一些显示器的相关知识,下面 ...

  3. 明基投影仪中心服务器联机失败,投影机使用中常见故障解决方法

    投影机使用中常见故障解决方法 问题一:投影机连接笔记本电脑, 无输出影像时怎么办? 笔记本电脑外接显示设备时,通常有四种显示输出控制. ① 笔记本液晶屏亮,外接显示设备亮 ②笔记本液晶屏亮,外接显示设 ...

  4. dell服务器 指示灯_Dell PowerEdge服务器或PowerVault存储诊断LED指示灯(QuadPack)故障排除...

    文章内容 症状 文章摘要:本文提供有关如何对Dell PowerEdge服务器或PowerVault存储系统上的存储诊断LED指示灯(QuadPack)代码进行故障排除的信息 问题:LED代码和定义. ...

  5. w ndows远程自动退出登陆,远程桌面连接Wndows 常见故障解决方法.doc

    远程桌面连接Wndows 常见故障解决方法 远程桌面连接Windows 7常见故障解决方法 在局域网网络中,我们常常要通过远程桌面连接程序,远程管理共享资源,以便提高工作效率.可是,笔者在远程桌面连接 ...

  6. 下载W ndows桌面,远程桌面连接Wndows 7常见故障解决方法.doc

    远程桌面连接Wndows 7常见故障解决方法 远程桌面连接Windows 7常见故障解决方法 在局域网网络中,我们常常要通过远程桌面连接程序,远程管理共享资源,以便提高工作效率.可是,笔者在远程桌面连 ...

  7. winxp文件、打印机共享故障排除方法及“操作无法完成.键入的打印机名不正确,或者指定的打印机没有连接到服务器上

    上午同时说,网络打印机打印不了,于是首先看一下打印服务器IP是不是给换了,结果没换. 接着尝试重新添加一下网络打印机,结果问题来了,连不上,提示: 操作无法完成.键入的打印机名不正确,或者指定的打印机 ...

  8. 三洋家电未能连接服务器,三洋洗衣机故障代码与故障排除方法

    一.门锁 1.在整机上开关门锁,或者用维修检查模式检测门锁是否动作正常.对不能持续供电的电器部件,切不可单独供电. 2.用对比法检查门锁线圈电阻值,对有开闭反馈信号的,用万用表测试其状态一致性. 3. ...

  9. 三星电视服务器正在维护0-1,三星液晶电视维修常见故障及排查

    1.显示器整机无电 (1)电源故障:这是一个应该说是非常简单的故障,一般的液晶显示器分机内电源和机外电源两种,机外的常见一些.不论那种电源,它的结构比crt显示器 的电源简单多了,易损的一般是一些小元 ...

最新文章

  1. EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用
  2. amd同步多线程_锐龙本主力AMD锐龙5 3500U测试:八代酷睿招架不住…
  3. linux上安装nero4j 关系数据库
  4. Readline-select
  5. main 函数解析(二)—— Linux-0.11 学习笔记(六)
  6. 图像的全局特征--LBP特征
  7. linux脚本开机挂载,案例七:shell实现开机自动挂载本地YUM仓库程序
  8. mysql修改表结构 删除字段_mysql更改表结构:添加、删除、修改字段、调整字段顺序...
  9. python function if yield_成为Python大牛必须要掌握的高端语法——yield!
  10. Python爬取猫眼电影排行榜并写入MySQL
  11. 图像处理之调整亮度与对比度
  12. Java程序员 面试如何介绍项目经验?
  13. 使用asio搭建商用服务器
  14. 微信小程序设置单个页面自定义头部为背景图
  15. 【已解决】win10+py3.6+anaconda3 安装fbprophet(利用安装包离线安装)
  16. noi2017滚粗记
  17. 9. Enhancing Aspect Term Extraction with Soft Prototypes论文阅读笔记
  18. 微信小程序 《数字华容道》
  19. mysql重启数据库实例命令_mysql重启数据库实例命令
  20. 小熊个人资料_TOP打野Xx小熊是谁 Xx小熊个人资料背景曝光实力超群

热门文章

  1. echart 水滴图水波颜色设置
  2. 分享 10 个常见的 CSS 页面布局代码片段
  3. zigbee无线传感网实训---linux命令的简单了解(one day)
  4. 敏捷开发中的任务拆分法_在关键任务系统开发中使用敏捷的5个技巧
  5. 监控系统介绍和zabbix的安装及配置
  6. 如何使用git命令回滚到指定版本以及返回到新版本
  7. Ruby for Rails 最佳实践十六
  8. android蓝牙python,android – 使用SL4A(Python)和蓝牙
  9. 计算机原理与应用第六章——总线技术
  10. Tkinter 极简例子——Event篇