Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

SMB

最終更新 Markdown で表示Agent セットアップ

Server Message Block(SMB)プロトコルは、ネットワーク上の共有リソースへの読み取り、書き込み、アクセスを可能にします。セキュリティ上のリスクがあるため、ファイアウォールや ISP は通常、SMB ファイル共有への公開接続をブロックします。Cloudflare Tunnel を使うと、ネットワーク外のユーザーにも安全で簡単な SMB アクセスを提供できます。

Cloudflare Zero Trust では、SMB サーバーへの接続方法が 2 つあります。

Linux で SMB サーバーをセットアップする

SMB は Microsoft Windows 向けに開発されましたが、Samba を使うと UNIX 系および BSD システムからも SMB 接続できます。Ubuntu マシンでは、この ガイド で Samba サーバーをセットアップできます。

Cloudflare One Client to Tunnel で SMB サーバーに接続する

Cloudflare Tunnel を使うと、サーバーから Cloudflare のグローバルネットワークへ、アウトバウンドのみの安全な接続を作れます。サーバー上で cloudflared デーモンを動かす必要があります。ユーザーはデバイスに Cloudflare One Client をインストールし、Zero Trust 組織に登録してサービスに到達します。リモートデバイスは、プライベートネットワーク上にいるかのように接続できます。デフォルトでは、組織に登録されたすべてのデバイスがサービスにアクセスできます。特定のユーザーを許可またはブロックするには、ポリシーを作成します。

1. サーバーを Cloudflare に接続する

  1. Cloudflare ダッシュボードで Networking > Tunnels を開きます。

    Tunnels を開く ↗
  2. 新しいトンネルを作成する か、既存の cloudflared トンネルを編集します。

  1. Cloudflare ダッシュボードで Networking > Routes を開きます。

    Routes を開く ↗
  2. Create route > Tunnel CIDR を選択します。作成したトンネルを選び、サーバーのプライベート IP または CIDR アドレスを入力して Create route を選択します。

  3. (任意)サーバーへのアクセスを細かく制御するには、Zero Trust ポリシーを設定 します。

2. クライアントをセットアップする

デバイスを Cloudflare に接続するには:

  1. デバイスに Cloudflare One Client をデプロイ し、Traffic and DNS mode にするか、プロキシエンドポイントを生成 して PAC ファイルをデプロイします。
  2. デバイス登録ルールを作成 し、Zero Trust 組織に登録できるデバイスを決めます。

3. プライベートネットワーク IP を Cloudflare One Client 経由でルーティングする

デフォルトでは、WARP は RFC 1918 空間 向けのトラフィックを除外します。これはプライベートネットワークでよく使われ、インターネットから到達できない IP アドレスです。Cloudflare One Client が private network へトラフィックを送るには、Split Tunnels を設定し、private network の IP/CIDR が Cloudflare One Client 経由でルーティングされるようにします。

  1. まず、Split Tunnels のモードExcludeInclude のどちらになっているかを確認します。

  2. モードに応じて Split Tunnel のルートを編集します。

    Exclude モードを使っている場合:

    a. private network の IP/CIDR 範囲を含む ルートを削除 します。たとえば、ネットワークが AWS のデフォルト範囲 172.31.0.0/16 を使っている場合は、172.16.0.0/12 を削除します。

    b. private network が明示的に使っていない IP/CIDR 範囲を再追加 します。上記の AWS の例では、172.16.0.0/13172.24.0.0/14172.28.0.0/15172.30.0.0/16 を新たに追加します。こうすると、172.31.0.0/16 向けのトラフィックだけが Cloudflare One Client 経由になります。

    再追加する IP アドレスは、次の計算機で求められます。

    計算機の使い方

    1. Base CIDR に、Split Tunnels から削除した RFC 1918 範囲を入力します。
    2. Subtracted CIDRs に、private network が使う IP/CIDR 範囲を入力します。
    3. 計算機の結果を Split Tunnel の Exclude モードのリストに戻します。

    Cloudflare One Client に含めるプライベート IP 範囲を狭めると、ユーザーの ローカルリソースへのアクセス を壊すリスクを下げられます。

    Include モードを使っている場合:

    1. 必要な Zero Trust ドメイン または IP アドレス を Split Tunnel の include リストに追加します。
    2. private network の IP/CIDR 範囲を含める ルートを追加 します。

