第290期 / December 5, 2021

分享到臉書!分享到維特!分享到噗浪!分享到Google+!分享到微博!轉寄友人友善列印

[技術分享]NonStop Server SSH 架構與操作(下)

作者/馬先讓

[發表日期:2021/12/6]

作者簡歷

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

前言

HPE NonStop SSH是一個綜合性Enterprise Secure Shell解決方案。SSH (Secure Shell)是一套網路連線協定,本期將介紹HPE NonStop SSH管理操作。

HPE NonStop SSH管理操作

一、STN PTY SERVER設定與啟動

STN是一個pseudo TTY server,能讓遠端SSH clients連線,提供全螢幕操作,它就像類似傳統TELNET連線的TELSERV,需要設定SERVICE NAME或是WINDOW NAME。STN同SSH2都必須由SUPER.SUPER才能啟動,並透過STNCOM管理STN的環境。
  • STN啟動

    STN啟動有兩種方式,一種透過TACL執行OBEYFILE,另一種則是設成generic process,兩者皆需SUPER.SUPER執行,以下介紹兩種啟動方式:

    1. TACL方式
      > logon super.super /登入SUPER.SUPER/
      > volume $system.zssh /$system.zssh為STN程式目錄/
      > clear all /清除所有的參數設定/
      > param ... /設定STN參數/
      > run stn /name $ZPTY, pri 180, nowait / /執行STN/
      > run stncom $ZPTY; ... /管理STN process 設定/


    2. Generic process方式
      用SCF執行以下的內容其中INFILE指定的檔案內容為STN的參數設定檔。


    3. STN參數
      • PARAM BACKUPCPU cpu

        設定STN Process的backup cpu,STN啟動無法代入backup cpu,需透過這個參數才能設定它的backup cpu。

      • PARAM GWN^TEMPLATE #AAAnnn

        設定連到STN的WINDOW命名的格式,如該範例讓連到該STN的連線。
        WINDOW NAME為$ZPTY.#AAAnnn,說明如下:
        • # must appear as the first char

        • 1 to 4 letters:alphabetic prefix

        • 2 to 5 decimal digits:numeric suffix

        • Total must be 4 to 8 characters including "#"

      • PARAM GWN^INITIAL RANDOM

        控制Controls session和window names,連線的WINDOW NAME預設值為0001,設定該參數則WINDOW NAME就會是隨意值。

      • PARAM LICENSE filename

        指定STN LICENSE檔案位置,檔案名為LICENSE,系統預設該檔案的位置為STN object file所在的目錄;現在的版本已內含LICENSE,不再需要設定。


      • PARAM NOTACL 1

        1這個數字代表不使用TACL Service,系統預設值是有TACL Service。

      • PARAM OPEN^TABLE^SIZE number

        指定STN windows最大可被其他processes的open數。預設值3000,最大值為32000。

      • PARAM POOL^SIZE number

        指定control tables and I/O buffers的extended segment memory pool 的大小。單位是words,預設值為4194304(4M)。

      • PARAM SECURITY letter

        定義STN安全等級,那個USER有權限用STNCOM修改STN process 環境,預設值為"O",可設成其他的權限。

      • PARAM TRACE^FILE trace-file

        啟動一個trace file,檔案大小由參數PARAM TRACE^SIZE設定。

      • PARAM TRACE^SIZE number

        當PARAM&TRACE^FILE有使用時,用來設定trace file的檔案大小,單位為byte,預設值為100K。

  • STNCOM 指令集

    1. 新增service - add service
      Add service用來設定STATIC或DYNAMICE window sessions。其中它必須搭配stn process所對應到的ssh2 process內user 的設定CI-COMMAND *MENU*,才能在連線時看到這個service 選項出現。
      範例:
      ADD SERVICE RESTACL,TYPE DYNAMIC
      ,RESILIENT YES
      ,PROGRAM $SYSTEM.SYSTEM.TACL
      ,MENU HIDDEN
      ,USER SUPER.SUPER
      ,PRI 199
      ,LIMIT 3


    2. 新增window - add window
      Add window用來設定固定的window name,語法如下:
      ADD WINDOW #window-name
      ,TYPE DYNAMIC | STATIC | SU | DEDICATED
      ,TERM_TYPE TN6530 | ANSI | ANY
      ,SERVICE service-name
      ,IPADDR dotted-ip-address
      ,SUBTYPE nn | NONE
      ,SCRIPT script-name

    3. 刪除service - delete service
      DELETE SERVICE <service-name> | *


    4. 刪除window - delete window
      DELETE WIN[DOW] <window-name> | *

    5. 檢查service設定 - info service
      INFO SER[VICE] <service-name> | *

    6. 檢查window設定 - info window
      INFO WIN[DOW] <window-name> | *

    7. 啟動service - start service
      START SERVICE <service-name> | *

    8. 啟動window - info window
      START WINDOW <#window-name> | *

    9. 檢查STN global參數 - info process

