ONTAP Antivirus Connector の接続ステータス確認方法

ONTAP Antivirus Connector でONTAPとアンチウイルスソフトを連携させる場合に、ONTAPからの接続ステータス確認手法がいまいちよく分からなかったのでメモ書き。

基本的な接続状況確認コマンド

「vserver vscan connection-status show-all」で確認する。

netappcluster::> vserver vscan connection-status show-all
                                              Connection
Vserver     Node              Server          Status         Disconnect Reason
----------- ----------------- --------------- -------------- -----------------
svm0        netapp01         192.168.10.110   disconnected   remote-closed
svm0        netapp01         192.168.10.111   connected      na
svm0        netapp01         192.168.10.112   connected      na
svm0        netapp01         192.168.10.113   connected      na
svm0        netapp02         192.168.10.110   disconnected   -
svm0        netapp02         192.168.10.111   disconnected   -
svm0        netapp02         192.168.10.112   disconnected   -
svm0        netapp02         192.168.10.113   disconnected   -
8 entries were displayed.

netappcluster::>

上記の場合、ONTAP Antivirus Connectorがインストールされていて、接続設定されているのは、「192.168.10.110~192.168.10.113」の4台あって、そのうち、192.168.10.110の1台だけ接続できてない、という状態となっている。

「Disconnect Reason」に「remote-closed」とあるため、NetAppと192.168.10.110間の通信は行えるものの192.168.10.110側で接続を切断している、という意味合いとなるようだ。

2024/05/09追記:show-allでも全部表示されるわけではなかった。

scanner-poolはPrimaryとSecondaryが設定できるのだが(vserver vscan scanner-pool showで確認)、Primaryの方を使っている場合はSecondaryの接続状況について表示されないので注意が必要。

詳細ログ確認

上記の「remote-closed」だけだと詳細が分からない。

詳細ログはadvanced権限でみれるようになっているため、権限切り替えした上で「vserver vscan show-events」を実行する。

なお、「rows 0」を実行して24行で止める設定を解除している場合、その時に出ているイベントが全件強制表示されてしまうため「rows 24」などで画面を止めるように設定しておくことを推奨。

netappcluster::> set adv

Warning: These advanced commands are potentially dangerous; use them only when
         directed to do so by NetApp personnel.
Do you want to continue? {y|n}: y

netappcluster::*>

netappcluster::*> vserver vscan show-events

Vserver     Node            Server          Event Type        Event Time
----------- --------------- --------------- ----------------- -----------------
svm0        netapp01        192.168.10.110  scanner-          1/31/2023
                                            disconnected      18:05:37
svm0        netapp01        192.168.10.110  scanner-connected 1/31/2023
                                                              18:01:45
<略>

上記では簡単な理由しかわからないので「-ins」オプションを付けて実行

ossv0059::*> vserver vscan show-events -ins

                           Node: netapp01
                 Event Log Time: 1/31/2023 18:05:37
                         Server: 192.168.10.110
                     Event Type: scanner-disconnected
                      File Path: -
                Vscanner Vendor: -
               Vscanner Version: -
       Server Disconnect Reason: remote-closed
Vserver LIF Used for Connection: 192.168.10.10

                           Node: netapp01
                 Event Log Time: 1/31/2023 18:01:45
                         Server: 192.168.10.110
                     Event Type: scanner-connected
                      File Path: -
                Vscanner Vendor: vendor not registered
               Vscanner Version: 0.0
       Server Disconnect Reason: -
Vserver LIF Used for Connection: 192.168.10.10
<略>

remote-closedとなる前に「scanner-connected」の時に、「Vscanner Vendor: vendor not registered」という怪しげなステータスとなっている。

じゃあ、各サーバとの接続状態でこの「Vscanner Vendor」の情報を確認する手法はあるか確認するとvscan connection-status で取得出来る情報の中にあった。

「vserver vscan connection-status show-all -fields version,vendor,server-status,connected-since」を実行する

