Мы хотим решить бизнес-проблему, как запланировать автоматическое обновление пароля на удаленном FTP-сервере (примечание: z / OS), над которым у нас нет административного контроля, до истечения срока действия пароля. Например, раз в месяц обновляйте пароль пользователя JDoe как локально, так и на удаленном FTP-сервере ftp.abc.com.
Наш бизнес-процесс требует передачи файлов с использованием протокола FTPS на / с удаленного FTP-сервера (примечание: z / OS). Отдельная организация администрирует этот удаленный FTP-сервер, предоставляя нашей команде учетную запись пользователя, но не административный контроль на уровне сервера. Политика FTP-сервера автоматически истекает сроком действия паролей учетных записей пользователей по прошествии определенного периода времени. Когда это происходит, персонал FTP-сервера требует, чтобы человек, связанный с указанной учетной записью, позвонил в службу поддержки FTP-сервера и подтвердил свою личность. После успешной проверки сотрудники службы поддержки FTP-сервера сбрасывают пароль, требуя от пользователя выбрать новый пароль при следующем входе в систему. FTP-сервер позволяет пользователям сбрасывать свой пароль через командную строку, задав для пароля строку «oldpw / newpw / newpw»; впоследствии пользователи входят в систему только с "newpw".
Администраторы FTP-сервера не устанавливают пароль пользователя FTP на неограниченный срок.
Несколько лет назад ныне вышедший на пенсию член команды создал собственное приложение для выполнения этой задачи, используя функциональность FTPS, предоставляемую Rebex. Из-за ограничений ресурсов мы предпочли бы решение, которое нам не нужно поддерживать собственными силами. Примечание: если возможно; если дом представляет собой путь, пусть будет так.
Как мы можем сделать это лучше?
ЗАДНИЙ ПЛАН
Каждая реализация 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-клиентом.
На практике это представляет что мы видим:
Некоторые серверы, например FTP-сервер Titan, поддерживают команду SITE PSWD:
SITE PSWD "<old_password>" "<new_password>"
Другие серверы, такие как WS_FTP Server, поддерживают команду CPWD:
CPWD <new_password> Yet another
вариант:
SITE CPWD <new_password>
МЕХАНИЗМ СБРОСА ПАРОЛЯ FTP-СЕРВЕРА IBM Z / OS
FTP-сервер IBM z / OS расширяет команду протокола передачи файлов (FTP) "ПРОХОДИТЬ", чтобы предоставить пользователям FTP возможность инициировать смену пароля через FTP-клиент.
В частности, введите «oldpass / newpass / newpass» в поле «пароль» FTP-клиента (замените действующие старый и новый пароли на «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