3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cloudflare accessを使ってセキュアにRDPした話

Posted at
  • 最初のいろいろ
  • そもそも cloudflare zerotarstってなんぞ?
  • RDPをセキュアにするやり方

はじめに!

初心者が記事を書いているため間違っている部分があると思いますが温かい目で見守っていただけるとありがたいです。(この記事の内容を試す際は一応自己責任でお願いします

最初のいろいろ

リモート環境でアプリケーション開発をする際に大切なのは何でしょうか~。物理マシンのスペックも大切だと思いますが、私的にはその開発環境をいかにセキュアに保つかだと思っています!今回は、開発環境をセキュアに保つ方法の一つcloudflare zerotrastのaccessを紹介します

そもそも cloudflareってなんぞ?

cloudflare はかなりの人が知っていると思いますが、一応紹介。

Cloudflareは、インターネット上で運営されている最大のネットワークの1つです。ユーザーは、Webサイトやサービスのセキュリティとパフォーマンスを向上させる目的でCloudflareサービスを利用しています。(公式サイトより

webサイトの読み込みをキャッシュサーバーを用いて高速化させてくれたり、
DDOS対策をしてくれたりと便利な機能盛沢山。(cloudflare最高!

cloudflare zerotrust access

従来型VPNの強化または代替になります。Zero Trustでアプリケーションセキュリティを最新化します。

アプリケーション、オンプレミスのプライベートネットワーク、パブリッククラウド、SaaSのどの環境でも、拒否をデフォルトとするZero Trustルールをユーザーに適用します。
VPNより高速かつ安全にユーザーを接続し、IDプロバイダーやエンドポイント保護プラットフォームと柔軟に統合します。Freeプラン(最高50人のユーザーが対象、無期限)をお試しください。(公式サイトより

https://www.cloudflare.com/ja-jp/products/zero-trust/access/
簡単に言うとサーバーに専用ソフトを入れて、簡単なセットアップをすればVPNの代わりをできます。ngrokの無料枠を増やした版です。50人まで無料なので個人で使うのにも適しています。

じゃ、セットアップしてこ~

RDPをセキュアにするやり方

必要なものリスト

  • cloudflareのアカウント

  • cloudflareで使える独自ドメイン

  • xrdpが導入済みのubuntuサーバー (ほかのosでもできます

以上!

サーバー側の作業

準備ができたら、RDPしたい先のサーバーにsshしてcloudflaredをインストールします.
以下のサイトより自分の環境にあったものをインストールしてください

インストールができたら、

cloudflared tunnel create 好きな名前

このコマンドを使用して、configファイルを作成します。この時UUIDが出力されるのでこれをコピーしておきます。
(消してしまってもcloudflareのダッシュボードから取得できますが、少し大変なので確実にコピーしてどこかにメモしておきましょう)

作成したconfigファイルは ~/.cloudflaredにあります。

configファイルを編集します。今回エディターはnanoを使用していますが、nanoである必要はないです。

cd ~/.cloudflared

nano config.yml

そして内容を

tunnel: UUID
credentials-file: ~/.cloudflared/UUID.json

ingress:
  - hostname: 自分が設定したいURL
    service: tcp://localhost:ポート番号
  - service: http_status:404

UUIDは先ほどコピーしたものにおきかえてください。

そして最後の

- service: http_status:404

は確実にいれてください。(入れないと動きません

できたら保存して

cloudflared tunnel route dns UUID 指定したURL

を実行します。

これを実行することでcloudlfare側でいい感じにDNSを変更してくれます。

それができたら

cloudflared tunnel run 

をしてトンネルを開通させます。

エラーが出ないことを確認して、いったん終了させます。

sudo cloudflared --config ~/.cloudflared/config.yml service install
sudo service cloudflared start

ubuntuのサービスに追加して自動起動設定をしてサーバー側の作業は終了です。

クライアント側の作業

クライアント側にもcloudflaredを入れます。自分の環境にあっているものをインストールしてください。

%[https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/]

インストールが終わったら、

cloudflared access rdp --hostname URL --url rdp://localhost:クライアント側で空きがあるポート番号

を実行してトンネルに接続します。

これでクライアント側の作業も終了です。

cloudflareでの設定

これをしないとURL分かれば誰でもログインできるようになってしまうので注意!

cloudflareのzerotrustのページに行き、applicationsタブからself hostedを選択。

image.png

application nameは自分がわかりやすい名前を

applicaton domainは先ほど設定したURLを指定します。

出来たらnextボタンをクリック

image.png

アクセスできるユーザーを絞りこみます。

出来たらnextボタンをクリック

image.png

色々出てきますが add applicationをクリック。

設定は終了です。お疲れ様でした!

いよいよ接続

各自使いたいRDPクライアントを使用してください。今回はwindowsのデフォルトクライアントを使用します。

image.png

アドレス指定では先ほどクライアント側で指定したlocalhost:各自で設定したポート番号

を使用します。接続を押してしばらくするとwebブラウザーが自動的に開いてログインを求められます。ログインを完了するとRDP接続ができているはずです。

今回の作業終了!

まとめ

今回はcloudflare accessでRDPする方法を書いてみました。初めて書いたのでよくわからない部分が多くあると思います。(すみません。(__)

今回はRDPでやりましたが、ホームページをポート開放なしで公開できたり、sshとvncに関してはwebブラウザー上で動かすことができます。気が向いたらその解説もしようかなと思いつつ今日はここまで。ぜひコメントも残してください!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?