netappcluster::> vserver vscan connection-status show-all -fields version,vendor,server-status,connected-since
node     vserver  server         server-status vendor                     version     connected-since
-------- -------- -------------- ------------- -------------------------- ----------- ------------------
svm0     netapp01 192.168.10.110 disconnected  vendor not registered      0.0         -
svm0     netapp01 192.168.10.111 connected     symantec protection engine 20230130.19 1/31/2023 17:34:33
svm0     netapp01 192.168.10.112 connected     symantec protection engine 20230130.19 1/31/2023 17:35:20
svm0     netapp01 192.168.10.113 connected     symantec protection engine 20230130.19 1/31/2023 17:35:25
svm0     netapp02 192.168.10.110 disconnected  -                          -           -
svm0     netapp02 192.168.10.111 disconnected  -                          -           -
svm0     netapp02 192.168.10.112 disconnected  -                          -           -
svm0     netapp02 192.168.10.113 disconnected  -                          -           -
8 entries were displayed.

netappcluster::>

remote-closedとなっているサーバ以外は正常な製品名と、おそらくパターンファイルのバージョンっぽいのが表示されている。

disconnectedとなっている 192.168.10.110サーバ上で動作しているONTAP Antivirus connectorとアンチウイルスソフト間の通信に問題があり、ONTAP Antivirus connector側で情報がきちんと取得されていないために発生している、ということのようだった。


NetApp KBのメモ

ONTAP Vscan(ウィルス対策)およびAntivirus Connector(AVConnector)解決ガイド
 antivirus connectorの問題に関するリンク集

ONTAP Antivirus Connector ロギングを有効にする方法
 Windows上で動作するAntivirus Connectorのログを取るためにはレジストリ設定変更が必要
 標準ではログ取らない。保存先ログファイル名もレジストリで明示的に設定する

FAQ :アンチウイルスコネクタのコマンドラインスイッチとして使用できるオプションは何ですか
 Windows上で動作するAntivirus Connectorで以下の設定を変更することができる
  AVコネクタ動作時にDNS逆引きを行う(デフォルト)のを行わない様に変更する
   「net start ontapavc /ipaddrtodns:false」
  AVコネクタはhttps(port 443)を使用するが、他のポートを使う場合に変更できる
   「net start ontapavc /transport:http /port:80」(http で port 80)
   「net start ontapavc /transport:https /port:443」(https で port 443)

・「Vscan サーバが ONTAP に接続できません スキャナプールの設定が正しくない
 ONTAPに登録するprivileged userと、Windowsサーバ上のONTAP AVconnectorとアンチウイルスエンジンの動作ユーザが同じであることを確認
 ONTAPに登録するスキャンサーバをホスト名登録した場合、ホスト名と名前解決したIPアドレスが一致すること(一致しない場合接続を拒否=DNSラウンドロビン不可)
 特権ユーザの指定は「ドメイン名\ユーザ名」形式で行う(ユーザ名@ドメイン名は使えない)

・「AVコネクタに401 Unauthorizedと表示されます
 Windowsサーバ上のONTAP AVconnectorからONTAPにアクセスする際は、httpアプリケーションとしてアクセスされるので、使用するONTAPのユーザに「-application http」を追加する
 また、別資料を見ると「指定したユーザに対して「 ontapi 」アプリケーションが有効になっていません」とか「AV コネクタが https 接続をネゴシエートできない(セキュアでない http を使用して正常に動作する)」という記述もあるため、https,ontapi に関する設定も確認する

・「ONTAP AV コネクタが Vserver のデータインターフェイスに接続できません
 ONTAP Avconnectorの接続をデータLIFにする場合、標準設定のままでは使えない
 management-https を追加すること

Vscan サーバが「 connected 」と表示されていますが、「 vendor not registered 」がになって 表示されます
 NetApp的には「Vscan の設定が正しくありません」
 「Vscan サービスが停止しました」
 「Vscan サービスはループバックアドレス 127.0.0.1 を参照していません。」