二、SH and SFTP client 操作

SSH產品提供了在Guardian 和OSS環境的SSH和SFTP client工具,本章介紹如何使用這兩個工具。

  • SSH client 連線-Guardian

    1. SSH TCPIP連線


    2. SSH IPv6連線




  • SFTP client 連線-Guardian

    1. SFTP TCPIP連線


    2. SFTP IPv6連線



  • OSS環境使用SSH和SFTP

    系統提供支援OSS環境使用的SSH和SFTP client,檔案放在Guardian環境的目錄$SYSTEM.ZSSH.所以必須先在OSS環境建立link如下:
    ln -s /G/system/zssh/sshoss /usr/bin/ssh
    ln -s /G/system/zssh/sftposs /usr/bin/sftp

    之後即可在OSS環境直接執行ssh和sftp。


  • 執行SSH 和SFTP指定SSH2 process

    當系統有多個SSH2 processes時,執行SSH或SFPT Client連線時,需指定要透過那個SSH2 process連出去,須在指令後面加上-S
    <ssh2 process name>,範例如下:




三、SSH LOG分析

SSH LOG紀錄分為4個等級如下:

- 50 (default):log normal operation

- 30:only log startup messages and warnings

- 70:detailed diagnostic messages. Should only be set if the additional verbosity
is really required.

- 100:very detailed diagnostic messages. This configuration is not recommended
for production environments as it will create significant overhead.

  • SSH LOG 紀錄設定

    以下介紹幾種LOG設定方法:

    (1) Log等級最高,測試時用。
    LOGFILE * -不寫到LOGFILE
    LOGEMS * -不寫到EMSLOG
    LOGLEVELCONSOLE 100 -LOG LEVEL最高
    LOGCONSOLE % -LOG 寫到 SSH2 PROCESS的HOME TERM

    (2) Log to EMS and only log startup and severe messages:
    LOGFILE * -不寫到LOGFILE
    LOGCONSOLE * -不寫到HOME TERM
    LOGEMS $0 -寫到$0
    LOGLEVELEMS 30 -LOG LEVEL 30

    (3) Log normal operations to a file and startup and severe messages to EMS:
    LOGCONSOLE *
    LOGFILE $vol.subvol.logfile
    LOGLEVELFILE 50
    LOGEMS $0
    LOGLEVELEMS 30

    (4) Log normal operations to a file and startup and severe messages to EMS,且LOG 可先放在CACHE
    LOGCONSOLE *
    LOGFILE $vol.subvol.logfile
    LOGLEVELFILE 50
    LOGEMS $0
    LOGLEVELEMS 30
    LOGLEVELCACHE 85 -85條LOG可先被放在CACHE


  • SSH 檢查LOG工具-SHLOWLOG

    SHOWLOG工具是用來讀取SSH所以的LOGFILE,它放在$system.zssh內,它的常用語法如下:

    (1) dump logfile 全部內容
    run showlog sh54log

    (2) 將LOGFILE轉成另一個文字檔
    run showlog ssh2log logedit

    (3) 範例:讀取LOGFILE位置在5000000~5010000範圍內的資料
    run showlog ssh2log * 5000000 10000



參考資料

‧HPE NonStop SSH Reference Manual