Как обезопасить пароль хранилища в JCL FTP? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть следующий код для отправки файла через FTP с использованием JCL:

//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
/*

Это работает как чудо, проблема в том, что я не хочу помещать учетные данные в JCL.Как мы могли бы скрыть их, чтобы любой, кто имеет доступ к JCL, не мог видеть детали соединения?Я также хотел бы скрыть учетные данные в выходных данных, но учтите, что я все еще хочу видеть остальную информацию: переданные байты, возможные сообщения об ошибках и т. Д.

Я думал при размещении содержимого SYSTSINвнутри файла, но я столкнулся бы с той же проблемой: любой, кто имеет доступ к файлу, увидит пользователя и пройдет.Поэтому, каков наилучший способ разобраться в этом?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

harrison4 указал, что у IBM Communications Server есть архитектурная форма этого решения, которая может использовать либо набор данных, либо файл USS.Это задокументировано в руководстве "z / OS Communications Server: Руководство пользователя и команды IP", на которое harrison4 ссылается в своем комментарии:

https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.halu001/netftp.htm

Это может быть само собой разумеется, но явсе равно скажуХранить пароли в наборах данных или файлах всегда плохо, если они не зашифрованы (не закодированы, не зашифрованы).Если вы должны сделать это, убедитесь, что права доступа к файлам или профили менеджера безопасности максимально ограничивают доступ к файлу / набору данных.

0 голосов
/ 11 мая 2018

То, как я это сделал, выглядит так:

//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

, где AA.SOMETHING.LOGIN будет содержать

123.234.345.67
myuser1    <- replace with ACID for this job 
p4ssw0rd   <- replace with password for the ACID

AA.SOMETHING.FTP будет содержать

ascii
cd infos
PUT 'EF35.LMINFO.D180203' info_180203.txt

AA.SOMETHING.LOGOFF будет содержать

QUIT

Этот 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

Это также позволяет вам изменять сервер, команды FTP и выходить из системы / очищать все без доступа к учетным данным для входа.

Единственный реальный недостаток - если вам когда-либо понадобится обновить учетные данные для входа, вам необходимо:

  1. Запрос доступа к файлу
  2. Напишите еще один JCL, который будет работать с ACID, у которого есть доступ к этому файлу, чтобы обновить его

Даже с учетом этого я все же думаю, что это лучший способ.

...