scanner-poolのPrimary/Secondary問題

下記のようにscanner-poolを「GroupA」と「GroupB」の2つを作ったとする。

ontap9131::> vserver vscan scanner-pool show
            Scanner    Pool                         Privileged      Scanner
Vserver     Pool       Owner   Servers              Users           Policy
----------- ---------- ------- -------------------- --------------- ----------
svm9131     GroupA     vserver 172.17.44.156,       AD2\            primary
                               172.17.44.157        administrator
svm9131     GroupB     vserver 172.17.44.159,       AD2\            secondary
                               172.17.44.162        administrator
2 entries were displayed.

ontap9131::>

通常動作時、connection-status show-all で表示されるのは Primary側だけとなる。

ontap9131::> vserver vscan connection-status show-all -fields version,vendor,connected-since,disconnect-reason
node         vserver server        vendor     version  disconnect-reason connected-since
------------ ------- ------------- ---------- -------- ----------------- -----------------
ontap9131-01 svm9131 172.17.44.156 trendmicro 19.32700 na                5/9/2024 14:29:16
ontap9131-01 svm9131 172.17.44.157 -          -        -                 -
2 entries were displayed.

ontap9131::>

(上記は172.17.44.157サーバを停止させているので表示がない)

この状態で、Primaryで唯一稼働中の172.17.44.156のONTAP AV Connectorサービスを停止し、何かファイルを書き込んでウイルス検査をさせると接続が始まり、以下のような表示になる。

ontap9131::> vserver vscan connection-status show-all -fields version,vendor,connected-since,disconnect-reason
node         vserver server        vendor     version  disconnect-reason connected-since
------------ ------- ------------- ---------- -------- ----------------- ---------------
ontap9131-01 svm9131 172.17.44.156 trendmicro 19.32700 remote-closed     -
ontap9131-01 svm9131 172.17.44.157 -          -        -                 -
ontap9131-01 svm9131 172.17.44.159 trendmicro 19.32700 na                5/9/2024 14:41:59
ontap9131-01 svm9131 172.17.44.162 trendmicro 19.32700 na                5/9/2024 14:41:12
4 entries were displayed.

ontap9131::>

で、Primaryで止めた 172.17.44.156のONTAP AV Connectorサービスを開始してしばらく待つと、下記のようにしばらくはPrimaryとSecondaryの両方が表示されている。

ontap9131::> vserver vscan connection-status show-all -fields version,vendor,connected-since,disconnect-reason
node         vserver server        vendor     version  disconnect-reason connected-since
------------ ------- ------------- ---------- -------- ----------------- -----------------
ontap9131-01 svm9131 172.17.44.156 trendmicro 19.32700 na                5/9/2024 15:59:26
ontap9131-01 svm9131 172.17.44.157 -          -        -                 -
ontap9131-01 svm9131 172.17.44.159 trendmicro 19.32700 na                5/9/2024 14:41:59
ontap9131-01 svm9131 172.17.44.162 trendmicro 19.32700 na                5/9/2024 14:41:12
4 entries were displayed.

ontap9131::>

しかし、しばらくするとPrimaryのみの表示に切り詰められてしまう。

ontap9131::> vserver vscan connection-status show-all -fields version,vendor,connected-since,disconnect-reason
node         vserver server        vendor     version  disconnect-reason connected-since
------------ ------- ------------- ---------- -------- ----------------- -----------------
ontap9131-01 svm9131 172.17.44.156 trendmicro 19.32700 na                5/9/2024 15:59:26
ontap9131-01 svm9131 172.17.44.157 -          -        -                 -
2 entries were displayed.

ontap9131::>

advanced権限で実行できる「vserver vscan show-events」で状況を確認してみると、Secondary側の接続は約10分で scanner-disconnected と出力されていた。