4. ユーザーとして接続する

macOS

  1. Finder メニューで Go > Connect to Server を選択します。

  2. smb://<smb-server-ip-address>/sambashare を入力します。

    macOS で SMB サーバーに接続する
  3. サーバーセットアップ時に作成したユーザー名とパスワードでサインインします。

Windows

  1. エクスプローラーを開き、Network を右クリックして Map Network Drive を選択します。
  2. Folder\\<server-private-ip>\sambashare を入力します。
  3. Connect using different credentials を選択します。
  4. Finish を選択します。
  5. サーバーセットアップ時に作成したユーザー名とパスワードでサインインします。

cloudflared access で SMB サーバーに接続する

Cloudflare Tunnel は、公開ホスト名経由でアプリケーションをルーティングすることもできます。この方法なら、ユーザーは Cloudflare One Client なしでアプリケーションに接続できます。サーバーマシンとクライアントマシンの両方に cloudflared をインストールし、Cloudflare 上に有効なゾーンが必要です。トラフィックはこの接続上でプロキシされ、ユーザーは Cloudflare Access の認証情報でサーバーにログインします。

公開ホスト名の方法は、Cloudflare One Client 経由のルーティングと併用できます。サーバーへの接続手段を複数用意できます。プライベートネットワークのルートと公開ホスト名のルートで、同じトンネルを再利用できます。

1. サーバーを Cloudflare に接続する

  1. ダッシュボードのセットアップガイド に従って Cloudflare Tunnel を作成します。

  2. Cloudflare ダッシュボードで Networking > Tunnels を開き、対象のトンネルを選択します。

    Tunnels を開く ↗
  3. Routes タブで Add route を選び、Published application を選択します。

  4. ドロップダウンからドメインを選び、サブドメインを指定します(例: smb.example.com)。

  5. ServiceSMB を選び、SMB の待受ポートを入力します(例: localhost:445)。SMB ドライブはデフォルトでポート 139 または 445 を待ち受けます。

  6. Add route を選択します。

2. (推奨)Access アプリケーションを作成する

デフォルトでは、公開アプリケーションのホスト名を知っていれば、インターネット上の誰でもサーバーに接続できます。特定のユーザーを許可またはブロックするには、Cloudflare Access で セルフホストアプリケーション を作成します。

3. ユーザーとして接続する

  1. クライアントマシンに cloudflared をインストール します。

  2. 次のコマンドで SMB の待受ポートを開きます。クライアントマシン上の空きポートを指定できます。

    cloudflared access tcp --hostname smb.example.com --url localhost:8445

    このコマンドはデスクトップショートカットに包めます。エンドユーザーがコマンドラインを使う必要はありません。

  3. SMB クライアントを開き、クライアントの接続先を smb://localhost:8445/sambashare に設定します。ホスト名は入力しないでください。

  4. サーバーセットアップ時に作成したユーザー名とパスワードでサインインします。

Windows 固有の要件

Windows マシンを使っていて SMB のポートを指定できない場合は、ローカルサーバーを無効にする必要があることがあります。クライアントマシンのローカルサーバーは、CIFS/SMB と同じデフォルトポート 445 を使います。そのポートで待ち受けると、ローカルサーバーが cloudflare access 接続を妨げることがあります。

Windows マシンでローカルサーバーを無効にする手順は次のとおりです。

  1. Win+R を押して Run ウィンドウを開きます。
  2. services.msc と入力し、Enter を押します。
  3. ローカルサーバーのプロセス(多くの場合 Server)を探します。
  4. サービスを停止し、Startup typeDisabled にします。
  5. TCP/IP NetBIOS Helper についても手順 3 と 4 を繰り返します。

役に立ちましたか?