LCA Collaboration Server を自社のデータセンターに置くことを検討しています。ファイアウォールの許可をかなり絞っているため、必要な通信を知りたいです。
クライアントとのやり取りだけを許可すれば足りるのでしょうか。ほかにも考えるべき経路はあるのでしょうか。
1 件の回答
リクエストはすべて http/https で届きます。メッセージ機能を使う場合は、それに加えて ws/wss(WebSocket)も使います。 クライアント以外との通信が要るかどうかについては、回答では触れていません。
Tomcat を直接公開するより、リバースプロキシを挟むのが推奨です。メッセージ機能を有効にしているなら、リバースプロキシで WebSocket の接続も書き換える必要があります。回答には Apache2 の設定例が付いており、そこからリバースプロキシと WebSocket の書き換えに関わる部分だけを抜き出すと次のようになります(Collaboration Server が 127.0.0.1:8080 で動き、http は https へ転送する例)。
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ProxyRequests Off
<Location />
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8080%{REQUEST_URI} [P,L]
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>
# TLS の設定(SSLEngine、SSLProtocol、SSLCipherSuite、証明書の指定)は省いています
</VirtualHost>WebSocket の書き換えにあたるのは、<Location /> の中の RewriteCond 2行と RewriteRule の行です。回答の例にはほかに、<Proxy *> の中の Order deny,allow と Allow from all もありましたが、これは Apache 2.2 の書き方なので上では外しています。リバースプロキシのサブパスに置いたときの不具合は Collaboration Server をサブパスに置くと、画像や JS が読み込まれません にあります。
- Required Firewall Rulesask.openLCA2024-02