ontap9131::> set adv

Warning: These advanced commands are potentially dangerous; use them only when directed to do so by NetApp
         personnel.
Do you want to continue? {y|n}: y

ontap9131::*> vserver vscan show-events

Vserver     Node            Server          Event Type        Event Time
----------- --------------- --------------- ----------------- -----------------
svm9131     ontap9131-01    172.17.44.162   scanner-          5/9/2024 16:10:00
                                            disconnected
svm9131     ontap9131-01    172.17.44.159   scanner-          5/9/2024 16:10:00
                                            disconnected
svm9131     ontap9131-01    172.17.44.156   file-infected     5/9/2024 16:01:41
svm9131     ontap9131-01    172.17.44.159   file-infected     5/9/2024 16:00:55
svm9131     ontap9131-01    172.17.44.162   file-infected     5/9/2024 16:00:50
svm9131     ontap9131-01    172.17.44.156   file-infected     5/9/2024 16:00:45
svm9131     ontap9131-01    172.17.44.156   scanner-connected 5/9/2024 15:59:26
svm9131     ontap9131-01    172.17.44.159   scanner-connected 5/9/2024 14:41:59
svm9131     ontap9131-01    172.17.44.162   scanner-connected 5/9/2024 14:41:12
svm9131     ontap9131-01    172.17.44.162   scanner-          5/9/2024 14:41:12
                                            disconnected
svm9131     ontap9131-01    172.17.44.159   scanner-          5/9/2024 14:38:41
                                            disconnected
svm9131     ontap9131-01    172.17.44.159   file-infected     5/9/2024 14:37:38
svm9131     ontap9131-01    172.17.44.162   file-infected     5/9/2024 14:37:33
svm9131     ontap9131-01    172.17.44.159   file-infected     5/9/2024 14:37:29
svm9131     ontap9131-01    172.17.44.162   scanner-connected 5/9/2024 14:36:24
svm9131     ontap9131-01    172.17.44.159   scanner-connected 5/9/2024 14:34:42
svm9131     ontap9131-01    172.17.44.156   scanner-          5/9/2024 14:34:35
                                            disconnected
<略>

NetAppでデータSVMにsshの管理アクセスできるようにする

NetAppでファイルサービスを提供するデータSVMにsshで管理アクセスできるようにしてくれ、という要望があった。

普通にマネージメントLIFの管理WebからデータSVMに対して、sshユーザアクセス可能なユーザを追加してみたけど、sshでアクセスできるようになるわけではなかった。

データアクセス用のLIFに対してsshサービスが許可されていないからかな?と思って network interface service-policy の下を見てみるとshowしかなく変更ができないっぽい?

netapp9101::> network interface service-policy ?
  show                        Display existing service policies

netapp9101::>

とりあえず現状のservice-policy定義を見てみる

netapp9101::> network interface service-policy show
Vserver   Policy                     Service: Allowed Addresses
--------- -------------------------- ----------------------------------------
Cluster
          default-cluster            cluster-core: 0.0.0.0/0

netapp9101
          default-intercluster       intercluster-core: 0.0.0.0/0
                                     management-https: 0.0.0.0/0
                                     backup-ndmp-control: 0.0.0.0/0

          default-management         management-core: 0.0.0.0/0
                                     management-autosupport: 0.0.0.0/0
                                     management-ssh: 0.0.0.0/0
                                     management-https: 0.0.0.0/0
                                     management-ems: 0.0.0.0/0
                                     management-ntp-client: 0.0.0.0/0
                                     management-http: 0.0.0.0/0
                                     backup-ndmp-control: 0.0.0.0/0
                                     management-snmp-server: 0.0.0.0/0
                                     management-ntp-server: 0.0.0.0/0

          default-route-announce     management-bgp: 0.0.0.0/0

