如何在远程 IBM z/OS FTP 服务器上自动更新 FTP 用户密码?

如何在远程 IBM z/OS FTP 服务器上自动更新 FTP 用户密码?

我们希望解决业务问题,即如何在远程 FTP 服务器(注意:z/OS)上安排自动密码更新,在密码过期之前,我们没有管理控制权。例如,每月一次更新用户 JDoe 的密码,包括本地更新和远程 FTP 服务器 ftp.abc.com 更新。

我们的业务流程需要使用协议 FTPS 来传输文件到远程 FTP 服务器(注:z/OS)。一个单独的组织管理这个远程 FTP 服务器,为我们的团队提供用户帐户,但没有服务器级管理控制。FTP 服务器策略会在一段时间后自动使用户帐户密码过期。发生这种情况时,FTP 服务器工作人员会要求与指定帐户绑定的人员致电其 FTP 服务器帮助台,以验证其身份。验证成功后,FTP 服务器帮助台工作人员会重置密码,要求用户在下次登录时选择新密码。FTP 服务器允许用户通过命令行重置密码,方法是将密码设置为字符串“oldpw/newpw/newpw”;随后,用户仅使用“newpw”登录。

FTP 服务器管理员不会将 FTP 用户密码设置为永不过期。

几年前,一位现已退休的团队成员创建了一个内部应用程序来执行此任务,使用 Rebex 提供的 FTPS 功能。根据资源限制,我们更希望找到一种无需内部维护的解决方案。注意:如果可能的话;如果内部维护是可行的方法,那就这样做吧。

我们怎样才能做得更好?

答案1

背景

每个 FTP 服务器实现决定是否/如何调用访问控制,根据文件传输协议 (FTP) 技术规范RFC 959

2.2.  TERMINOLOGY
   ...
   access controls
      Access controls define users' access privileges to the use of a
      system, and to the files in that system.  Access controls are
      necessary to prevent unauthorized or accidental use of files.
      It is the prerogative of a server-FTP process to invoke access
      controls.

自从密码策略代表一种访问控制形式,并且 RFC 959 没有指定密码重置机制,因此可以合理地得出以下结论每个 FTP 服务器实现决定是否/如何支持 FTP 客户端发起的密码重置

实际上,这代表我们看到的

某些服务器(例如 Titan FTP 服务器)支持 SITE PSWD 命令:

SITE PSWD "<old_password>" "<new_password>"

其他服务器,例如 WS_FTP Server,支持 CPWD 命令:

CPWD <new_password> Yet another

变体是:

SITE CPWD <new_password>

IBM Z/OS FTP 服务器密码重置机制

IBM z/OS FTP 服务器扩展文件传输协议 (FTP) 命令“经过",授予 FTP 用户通过 FTP 客户端启动密码更改的权限。

具体来说,在 FTP 客户端字段“密码”中输入“oldpass/newpass/newpass”(分别用实际的旧密码和新密码替换“oldpass”和“newpass”,保留正斜杠分隔符)。成功登录后,这将触发 FTP 服务器随后在远程服务器上更改 FTP 用户密码。后续登录仅要求 FTP 用户提供新密码。存在其他限制;请参阅 IBM FTP 命令“经过”文档以了解完整详细信息。

自动重置 IBM Z/OS 密码

自动化依赖于 FTP 服务器密码重置机制和适合自动化的 FTP 客户端。

我们目前使用 Ipswitch WS_FTP Professional Client v12:

ONERROR GOTO end1 ;(Goes to the end1 label and ends the script) 
TRACE SCREEN ;(sends a trace of the script to the screen - you can modify this line to point to a trace files so that any errors can be viewed after the script is run) 
LOG SCREEN ;(sends the log file to the screen you can modify this line to point to a trace files so that any errors can be viewed after the script is run)
USER test ;(username command) 
PASS oldpw/newpw/newpw ;(password command) 
CONNECT 127.0.0.1 21 ;(connects to the remote site) 
CLOSE ;(closes the connection) 
LABEL end1

相关内容