セキュアなインストレーションとシステム構成

セキュアなインストール

このページでは、Content Services のインストールを保護するために必要な推奨事項について説明します。

注:Content Services のソフトウェアがインストールされているシステム(オペレーティングシステム、ActiveMQ、DBMS など)のセキュリティも強化する必要がありますが、ここではその説明は割愛します。

概要

Content Services をセキュアにインストールするには、あらゆる攻撃からシステムを保護する必要があります。しかし、ベストプラクティスにはさまざまなトピックがあり、その中から考えられる構成をすべて列挙することは容易ではありません。そこで、ここではセキュリティに関わる事項について重点的に説明したいと思います。さらに、本番環境ではほとんどの場合、Content Services のインストールには必ずポータル、イントラネット、ビジネスインテリジェンスツール、CMS、ECM、CRM などの他のツールとの連携を伴うため、これらの統合されたシステムも保護することが推奨されます。
また、Content Services のクラスタをインストールした場合は、関係するすべてのノードのセキュリティを確認するようにしてください。
次の図.1に、保護が必要なコンポーネントの概要を示します。

(図.1)セキュアなシステム概要(例)


すべてのパスワードを確認する

セキュリティの中で最も重要となるのは、システムにアクセスする際に使用するパスワードです。パスワードは最初の防衛線です。できるだけ強力なパスワードを使用するようにしましょう。パスワードはさまざまな方法で強化することができます。パスワードの強化は必ず実施してください。そうすることで、セキュリティを保護できます。対応しなければ、セキュリティ侵害につながります。

ルートとして実行しない

Content Services が侵害されたとしても、そのダメージを最小限にする必要があります。Content Services をルートで実行していると、サーバーに深刻な被害がもたらされる可能性があります。

リバースプロキシを追加する(1)

Content Services のインフラストラクチャの入口部分には必ずリバースプロキシを設置してください。このプロキシには、許可されている URL のホワイトリストが設定され、一覧にない URL はすべてブロックされます。このプロキシは、SSL を実装する場所でもあります。
NGINX の構成例は GitHub project で、対応するイメージは Docker Hub で確認できます。

HTTPS によるセキュアなサーバートラフィック(1)

サーバーへのトラフィックを暗号化しなければ、コンテンツは公開されているも同然です。コンテンツを公開するつもりがなければ、パスワードが平文で流出するのを防ぐために、トラフィックを暗号化する必要があります。
Let's Encrypt というサービスを使用すると、質の高いSSL証明書を無料で利用できます。有料の証明書よりも頻繁に更新する必要がありますが、EFF の certbot を使えば更新を自動化できます。実際、Tomcat の入口部分に Web プロキシを設置すれば、一般に公開されたサーバーであれば、certbot スクリプトを実行するのと同じくらい簡単に、Let's Encrypt を使用してトラフィックを保護できます。すべての通信は SSL(Secure Socket Layer)で行う必要があります。
Configure SSL for production environment を参照してください。
HTTPS トラフィック(Digital Workspace、Share、WebDAV、ReST API)以外にも、次の事項について検討する必要があります。

  • SharePoint プロトコル

  • IMAPS

  • SMTP の受信用 TLS

  • SMTP の送信用 TLS

  • FTPS

  • LDAPS 接続

  • Hazelcast または JGroups 接続(クラスタリング)の検討

リポジトリと Solr 間のセキュアなトラフィック(2)

リポジトリと Solr は、別々の Web アプリケーションです。これらの Web アプリケーションは、同じ Tomcat サーバーで動いている場合も、異なる Tomcat サーバーで動いている場合も、異なるマシンで動いている場合も、HTTP を使用して通信しています。

注:Solr とリポジトリの間の通信は、デフォルトでは暗号化されていません。Docker ComposeHelm の設定を参照してください。追加設定が必要ない状態でSSL暗号化を提供することには常に問題が伴います。たとえば、デフォルトの証明書を提供したとしても、それはまったく意味をなしません。また、生成された自己署名証明書は、独自の PKI を持っている場合、ポリシーに適合しない可能性があります。当社が Helm チャートとして提供しているのはお客様が構築を行う際の基礎となるビルディングブロックで、本番環境に対応した構成ではありません。