svm0
          default-data-blocks        data-core: 0.0.0.0/0
                                     data-iscsi: 0.0.0.0/0

          default-data-files         data-core: 0.0.0.0/0
                                     data-nfs: 0.0.0.0/0
                                     data-cifs: 0.0.0.0/0
                                     data-flexcache: 0.0.0.0/0
                                     data-fpolicy-client: 0.0.0.0/0
                                     data-dns-server: 0.0.0.0/0

          default-data-iscsi         data-core: 0.0.0.0/0
                                     data-iscsi: 0.0.0.0/0

          default-data-nvme-tcp      data-core: 0.0.0.0/0
                                     data-nvme-tcp: 0.0.0.0/0

          default-management         data-core: 0.0.0.0/0
                                     management-ssh: 0.0.0.0/0
                                     management-https: 0.0.0.0/0
                                     data-dns-server: 0.0.0.0/0
                                     management-http: 0.0.0.0/0
                                     backup-ndmp-control: 0.0.0.0/0
                                     management-snmp-server: 0.0.0.0/0
netapp9101::>

LIF のサービスポリシーを設定」を見るとadvanced権限であれば変更できるらしい

とりあえずsvm0の「default-data-files」に「management-ssh」を追加してみた。

netapp9101::> set advanced

Warning: These advanced commands are potentially dangerous; use them only when
         directed to do so by NetApp personnel.
Do you want to continue? {y|n}: y

netapp9101::*> network interface service-policy add-service -vserver svm0 -policy default-data-files -service management-ssh

netapp9101::*> 

変更した結果が反映されているかを確認

netapp9101::*> network interface service-policy show -vserver svm0 -policy default-data-files

                   Vserver: svm0
               Policy Name: default-data-files
         Included Services: data-core, data-nfs, management-ssh,
                            data-fpolicy-client, data-dns-server
Service: Allowed Addresses: data-core: 0.0.0.0/0
                            data-nfs: 0.0.0.0/0
                            management-ssh: 0.0.0.0/0
                            data-fpolicy-client: 0.0.0.0/0
                            data-dns-server: 0.0.0.0/0

netapp9101::*>

これでsvmのデータLIFにsshでログインできるようになった

NetAppのstart-time/end-time指定は役立たずなのでは?

NetAppのsnapmirror履歴を見るため「snapmirror show-history」を実行すると、長々と出力される。

調べるとsnapmirror show-historyには下記の指定ができるようだった。

[-start-time <MM/DD/YYYY HH:MM:SS>] – Start Time
Select SnapMirror operations that have a matching start time.

[-end-time <MM/DD/YYYY HH:MM:SS>] – End Time
Select SnapMirror operations that have a matching end time.

なるほどー、と思って、2022/12/21 15:00:00以降の履歴と思って実行してみると・・・

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:00:00"
There are no entries matching your query.

netapp9101dr::>

何も無い・・・

引数無しで実行するとある

netapp9101dr::> snapmirror show-history

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:25:00 12/21/2022 15:25:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:15:00 12/21/2022 15:15:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:05:00 12/21/2022 15:05:04 success
<略>
netapp9101dr::>

まさかと思って、結果に表示された時刻を指定してみる・・・

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:05:00"

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:05:00 12/21/2022 15:05:04 success

netapp9101dr::>

1秒でもずらすと表示されない

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:05:01"
There are no entries matching your query.

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:04:59"
There are no entries matching your query.

netapp9101dr::>

マニュアル記述をよく見てみると「Select SnapMirror operations that have a matching start time」とあり、一致したものという限定だった

日時を指定しないで実行出来るか試してみる・・・

netapp9101dr::> snapmirror show-history -start-time 12/21/2022 

Error: "12/21/2022" is an invalid value for field "-start-time <"MM/DD/YYYY
       HH:MM:SS">"

netapp9101dr::>

?や*で指定はできるか、も試したが駄目だった

netapp9101dr::> snapmirror show-history -start-time 12/21/2022  ?

