読者です 読者をやめる 読者になる 読者になる

exlar's IT note

ITやスマートデバイスを中心とした趣味情報の寄せ集め

安全にリモート接続!TeamViewerでセキュリティ最優先の設定

自宅では基本席にMac生活なのですが、Windowsでしかできないソフト利用も一部あり、仕方なく仮想マシンとしてWindowsを起動しています。今まではMacでMicrosoft純正の「Microsoft Remote Descktop」を利用していたのですが、MSパッチの都合でRDPに不具合が発生してしまい、代替方法を検討しました。

結論を先に記すと、TeamViewerでいいかなって思いました。小生はTeamViewerのような第三者設備を経由する仕組みが嫌い(気持ち悪い)で極力避けるようにしているのですが、設定次第でそこそこ安全に使えるかなと思ったので、利便性とのバランスが良いと感じています。

Microsoft Remote Descktop 代替の選定

まず、定番のVNCでいいかなと思って数年ぶりに「UltraVNC」を利用。ある程度の操作はできるのですが、テキスト入力が非常に不安定で、なぜかVNCの画面転送が止まってしまいます。

  • Windows側環境: Windows 7 (64bit), UltraVNC, 既にTeamViewerも存在
  • Mac(Client)環境: Chicken of the VNC

競合しているのかもしれませんが、あまり本気でないところの事象切り分け・深堀をするのが面倒だったので、さっさと次を探すことにしました。次に、稀に外出先から繋げられるようにインストールをしておいたTeamViewerをもっと安全に使えないか?という方向で検討をはじめます。

TeamViewerをセキュアに利用する設定

ソフトウェアそのものの安全性は、公式ページの情報を鵜呑みにすると、セキュリティ要求の高い銀行でも採用されている実績などを踏まえると信用してよいと考えられます。(信じるしかない、とも言う)

TeamViewerは「使用中のID」「パスワード」「個人的なパスワード」「サインイン用のID(電子メールアドレス)」など、いろいろあってわかりにくいです。小生も完全には理解していませんが、この複雑さは第三者から接続して支援してもらうようなシーンも想定されていることが要因と考えられます。

自分だけがセキュアに使う前提ならば、もっとシンプルに考えられます。以下考え方を記載します。

目指すTeamViewerリモートアクセス環境

以下のポリシーで検討します。

  • 自分だけが使えればいい
  • 何より安全(セキュア)を優先して考えたい
  • 自宅内(同一LAN)でリモート接続する場合はインターネット経由にしたくない

これらが目標となります。

先ほどいろいろなID/パスワードがあると記載しましたが、上記のポリシーに当てはめると次のように使い方を整理できます。

設定項目 利用方法
使用中のID 遠隔操作受付用。本来、他人からの接続を受け付ける時などに相手へ教える情報となるが、自身での利用に限れば不要。設定上無効にはできないので無視することになる。
パスワード ^
個人的なパスワード 該当デバイスへのリモート接続時に入力するPW
WebサインインID(メアド) アカウントへのログインに利用。アカウントには複数端末がひも付き一覧化されるので、それを選択することでリモート接続できる。かつホワイトリストで接続元を限定する際にも利用(詳細後述)
WebサインインPW ^

part1: ここは絶対にやっておきたい!設定

TeamViewerはもともと他人からも接続しやすいようになっているので不安が残ります。そこで、下記の通り二重の対策で他人からの接続リスクを最小限にします。

  1. TeamViewerをインストールした端末へのリモート接続は、許可したアカウントでしか許可しない設定とする(ホワイトリスト)
  2. 遠隔操作受付用のパスワードは最もセキュリティレベルが高い設定とする(※ホワイトリストにした時点で事実上意味はなくなりますが念のため)
  3. 個人的なパスワードもそれなりの強度にしておく

1のホワイトリスト設定が最も重要なところで、ここさえ守れればその他は補足的なものになりますが、しっかりやるに越したことはありません。

141025-0004

パスワードのセキュリティは「非常に安全(10文字)」を選びます。また、最下部の「設定」ボタンからホワイトリスト設定を行います。

141025-0005

自身のアカウント(Webサインインのメアド)を入力して接続を限定します。

141025-0003

遠隔操作用のパスワードは、見ての通り記号を含む強固なものになっています。

part2: 必須ではないけど可能ならばやりたい!設定

part1でどんなに遠隔操作対策をしたところで、肝心のアカウントが乗っ取られては意味がありません。ここのパスワードを強固にしておくのは当然ですが、加えて二段階認証もやっておくとベストでしょう。

二段階認証は、Google, Evernoteなどと同様の一般的な方法(Google認証アプリ)が利用可能です。別の話題になりますが、Google認証アプリは1デバイスにしかインストールできないため、複数デバイスでワンタイムコードを確認できるAuthyアプリもお勧めです。

141025-0001_2stp

141025-0002_2stp

自宅内での利用の場合はLAN接続で高速化

これが結構びっくりしたのですが、TeamViewerでは接続先としてLAN内のIPアドレスも指定できるようです。てっきりインターネット経由が必須だと思い込んでいたので非常に有り難い。

LAN接続を許可するには、「受信LAN設定」の項目を同意としておく必要があります。

設定項目 動作
非アクティブ化済 LAN接続はできず、インターネット接続のみになる
同意 LAN接続とインターネット接続が共存できる
同意のみ LAN接続しか許可しない

141026-0001

141025-0006_lan

余談:徹底的にセキュリティを追い求める場合

自宅へのVPN接続+RDP/VNC等でのリモートアクセスがベストでしょう。しかし、ガチガチすぎるが故に利便性の低下は否めません。

  1. 外出先のスマホからリモート接続したいと思った場合、一度VPN接続をしたうえでRDPアプリの起動を行うので、一手間多い
  2. VPN接続時のバッテリ消費は少なからず早くなる
  3. RDP接続先のブラウザでFlashのページ(艦これなどのFlashゲームなど)を表示すると、かなりカクカクして話にならない(TeamViewerだと割と快適。RDPの問題であって、VNCでは問題ないかもしれない)
  4. そもそも、VPN接続用のLinuxサーバを建てるのも面倒。VPN可能なルーターを買ってもよいが、製品縛りが発生してしまうので嫌。

これらは、実際にこの環境で運用を続けてきて常々思っていた不満でもあります。致命傷とまではいかなかったのでそのまま使い続けていましたが、今回RDP接続が不良になったのを機に完全に見直すこととしました。

TeamViewerの場合はそれぞれの環境にアプリをひとつインストールするだけなので非常に楽ですね。本記事に示したとおり、セキュリティを意識した設定を行えばそれなりに安全ですので、この選択肢は非常にアリだと思いました。