Solr とリポジトリの間で保護された通信が有効になっている場合、Solr の Web アプリケーションは証明書ベースのクライアント認証を使用します(これにより、リポジトリは通信の相手が確かに Solr であることを認識します)。ただしデフォルトの状態では、Solr は、Alfresco が生成して製品に同梱している証明書を使用して、暗号化と認証を行うようになっています。Alfresco が生成したデフォルトのクライアント証明書には一般の人が簡単にアクセスできます。つまり、デフォルトの状態では、Solr ポート(デフォルトでは8983)にアクセスできた人はだれでもコンテンツリポジトリ全体を検索できてしまいます。
この問題を解決するには、Solr とリポジトリの間のセキュアな通信を有効にして証明書を再生成する必要があります。
Windows または Linux での設定方法については、Search Services security documentation に従ってください。

また、各キーストアの説明と設定については、managing Alfresco keystores を参照してください。

Share Web UI のセキュリティ(3)

Alfresco Share Web UI は、Alfresco のユーザーが使用する主要なユーザーインターフェイスの1つです。セキュアなアクセスができるように設定する必要があります。Share security policies and filters を参照してください。
Share への接続は Web プロキシを介して行われるため、Share へのアクセスは常に HTTPS を介して行われます。

Digital Workspace Web UI のセキュリティ(4)

Alfresco Digital Workspace(ADW)Web UI は、Alfresco ユーザーが使用する主要なユーザーインターフェイスの1つです。ADW は Angular のアプリケーションであるため、Angular のセキュリティ文書を参照してください。
ADWへの接続は Webプロキシ を介して行われるため、ADW へのアクセスは常に HTTPS を介して行われます。

ReST API のセキュアなアクセス(5)

Alfresco Repository でフィルタを設定することで、Content Services の ReST API に外部からアクセスがあった際のセキュリティ攻撃を緩和することもできます。
Repository security policies and filters を参照してください。
ReST API への接続は Webプロキシ を介して行われるため、ReST API へのアクセスは常に HTTPS を介して行われます。

HTML 変換のセキュア化

LibreOffice を使用した HTML パイプラインには、BSSRF 攻撃に対する脆弱性があります。このようなパイプラインを無効にするには、こちらの手順に従ってください。

メタデータの暗号化

ノード(ファイルやフォルダ)のプロパティ(メタデータ)を暗号化することが可能です。この詳細については、Manage Alfresco keystores を参照してください。

外部システムからアクセスする専用ユーザー

Content Services を外部システムと統合する場合、外部システムごとに専用ユーザーを作成し、各ユーザーが必要とする情報に応じてリポジトリへのアクセスを許可するようにします。管理者ユーザーとしてアクセスを許可すると、外部からすべてにアクセスできてしまうため、専用ユーザーを作成するようにします。

ゲストユーザーを無効にする

Set up authentication and sync ページの情報を参照してください。特に「Guest user config」の説明を注意して読んでください。

未使用のプロトコルを無効にする。

攻撃対象領域を減らす手段について説明します。Content Services には、リポジトリからコンテンツを出し入れするためのオプションがたくさん用意されています。しかし、たとえば FTP を使用していなければ、FTP を有効にしておく必要はありません。むしろ、FTP が攻撃の足がかりになる可能性があります。Alfresco がサポートしている各プロトコルを目的を持って見直し、使用していないものを無効にします。

Content Services のインストールで使用されるポートの概要

次の表に、Content Services のインストールで使用されるプロトコルとポートを示します。注意事項などの有用なコメントも示しています。
ファイアウォールの受信ポート:

プロトコル / サービス

ポート

TCP/UDP

IN/OUT

Active

コメント

HTTP

8080

TCP

IN

Yes

WedDav を含む

FTP

21

TCP

IN

Yes

Passive モード

SMTP

25

TCP

IN

