略過巡覽連結首頁 > 產品與服務 > 技術分享

技術分享

[技術分享]NonStop Server SSH over TELNET實務經驗分享

作者/謝宏松
作者簡歷

作者擁有超過20年IT服務資歷,現職凌群電腦NSK服務總處系統工程師,主要負責HPE NonStop證券、銀行客戶系統維運服務,專長為HPE NonStop系統整合。

前言

HPE NonStop SSH是一個完整的Enterprise Secure Shell解決方案,取代以明碼方式傳輸資料的Telnet,資料傳輸經過加密,提高機密性和安全性。

此篇文章提出的HPE NonStop SSH over Telnet架構,可保留Telnet原本的Static window設定與管理方式,並將對外連線透過SSH進行加密傳輸,轉換過程可分批移轉並保留相關window與term設定,避免系統大幅異動以降低轉換風險。SSH over Telnet連線架構設定及使用環境如下圖所示:



NonStop端環境設定及說明

一、NonStop SSH元件說明

  • SSH2:SSH2是NonStop SSH最主要的程式,提供下列服務:
    • 做為SSH Server process,可設定listen特定連線TCP/IP Port(通常為PORT 22),對使用者和服務進行身份驗證,通過驗證後建立連線。
    • 使用SSHCOM管理SSH configuration database。
    • 使用者可以用SFTP或SSH client軟體與有啟動SSH daemon的系統建立連線。
  • SSH:為一執行在Guardian環境下的Secure Shell client,可與遠端SSH daemon連線。
  • SSHCOM:用來管理SSH環境
  • PAUTH:對系統使用者群的使用者密碼進行身份驗證。
  • STN:是pseudo TTY server,提供全螢幕shell給遠端SSH client使用。
  • TELNET:forwarding選擇的標的物,包含IP、PORT及相關的SERVICE、Static Window環境設定。

二、SSH架構概述
  • SSH2執行成SSH Daemon (Server):SSH2 process接受遠端連線,根據使用者的資料庫對遠端使用者進行身份驗證,也可以使用PAUTH驗證使用者密碼。
  • 在收到請求後,可使用以下的服務:
    • NonStop TACL、OSS Shell或SFTPSERV服務。
    • 使用者可以使用SSHCOM管理user database,允許管理者配置remote users public keys、控制對伺服器的功能及檔案傳輸的存取權限。

三、啟動SSH2環境

  • 啟動STN Pseudo Terminal Server
    遠端SSH client要取得一個終端機連線,必須啟動一個STN process當作SSH2的PTY server。在TACL環境下執行下列obeyfile:
    ALLOW ALL ERRORS

    ABORT PROCESS $ZZKRN.#SSH-PTYT
    DELETE PROCESS $ZZKRN.#SSH-PTYT

    ADD PROCESS $ZZKRN.#SSH-PTYT, &
    NAME $PTYT, PROGRAM $SYSTEM.ZSSH.STN, DEFAULTVOL $SYSTEM.SSHTEST, &
    HOMETERM $ZHOME, INFILE $ZHOME, OUTFILE $ZHOME, &
    AUTORESTART 10, SAVEABEND OFF, STARTMODE APPLICATION, PRIORITY 150, &
    STOPMODE STANDARD, CPU FIRSTOF (1,0)

    START PROCESS $ZZKRN.#SSH-PTYT

  • 啟動SSH2 process
    在TACL環境下執行下列obeyfile:

    ALLOW ALL ERRORS
    ABORT PROCESS $ZZKRN.#SSH-ZSH01
    DELETE PROCESS $ZZKRN.#SSH-ZSH01

    ADD PROCESS $ZZKRN.#SSH-ZSH01, &
    NAME $ZSH01, PROGRAM $SYSTEM.ZSSH.SSH2, DEFAULTVOL $SYSTEM.SSHTEST, &
    HOMETERM $ZHOME, INFILE $ZHOME, OUTFILE $ZHOME, &
    AUTORESTART 10, SAVEABEND OFF, STARTMODE APPLICATION, PRIORITY 150, &
    STOPMODE STANDARD, CPU FIRSTOF (1,0), &
    STARTUPMSG "ALL;SUBNET $ZTCT;PORT 7979;CONFIG $SYSTEM.SSHTEST.SSHTCFG"

    START PROCESS $ZZKRN.#SSH-ZSH01

    說明:
    –啟動SSH2 process,並指定DEFAULTVOL目錄
    –指定要走哪個TCPIP PROCESS:SUBNET $ZTCT
    –指定要走哪個PORT:PORT 7979
    –指定要讀哪個CONFIG FILE:CONFIG $SYSTEM.SSHTEST.SSHTCFG, CONFIG FILE內要指定該SSH2要與哪個STN PROCESS做連結,如下面紅色字串-PTYSERVER $PTYT。CONFIG內容需要預先編輯準備好。

    SSH CONFIG FILE (SSHTCFG) 內容如下:

    CUSTOMER HP
    AUTOADDSYSTEMUSERS TRUE
    STRICTHOSTKEYCHECKING FALSE
    CLIENTMODEOWNERPOLICY GUARDIANNAME
    PTYSERVER $PTYT
    SSHCTL SSHBDB
    SSHCTLAUDIT FALSE
    BACKUPCPU 0
    BANNER
    HOSTKEY HOSTKEYB
    #---------------------------------------
    # log configuration
    #---------------------------------------
    # SET THE LEVEL
    LOGLEVEL 50
    # Do not log to hometerm and EMS
    LOGCONSOLE *
    LOGEMS *
    # Log to log file
    LOGFILE $SYSTEM.SSHTEST.SSHTLOG

    #---------------------------------------
    # audit configuration
    #---------------------------------------
    # Turn on basic auditing
    AUDITFILE $SYSTEM.SSHTEST.AUDITT

  • 設定user

    採用SSH的連線方式,SSH會對user進行驗證,所以需在user的database中對每個登入的user設定;user name為連線時ssh的登入使用者名,可以是系統的user,或是自訂的user name。如登入的使用者採用系統的user,則可以不用先建立user;若是自訂的user,則需先建立。以下為加一個user的範例:

    open $ZSH01
    DELETE USER USERTACL
    ADD USER USERTACL, &
    ALLOWED-AUTHENTICATIONS (NONE), &
    ALLOW-SHELL YES, SHELL-PROGRAM TELNET 10.1.10.1 23, ALLOW-CI YES, &
    CI-PROGRAM TELNET 10.1.10.1 23, ALLOWED-SUBSYSTEMS (SFTP, TACL, OSH), &
    ALLOW-TCP-FORWARDING YES, OWNER *NONE*,SYSTEM-USER *NONE*

    說明:此範例為加一個SSH user - USERTACL,它登入後不再提供二次驗證方式(NONE),該USER有權限使用SFTP、TACL及OSH程式,不對應Guardian系統使用者,通過認證後,會自動導向TELNET 10.1.10.1(port 23)的連線,並依據該TELNET設定配置static window。亦即網路傳輸過程,傳輸資料透過SSH進行加密處理,進入到NonStop系統後,透過SSH2 forwarding功能,與原來的TELNET連線環境做MAPPING;同時可透過SSHCOM查詢該SSH process所管理的session狀態資訊並進行管理。