Error: "12/21/2022" is an invalid value for field "-start-time <"MM/DD/YYYY
       HH:MM:SS">"

netapp9101dr::> snapmirror show-history -start-time 12/21/2022 *:*:*
There are no entries matching your query.

netapp9101dr::>

じゃあ、出力数を制限する他の方法はないのかなーとsnapmirror show-historyのexamplesを見たら「snapmirror show-history -max-rows-per-relationship 1」を実行すると、snapmirror関係ごとに1個だけ表示するよ、とのこと

じゃあ、最近の4件表示と実行してみたところ、目的を達成したという感じとなった。

netapp9101dr::> snapmirror show-history -max-rows-per-relationship 4

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:25:00 12/21/2022 15:25:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:15:00 12/21/2022 15:15:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:05:00 12/21/2022 15:05:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 14:55:00 12/21/2022 14:55:04 success
4 entries were displayed.

netapp9101dr::>

aliexpressでM.2 2242サイズのSATAとNVMeを買ってみた

KingSpec M.2 NVMe 2242サイズ編

Orange Pi 5にM.2 NVMeの2242サイズが搭載できる、というのでaliexpressで探してみた。

KingSpecというところでM-keyのNVMe 512GBが$34.54というお値段だったので買ってみた。

KingSpec M.2 SSD M2 NVME 128GB 256GB 512GB 1TB Ssd M.2 PCIe 3.0 Drive Solid SSD Disk NMVE Hard Drive 2242 for Notebook Desktop

2022/11/19に発注して、2022/12/04到着。

両面にシールが貼ってあるタイプだった

まだOrange Pi 5は届いてないので、外付けケースを使って全領域書き込み/読み込みテストを行い、容量偽装はないことは確認済

M.2 SATA 2242サイズ編

FUTRO MU937がM.2 SATA 2242サイズだったので、aliexpressで探してみた

KingSpec M.2 SATA 512GB $30.04
GUDGA M.2 SATA 512GB $28.20

2022年12月10日に別のセラーにそれぞれ発注入れたら、どちらもAliexpress Standard Shipping→クロネコ配送で12月17日に到着しました。

箱はNVMe/SATAと2280/2242共通でシールによってわけている感じですね。

中身は、てっきりどちらも同じ基板かと思ったのですが、異なる基板でびっくりしました。

どちらも容量偽装はなくきちんと書き込みが出来ています。

耐久度や速度については気にしていません・・・

書き込みテストの仕様について

さすがに容量偽装はないだろう、と思ったものの F3 – Fight Flash Fraud というのを使って全領域に対する書き込み/読み込みテストを実施しています。

ファイルシステムはLinuxからアクセスできればなんでも良いようで、NTFSとext4で動かしてみたことがあります。

今回は該当M.2をUSB接続の外付けケースに入れた上でWindows 11でパーテーションを切ってNTFSでフォーマットしてから、Ubuntu 20.04マシンにさして「./log-f3wr ログファイル名.txt /mnt/test/」 という感じで実行しています。

Ubuntu 20.04マシンの性能があまりよくないので、たぶん、そこで速度上限がかかってると思われます。

その結果・・・ついでに最近計測した他のSSDも掲載

メーカ製品書き込み速度読み込み速度
KingSpecM.2 NVMe 2242 512GB23.16 MB/s37.54 MB/s
KingSpecM.2 SATA 2242 512GB21.50 MB/s39.51 MB/s
GUDGAM.2 SATA 2242 512GB23.09 MB/s39.54 MB/s
WINTEN2.5インチ SATA WT200 1TB29.67 MB/s40.08 MB/s
WINTENM.2 SATA 2280 512GB21.98 MB/s39.53 MB/s
IntelM.2 NVMe 2280 760p 256GB25.16 MB/s38.67 MB/s

まあ、たぶん使用した機器の上限速度っぽいが出てる感じですね。

Windows ServerからNetAppに対してsshでコマンドを実行させる

