POLESTAR Automation V3が「公開鍵認証」に対応!

2020年7月27日

ワイドテック プロダクト企画のYです。

「ラズパイ」ことRaspberry Piの小型版「Raspberry Pi Zero WH」を買ってみました。
ラズパイは自宅や実家で数台が全部違う目的で稼働中、社内でもテストやデモ用途で活躍中なのですが、これまで自分が触ったものはすべてクレジットカードサイズと呼ばれるModel B系統でしたので、Zero系統は自分にとっては初めてです。
Zero WHを購入した目的は、センサーのデータを現在製品化準備中のIoTプラットフォームに送り込むテストを、より小型で低価格なZero WHでやろうとしているからなのですが、肝心のプラットフォーム本体も外からの接続に必要なハードウェアもまだ揃っていないので、取り急ぎ1,000円以下で買える温湿度センサーを用意し、まずは社内のPOLESTARテスト用ネットワーク(LAN)に接続、POLESTAR Automationのジョブを使ってデータを取ってみることにしました。

ラズパイZero WHと税込899円の温湿度センサー。サイズ比較によく使われるのはフ○スクですが、あえてミ●ティアで。ハードな刺激感!!

ラズパイZero WHと税込899円の温湿度センサー。サイズ比較によく使われるのはフ○スクですが、あえてミ●ティアで。ハードな刺激感!!

■V3が「公開鍵認証」に対応しました

今回はまず、POLESTAR Automation V3がv3.0.8から待望の「公開鍵認証」に対応したお話からです。対象はSSHを用いるエージェントレスやネットワーク機器で、ジョブ実行に必要なログイン認証を公開鍵方式で実行できるようになりました。

従来、サーバー等へのログイン認証というと、IDとパスワードを組み合わせる方法でセキュリティを担保する、伝統的な方法が採られてきました。
しかし、数字や文字の羅列で構成されるパスワードは、それ自体が盗まれるなどの物理的な奪取に遭わなくても、文字列を自動生成し、手当たり次第に侵入を試みる「ブルートフォース攻撃(総当たり攻撃)」でたまたまヒットしたパスワードにより攻撃・侵入される可能性がないとは言えません。
対策として、文字列を長くしたり、大文字/小文字の区別や数字・記号などの組み合わせで複雑化することが行われていますが、複雑なパスワードはブルートフォースには強くても人間には覚えづらく、いざ必要な時に忘れてしまってログインできなかった、という本末転倒なケースも少なくないようです。
また、実際の侵入には至らなかったとしても、例えばSSHで標準(Well-Known Port)となっているTCP 22番ポートが空いていると攻撃の対象になりやすく、連続した執拗なアタックが繰り返されることでサーバーに負荷が掛かったり、大量の不要アクセスログが発生して管理の手間を煩わせたりする原因となります。

こうしたパスワードの問題点を克服すべく、パスワードに代わる認証手段がいくつか考案されていますが、公開鍵認証はその中でも代表的なものでしょう。
公開鍵認証は「公開鍵(Public Key)」と「秘密鍵(Private Key)」という、2種類の「鍵」と呼ばれる情報を照合することで、認証を行う方式です。公開鍵はログイン先(ログインされる側)のサーバーなどに保存されている鍵で、秘密鍵はログイン元(ログインする側)がファイルなどの形で保持する鍵です。公開鍵はログイン先で、秘密鍵を持ったログイン元からのログイン要求が行われるたびに、毎回暗号化されてログイン元に渡されます。ログイン先から受け取った公開鍵情報がログイン元の秘密鍵情報と一致すれば、認証が成立します。

パスワードログインを禁止し、パスワードプロンプトを出さないようにすれば、ブルートフォース攻撃の影響も抑制できます。
また、長いパスワードを覚える必要もなくなるので、一旦設定してしまえばパスワードログインより容易にログインできます。
今では、いわゆる3大パブリッククラウドや有名VPSサービスなど、クラウドでサーバーを貸すサービスの多くで公開鍵認証が基本となり、パスワードログインへの切り替えを禁止しているところもあります。

と、いうわけで、弊社の業務や自分個人の私的なものも含め、利用中のクラウドやVPSの全てに公開鍵認証を設定していることもあり、POLESTAR AutomationがV3でエージェントレスに対応することが決定した時点で、開発元に公開鍵認証への対応を要望していたのですが、今回ようやく実現したものです。 下のスクリーンショットは、前述のラズパイZero WHをエージェントレスサーバーとして登録した際のログイン設定です。

前述のラズパイZero WHをエージェントレスサーバーとして登録した際のログイン設定

最下部に「SSHクレデンシャル」という項目が追加になりました。POLESTAR Automation V3におけるSSHクレデンシャルとは、公開鍵認証に必要なプライベートキー(秘密鍵)とログインIDなどの情報を含む設定を指し、それ自体は「管理者」-「システム管理」の下に新設された「クレデンシャル管理」メニューから登録します。
一方で「パスワード」欄が空白になっています。公開鍵認証ですので、パスワードは不要です。

なお、エージェント方式の場合は、エージェントを管理対象サーバーに管理者権限でインストールすることで、POLESTAR Automation管理サーバーとの通信やコマンドの発行・ジョブ実行が可能な状態になりますので、もとから認証やパスワードの存在を意識する必要はありません。

■ラズパイ+POLESTAR Automationで温度・湿度測定のプチIoT

POLESTAR Automationとラズパイといえば、Raspbian OSで動くエージェントもあるのですが、せっかくエージェントレスでの公開鍵認証に対応したので、SSHクレデンシャルを作成してPOLESTAR Automationの管理サーバーに登録した上で、今回購入した温湿度センサーで10分ごとに温度と湿度を測定するジョブを作り、走らせてみました。
作成手順は今回は省きますが、POLESTAR Automation自慢の「ジョブ作成ウィザード」を使ってエージェントレス用のスクリプトジョブを作り、温湿度センサーのサンプルプログラムを動かすためのコマンドを1行入れただけの、超シンプルなものです。

作成したジョブは、こんな風に登録されます。

作成したジョブは、こんな風に登録されます。

ジョブの基本情報です。エージェントレス用のジョブですので「エージェントレス」にチェックが付いています。

ジョブの基本情報です。エージェントレス用のジョブですので「エージェントレス」にチェックが付いています。

スクリプトです。といっても、黒背景部分の、たった1行だけです。

スクリプトです。といっても、黒背景部分の、たった1行だけです。

ジョブの実行結果です。

ジョブの実行結果です。Temp=27.1* Humidity=45.6% とあるのがおわかりでしょうか。
ちなみに、これは弊社オフィスの窓際にある実験用テーブル上の温度と湿度です。

今回はLAN上で動かしていますので、このコラムを書いている自席のPCから数mしか離れていない場所での測定ですが、機材が揃ったらもう少しIoTらしく、離れた場所に置き、SORACOM Air SIMを使って3GかLTEで接続してみたいと考えています。

■最後にちょっとだけ、Coming Soon!

と、このコラムを書いている間に、POLESTAR Automation V3のビッグマイナーチェンジとでも呼ぶべき、多数の新機能追加の情報が入ってきました。
V3をリリースしてこの9月で1年になりますが、その頃には大幅に機能強化された新バージョンのお知らせができそうです。
もちろん、今すぐ導入を決めていただいても、アップデートは無償で提供させていただきます。評価版も公開鍵認証対応を含めて新しくなっていますので、どうかお試しの上、お気に召したら本番導入やPoCをご検討いただければ幸いです。