走り書き

ちょこっとしたメモを残してく。 

CloudFlare AccessでRDPを使う

CloudFlare Accessは、めんどくさい。それと、競合としてDesktopVPNがあるけど、httpsに絞られてて勢いよくプロキシを抜けていく。なので、お金で済むならDesctopVPNシン・テレワークシステムでよいし、大半は事足りる。

なのですが、なぜCloudFlare Accessでするのかと言えば、面倒だけど、安いし、台数増やせる。webのトンネルは、メインフレームオフコン直結ediとかWebedi、idpが挟められないスクラッチオンプレシステムでもセキュアなトンネルを比較的簡単に組めるので、これはおすすめ。

それらの基礎トレーニングとして、CloudFlare AccessでRDPを組むのが、仕組み知るのにお手軽じゃないのと。でも、最初に成功したのは、Webなのよね...。SMBもできるのだけど、こっちは、接続元のSMBのポートを変更するのが大変なのと、用途としては、もうちょつと広げたスプリットトンネルで構築してもらうのがよろしいのと、RDP(リモートデスクトップ)は、SSHポートフォワーディングのような接続形態でした。

 

1.ドメインの設定

面倒だったので、改めて安いドメインを取得、CloudFlareにお任せしました。
2.こちらのドキュメントをベースに設定
3.Cloudflare Dashboardにログイン
4.Access/Tunnelsに移動して、 「Create a tunnel」をクリック
5.「Name your tunnel」に名前を付けて、右下の「Save tunnel」をクリック
 機能の位置づけとしては、セグメント名かブリッジになるホスト名あたりが無難

6.Hostの設定

これ(https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi)しインストール、その後トークンも仕込む。完了すると、トンネルをCloudflareに接続します。

ブリッジのようにすることも、マシンに単位にすることも可能。24/365稼働のwindowsマシンがあるので、windowsの64版をダウンロードし、クリックしてインストール。

インストール完了後、管理者権限でCMDかターミナルを開いて、次のコマンドをというところをコピー、CMD、ターミナルに貼り付けして実行すると、サービスとして稼働する。完了させて、「Next」で次へ。

アンインストールしたい場合は、再度このコマンドを実行すると。メッセージ内にアンインストールコマンドを表示される。それをコピペして実行すると、アンインストールが可能。
7.「Public Hostnames」を設定します。
「Subdomain」に適当な名称を入れ(接続先URLになります)、またドメインを選択。
Serviceは、ホスト側ブリッジする側になるので、「rdp:l//ocalhost:3389」とすれば
コネクタインストール先のPCにリモートデスクトップとして接続が可。
「rdp://192.168.0.100:3389」とすれば、ブリッジして192.168.0.100へリモートデスクトップしに行く。入力が終わったら「Save tunnel」をクリックして保存。

8.認証の設定

この状態でも接続はできるみたいですが、認証が設定されてないので
Access/Applications」にてApplicationsに進み、「Add an application」をクリック。
9.選択画面から「Self-hosted」を選んで、「Application name」に機能名。
「Application domain」は、Public Hostnamesで設定したSubdomainと、ドメインを選んで、「Next」で次へ。

10.「Policy name」に適当な名前を入力。Configure rulesで、emailsにして特定のメールを入力すると、マジックリンクになるので、「Next」を選んで、次の画面でも
「Save application」を選んで保存。ホスト側はこれで完了なので、接続元のPC設定。

9.接続元の設定

こやつの「2. Connect as a user」からcloudflaredをダウンロード。インストールすると環境変数にパスが登録されるので、次のコマンドをCMDかPowershellの環境かターミナルから実行(書いてて思ったが、zabbixのssh経由で起動してもよさそうね)。
cloudflared access rdp --hostname dojima336.example.com --url rdp://localhost:5589
※hostnameは、「Public Hostnames」にて設定した「Subdomain」とドメイン

    --urlは、転送元の接続先お名前かipとportを指定

    (port:3389にすると頃がいてるPCがwindowsならportが重複してるかも)。
10.コマンドを実行すると黒画面が出続けるので、リモートデスクトップを起動して、上のコマンドだと「localhost:5589」を入力して接続。黒画面はどこか適当なところにウインドウをよけておいて(閉じるとトンネルは終了する)、ブラウザが開いて、マジックリンクの認証画面が表示されます。

指定したメールアドレスを入力して進めると、入力したメールアドレスにパスコードがくるので、手入力すると、リモートデスクトップがつながります。
11.終了

切断は、.終了はリモートデスクトップを切断するのと、黒ウインドウの×をクリックしておしまいです。

 

スプリットでのトンネルやSMB,http(s)のトンネルもできるのが、DesktopVPNを選ばない理由になるのかな。httpに関しては、サイボーズリモートサービスなどと競合しそうだが、それと同等なことが、お手軽にできるのと。MDMや企業の親子関係の関係で、iphoneに証明書が配れないとか、接続ができないケースがあれば、こちらを利用するのも選択の1つとして増えるんじゃないのかしらと。

ただし、CloudFlare AccessがURLフィルターに引っかかったりするので、小さく始めたいところにはお勧めですが、大規模にとなるとオンプレで組んでもよいんじゃないっすか。それが面倒だから、いろいろと探すんだろうけど...。お疲れさまでした。以上です。

 

宿題

なので、httpとスプリットトンネルも確認したいのと、zabbixでいい感じに関ししたいけど、アクセスログどうなんだろうね。そっちのほうがきになったが、未着手なのよね。