Windows Server 2019からNetAppに対してsshを実行するにはTeraTermやputtyをインストールしないとダメなのかなぁ、と思いつつ、PowerShellで「ssh」と実行してみると、OpenSSH 7.7p1がインストールされていた。

PS C:\Users\Administrator> ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]
PS C:\Users\Administrator> ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
PS C:\Users\Administrator>

じゃあ、Windows ServerからNetAppに対してタスクスケジューラから何らかの処理を実行させることが可能なのか、ということで手法検討

Windowsサーバ上で鍵作成

まずは、ONTAPに公開鍵認証でログインするための設定を実施

「ssh-keygen」コマンドを実行して、鍵を作成

PS C:\Users\Administrator> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa):
Created directory 'C:\Users\Administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa.
Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Eomw4OJ5tGv2Nx0HkGCeaRT5PxBU3krAixd96aCIkJU administrator@WindowsServer
The key's randomart image is:
+---[RSA 2048]----+
|. +..=*o+.  .    |
|.+ E+ooBoo.o     |
|..o.o=* *o+.     |
|o o.oo B....     |
| o o  o S..      |
|  . .  . + .     |
|   +    . +      |
|  o .  o .       |
|     .. .        |
+----[SHA256]-----+
PS C:\Users\Administrator>

実行したユーザのホームディレクトリに.sshディレクトリが作成され、id_rsaとid_rsa.pubが作成された。

このうち使うのはid_rsa.pub の中身

「notepad .ssh\id_rsa.pub」などを実行して内容を確認する。

NetApp上に公開鍵でログインできるユーザを設定

次にNetAppにログインして、現在のユーザ一覧を確認する。

「security login show -vserver クラスタ名」を実行する。

netapp::> security login show -vserver netapp

Vserver: netapp
                                                                 Second
User/Group                 Authentication                 Acct   Authentication
Name           Application Method        Role Name        Locked Method
-------------- ----------- ------------- ---------------- ------ --------------
admin          console     password      admin            no     none
admin          http        password      admin            no     none
admin          ontapi      password      admin            no     none
admin          service-processor
                           password      admin            no     none
admin          ssh         password      admin            no     none
autosupport    console     password      autosupport      no     none
6 entries were displayed.

netapp::>

現状は公開鍵認証(publickey)でログインできるユーザが設定されていません。

現状あるadminユーザに対して、公開鍵認証でもログインできるように設定するには「security login create -user admin -application ssh -authentication-method publickey -role admin」と実行します

netapp::> security login create -user admin -application ssh -authentication-method publickey -role admin
Warning: To use public-key authentication, you must create a public key for user "admin".

netapp::>

上記で警告が出ていますが、これは現状該当するユーザ用の公開鍵が登録されていないためのものです。

再度「security login show -vserver クラスタ名」を実行すると、publickeyの登録が増えていることが確認出来ます。

netapp::> security login show -vserver netapp

Vserver: netapp
                                                                 Second
User/Group                 Authentication                 Acct   Authentication
Name           Application Method        Role Name        Locked Method
-------------- ----------- ------------- ---------------- ------ --------------
admin          console     password      admin            no     none
admin          http        password      admin            no     none
admin          ontapi      password      admin            no     none
admin          service-processor
                           password      admin            no     none
admin          ssh         password      admin            no     none
admin          ssh         publickey     admin            -      none
autosupport    console     password      autosupport      no     none
7 entries were displayed.

netapp::>

次に公開鍵を登録するので、まずは現在の公開鍵登録状況を「security login publickey show」を実行して確認します。

netapp::> security login publickey show
This table is currently empty.

netapp::>

上記の場合はまだ何も登録されていません。

ここで先ほど作成したid_rsa.pubの中身を登録します。

「security login publickey create -username admin -index 0 -publickey “<id_rsa.pubの中身>”」

