har*_*on4 7 security ftp mainframe jcl zos
我有以下代码使用JCL通过FTP发送文件:
//FTP00001 EXEC PGM=IKJEFT01,DYNAMNBR=50
//OUT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSPRINT DD DUMMY
//OUTPUT DD SYSOUT=*
//SYSTSIN DD *
123.234.345.67
myuser1
p4ssw0rd
ascii
cd infos
PUT 'EF35.LMINFO.D180203' info_180203.txt
QUIT
/*
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力,问题是我不想把凭证硬编码在JCL里面.我们怎么能隐藏它们,以便任何有权访问JCL的人都看不到连接细节?我也想从输出中隐藏凭据,但请注意我仍然希望看到其余的信息:传输的字节,可能的错误消息等等.
我想将SYSTSIN内容放在一个文件中,但是我遇到了同样的问题:任何有权访问该文件的人都会看到用户并通过.因此,解决这个问题的最佳方法是什么?
我看到它的方式是这样的:
//FTP00001 EXEC PGM=IKJEFT01,DYNAMNBR=50
//OUT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSPRINT DD DUMMY
//OUTPUT DD SYSOUT=*
//SYSTSIN DD DSN=AA.SOMETHING.LOGIN,DISP=SHR
// DD DSN=AA.SOMETHING.FTP,DISP=SHR
// DD DSN=AA.SOMETHING.LOGOFF,DISP=SHR
Run Code Online (Sandbox Code Playgroud)
哪里AA.SOMETHING.LOGIN会包含
123.234.345.67
myuser1 <- replace with ACID for this job
p4ssw0rd <- replace with password for the ACID
Run Code Online (Sandbox Code Playgroud)
AA.SOMETHING.FTP 会得到什么
ascii
cd infos
PUT 'EF35.LMINFO.D180203' info_180203.txt
Run Code Online (Sandbox Code Playgroud)
AA.SOMETHING.LOGOFF 会包含
QUIT
Run Code Online (Sandbox Code Playgroud)
此JCL将通过批处理ACID运行,只有ACID才能对该AA.SOMETHING.LOGIN文件进行读/写访问.因此FTP服务器需要将ACID添加为用户.这真的是唯一的方法.你是对的,任何有权访问的人都AA.SOMETHING.LOGIN可以看到凭据,但由于我们将登录信息与FTP命令分开,除非用户名/密码或IP地址发生变化,否则没有理由需要访问登录文件.因此,您可以更改您有权访问的文件中的任何内容.您还可以更进一步,而不是将IP地址放在单独的数据集中,这样您就可以编辑/查看除登录凭据之外的任何内容.这看起来像这样:
//FTP00001 EXEC PGM=IKJEFT01,DYNAMNBR=50
//OUT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSPRINT DD DUMMY
//OUTPUT DD SYSOUT=*
//SYSTSIN DD DSN=AA.SOMETHING.SERVER,DISP=SHR
// DD DSN=AA.SOMETHING.LOGIN,DISP=SHR
// DD DSN=AA.SOMETHING.FTP,DISP=SHR
// DD DSN=AA.SOMETHING.LOGOFF,DISP=SHR
Run Code Online (Sandbox Code Playgroud)
这也允许您在不访问登录凭据的情况下更改服务器,FTP命令和注销/清理.
唯一真正的缺点是,如果您需要更新登录凭据,您需要:
即便考虑到这一点,我仍然认为这是最好的方法.
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |