KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

RealVNCを利用するために必要なFW設定

登録日 :2024/08/25 19:31
カテゴリ :Linux

RealVNCのファイアウォールポリシー設定について、送信元、宛先、送信元ポート番号、宛先ポート番号の形式で説明します。一般的に、VNCサーバー側で受信ポートを開放する必要があります。

  • サーバー側(受信)の設定
    基本的なVNC接続:
    送信元: Any
    宛先: VNCサーバーのIPアドレス
    送信元ポート番号: Any
    宛先ポート番号: 5900

  • VNC Web接続(使用する場合):
    送信元: Any
    宛先: VNCサーバーのIPアドレス
    送信元ポート番号: Any
    宛先ポート番号: 5800

  • RealVNCのクラウド接続機能:
    送信元: Any
    宛先: VNCサーバーのIPアドレス
    送信元ポート番号: Any
    宛先ポート番号: 443 (HTTPS)
    送信元: Any
    宛先: VNCサーバーのIPアドレス
    送信元ポート番号: Any
    宛先ポート番号: 3478 (UDP、STUN)

  • クライアント側(送信)の設定
    通常、クライアント側(VNC Viewer)では特別なファイアウォール設定は不要です。クライアントは一般的にランダムな高ポート番号を使用して送信を行うため、多くのファイアウォールでデフォルトで許可されています。
    ただし、厳格なセキュリティポリシーを持つ環境では、以下のような送信ルールを設定する場合があります:
    送信元: VNCクライアントのIPアドレス
    宛先: VNCサーバーのIPアドレス
    送信元ポート番号: Any
    宛先ポート番号: 5900, 5800, 443, 3478

これらの設定により、RealVNCの通信に必要なポートが適切に開放され、安全なリモート接続が可能になります。ただし、セキュリティリスクを最小限に抑えるため、必要最小限のポートのみを開放し、使用していない時はVNCサーバーを停止することをお勧めします。

RealVNCの通常の使用においては、サーバーから折り返しの画面転送を特別に許可する必要はありません。

RealVNCは以下のような仕組みで動作します:

VNC Serverは、クライアントからの接続を待ち受けます。

VNC Viewerがサーバーに接続を開始します。
接続が確立されると、サーバーはクライアントに画面情報を送信し始めます。
この過程で、サーバーからクライアントへの画面データの送信は、クライアントが開始した接続の一部として行われます。つまり、新たな接続や特別な許可は必要ありません。

ただし、以下の点に注意が必要です:
ファイアウォールの設定で、VNC Serverの受信ポート(通常は5900)が開放されていることを確認してください。

ルーターを使用している場合は、必要に応じてポートフォワーディングを設定します。

セキュリティソフトウェアがRealVNCの通信をブロックしていないか確認してください。

ダイナミックフィルタリングが無効の場合、一度確立された接続での双方向通信は通常問題なく行われます。サーバーからクライアントへの画面データの送信は、既存の接続を利用するため、追加の設定は必要ありません。

セキュリティ上の懸念がある場合は、RealVNCのクラウド接続機能を使用することで、多くのファイアウォールやネットワーク設定の問題を回避できます。この方法では、両方のマシンがRealVNCのクラウドサーバーに接続し、そこを経由してデータをやり取りします。

Appendix

Cisco ASAファイアウォールがRealVNCのサーバーとクライアントの間にある場合、以下の設定が必要です:
サーバー側(内部ネットワーク)からクライアント側(外部ネットワーク)への通信

  • 静的NATの設定:
    サーバーのプライベートIPアドレスをパブリックIPアドレスにマッピングします。
    アクセスリストの設定:
    送信元: Any (クライアントのIPアドレス)
    宛先: サーバーのパブリックIPアドレス
    送信元ポート番号: Any
    宛先ポート番号: 5900 (VNC)
  • 必要に応じて、以下のポートも開放:
    TCP 5800 (VNC Webインターフェース用、使用する場合)
    TCP 443 (HTTPS、RealVNCのクラウド接続機能用)
    UDP 3478 (STUN、RealVNCのクラウド接続機能用)
    設定例
! 静的NATの設定
object network VNC-SERVER
 host 192.168.1.100  ! サーバーのプライベートIPアドレス
nat (inside,outside) static 203.0.113.10  ! パブリックIPアドレス

! アクセスリストの設定

access-list OUTSIDE_IN extended permit tcp any host 203.0.113.10 eq 5900
access-list OUTSIDE_IN extended permit tcp any host 203.0.113.10 eq 5800
access-list OUTSIDE_IN extended permit tcp any host 203.0.113.10 eq 443
access-list OUTSIDE_IN extended permit udp any host 203.0.113.10 eq 3478

! アクセスリストの適用

access-group OUTSIDE_IN in interface outside

これらの設定により、外部のクライアントからVNCサーバーへの接続が可能になります。
注意点:
セキュリティを考慮し、必要最小限のポートのみを開放してください。
RealVNCのクラウド接続機能を使用する場合、多くのファイアウォール設定を回避できる可能性があります。
設定後は、接続テストを行い、正しく動作することを確認してください。

一般的には、クライアント側の送信元ポート番号を特定の範囲に絞ることは可能です。
ただし、多くの場合、クライアントは動的に割り当てられた高ポート番号(通常49152から65535の範囲)を使用します。
送信元ポート番号を絞ることで、セキュリティを向上させる可能性がありますが、同時に接続の柔軟性が低下する可能性もあります。
厳格なセキュリティポリシーが必要な環境では、送信元ポート番号の範囲を指定することで、より細かい制御が可能になります。
したがって、送信元ポート番号を絞る設定例は以下のようになります:

access-list OUTSIDE_IN extended permit tcp any range 49152 65535 host 203.0.113.10 eq 5900

この設定では、クライアントの送信元ポート番号を49152から65535の範囲に制限しています。
ただし、この制限を適用する前に、以下の点を考慮する必要があります:
使用するVNCクライアントソフトウェアが、この範囲のポートを使用することを確認してください。
この制限により、一部の環境で接続問題が発生する可能性があります。
必要に応じて、範囲を調整したり、複数の範囲を指定したりすることも検討してください。
セキュリティと利便性のバランスを考慮し、環境に応じて適切な設定を選択することをお勧めします。