netapp::> security login publickey create -username admin -index 0 -publickey "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYShjYkl1hs/JlSSayuyAeL/5zlmGCQ15Z0c1BiJ8Hi3/fjEM0IjuJme19J1xM5M9UpdvdI2SA/Vtanidfwx231d2pXsveniT4H3OJApgKRTE7xtsjAtg1El2rNbm0C7qgMw4p0tsjp2ZSAY2QkQBoUzgBfTfOYWWR6V+D3PyU9N9AF9VIqB6d+yEDxg9GOe76ILzKB9Wo3F8t0p+OtGU9C1gAAPndvoV+7yepoS2DSu8ft8mRGL6aTFQDMbhqEYPKZx2Gx2XqfnZA1bFggntsWWtg3TGLmCOww8RLd0CIhMfl8aJJuTmjjDJh3tN9BZx9kNjj6yF8Irxjntih9ejH administrator@WindowsServer"

netapp::> security login publickey show

Vserver: netapp
UserName: admin            Index: 0
Public Key:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYShjYkl1hs/JlSSayuyAeL/5zlmGCQ15Z0c1BiJ8Hi3/fjEM0IjuJme19J1xM5M9UpdvdI2SA/Vtanidfwx231d2pXsveniT4H3OJApgKRTE7xtsjAtg1El2rNbm0C7qgMw4p0tsjp2ZSAY2QkQBoUzgBfTfOYWWR6V+D3PyU9N9AF9VIqB6d+yEDxg9GOe76ILzKB9Wo3F8t0p+OtGU9C1gAAPndvoV+7yepoS2DSu8ft8mRGL6aTFQDMbhqEYPKZx2Gx2XqfnZA1bFggntsWWtg3TGLmCOww8RLd0CIhMfl8aJJuTmjjDJh3tN9BZx9kNjj6yF8Irxjntih9ejH administrator@WindowsServer
Fingerprint:
SHA256:Eomw4OJ5tGv2Nx0HkGCeaRT5PxBU3krAixd96aCIkJU
Bubblebabble fingerprint:
xobov-gyvaf-hokad-pukun-leper-henuc-tihyn-haban-pybom-defel-cyxyx
Comment:
-

netapp::>

登録されました

Windowsサーバからのsshアクセス試験

ではWindows Sevrer上から「ssh admin@IPアドレス “NetAppのコマンド”」を実行してみます。

PS C:\Users\Administrator> ssh admin@172.17.44.55 "system node show"
The authenticity of host '172.17.44.55 (172.17.44.55)' can't be established.
ECDSA key fingerprint is SHA256:Hx4oFf3c4GUnc/HxpK4X1U6Um7M2a+hG4JdUAtFi4Hc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.44.55' (ECDSA) to the list of known hosts.

Last login time: 12/13/2022 18:31:20
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
netapp-01 true true       1 days 07:30 SIMBOX

PS C:\Users\Administrator> ssh admin@172.17.44.55 "system node show"

Last login time: 12/13/2022 18:55:35
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
netapp-01 true true       1 days 07:30 SIMBOX

PS C:\Users\Administrator>

初回ログイン時は、sshキーの登録について確認されますが、それ以降はコマンドがすぐに実行できました。

バッチファイル&タスクスケジューラ実行試験

タスクスケジューラからコマンドが実行できるかを確認してみます。

まずはNetApp内の時刻を確認し、それを保存するバッチファイルを作成します。

@echo off 
ssh admin@172.17.44.55 "date" >> c:\tmp\command.txt

これをタスクスケジューラに登録してログアウト。

指定時間経過後にファイルを確認してみます。

PS C:\Users\Administrator> type C:\tmp\command.txt

Last login time: 12/13/2022 19:00:13

Node      Date                     Time zone
--------- ------------------------ -------------------------
netapp-01
          Tue Dec 13 19:05:11 2022 Japan

PS C:\Users\Administrator> 

きちんと実行されて、ファイルが作成されていました。