No

 

CIFS

137,138

UDP

IN

Yes

 

CIFS

139,445

TCP

IN

Yes

 

IMAP

143 or 993

TCP

IN

No

 

SharePoint Protocol

7070

TCP

IN

Yes

 

Tomcat Admin

8005

TCP

IN

Yes

必要な場合を除いて、ファイアウォールでこのポートを開かないでください

Tomcat AJP

8009

TCP

IN

Yes

必要な場合を除いて、ファイアウォールでこのポートを開かないでください

SOLR Admin

8443

TCP

IN

Yes

Solr の管理に使用する場合は、証明書をブラウザーにインストールする必要があります。それ以外の場合は、専用のインデックスサーバーを使用する場合に考慮してください。Alfresco リポジトリサーバーは、このポートの IN および OUT にアクセスできる必要があります。

NFS

111,2049

TCP/UDP

IN

No

これは VFS としてのリポジトリサービス NFS です

RMI

50500-50507

TCP

IN

Yes

JMX 管理に使用されます。必要な場合を除いて、ファイアウォールでこのポートを開かないでください

Hazelcast

5701

TCP

IN

No

4.2からのクラスターノード間で情報を交換するために hazelcast によって使用されます

JGroups

7800

TCP

IN

No

4.2より前のノード間のクラスター検出

JGroups

7801-7802

TCP

IN

No

4.2より前のクラスターノード間で EhcacheRMI をトラフィックします。

OpenOffice/JODconverter

8100

TCP

IN

Yes

ローカルホストで動作します。ファイアウォールで開かないでください


ファイアウォールの送信ポート:

Protocol/Service

Port

TCP/UDP

IN/OUT

Active

コメント

SMTP

25

TCP

OUT

No

Alfresco に通知、招待状、タスクなどを送信させたい場合。Alfresco から企業の MTA へ、このポートを開きます

DB — PostgreSQL

5432

TCP

OUT

Yes*

DB によって異なります

DB - MySQL

3306

TCP

OUT

Yes*

DB によって異なります

DB - MS SQL Server

1433

TCP

OUT

Yes*

DB によって異なります

DB — Oracle

1521

TCP

OUT

Yes*

DB によって異なります

DB - DB2

50000

TCP

OUT

Yes*

DB によって異なります

LDAP or AD

396

TCP

OUT

No

認証と同期に必要な場合

LDAPs or AD

636

TCP

OUT

No

認証と同期に必要な場合

docs.google.com

443

TCP

OUT

No

 

JGroups

7800-7802

TCP

OUT

No

4.2より前にクラスター化された場合、ノード間のみ。

Hazelcast

5701

TCP

IN

No

ノード間でのみ、4.2からのクラスターノード間で
情報を交換するために hazelcast によって使用さ
れます。

Remote storage NFS

111,2049

TCP/UDP

OUT

No

リモート NFS ドライブがコンテンツストアとして使用されている場合

Remote storage CIFS

137,138
139,145

UDP
TCP

OUT

No

リモート CIFS ドライブがコンテンツストアとして使用されている場合

Amazon S3

443

TCP

OUT

No

Alfresco が AWS にデプロイされ、AmazonS3 がコンテンツ
ストアとして使用されている場合

Alfresco Transformation Server

80,443 or 8080,8443

TCP

OUT

No

リモートの AlfrescoTransformationServer が使用されている場合

Alfresco FSTR

8080

TCP

OUT

No

リモート Alfresco ファイルシステム転送レシーバーを使用する場合

Alfresco Remote Server

8080 or 8443

TCP

OUT

No

Alfresco サーバー間で Alfresco レプリケーション
サービスを使用する場合

Kerberos

88

TCP/UDP

OUT

No

KerberosSSO が必要な場合

Third Party SSO

443

TCP

OUT

No

サードパーティの SSO サービス

DNS

53

UDP

OUT

Yes

名前解決サービス


セキュリティチェックリスト

以下に、代表的なセキュリティチェックリストを示します。セキュアなインストールの参考にしてください。

リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