Client端連線軟體設定(DRSE)

  • 安裝DRSE版本2.06.10以上的版本(支援SSH連線)
  • 新增連線profile。
    • 於Session分頁填入新session名稱(ex:NSX-profile)


    • Properties分頁,填入SSH連線資訊。包含Host Address/Port Number,Secure Socket需勾選,並於SSH Configuration之Service Name填選對應到SSH2內設定連線的USER名稱,因不再對此SSH連線做二次認證,Password/Keyboard Interactive無須勾選。



  • 填選完畢,請SAVE此設定。
  • 連線,確認該PROFILE可以與NonStop端的SSH建立連線,並Forwarding到TELNET環境,如下圖所示。

  • SSHCOM檢查連線
    TACL>SSHCOM
    % STATUS SESSION *, RECURSIVE

    查看AUTH-USR欄位是否有 USERTACL認證成功的SESSION存在,若有,此即為該建立連線的SESSION資訊)
    • 由上述查詢的SID(SESSION ID),藉由STATUS CHANNEL指令可以看到詳細資訊。
      % STATUS CHANNEL 12, DETAIL

    • (可以藉由此資訊,連結到SSH forwarding到TELNET的關係)


    SSH over TELNET特性說明
    • 說明:當在原有的TELNET使用環境,評估導入SSH加密的資料傳輸模式時,可以在不變動原始的TELNET設定環境,利用NonStop SSH所提供的forwarding架構,把資料傳輸加密的需求納入使用環境。

    • [SERVER端] SSH over Telnet建置程序
      (1)規劃SSH需求的網段,並收集相關資訊。
      (2)建置SSH / STN process(建議設定成Generic process,由$ZZKRN管理)。
      (3)SSH內建置USER(需選定登入認證方式、CI-PROGRAM及SHELL-PROGRAM需指定forwarding的Telnet連線資訊)

    • 降低SSH加解密時CPU使用率
      請調整SSH2下列兩個參數(使用SSHCOM動態調整設定或SSH CONFIG File調整DEFAULT值)。
      (1)SLOWDOWNTICKS 1
      (2)SLOWDOWNIOS 2

    • [Client端]DRSE client設定:
      SSH連線資訊設定:包含Host Address/Port Number,勾選Secure Socket,並於SSH Configuration之Service Name填選對應到SSH2內設定連線的USER名稱;若不再對此SSH連線做二次認證,Password/Keyboard Interactive無須勾選。若有要做二次認證,可以依據Server端環境,配合勾選適當的選項。

    • 管理部分:
      (1)由SSHCOM查看SSH SESSION或CHANNEL資訊。
      (2)由SCF LISTOPENS PROCESS $查看由SSH forwarding到TELNET的Session連線資訊。


    參考資料

    HPE NonStop SSH Reference Manual。

     

    回上一頁

  •