4OSS/OpenStackでSSLクライアント認証とリバースプロキシの運用/はじめの一歩

富士通が運用するOpenStackのクラウド基盤「Fujitsu Cloud Service for OSS」略称 4OSS (旧名称 K5)で稼働のWebサーバーでSSLクライアント認証を行い、既存のWebサーバーへリバースプロキシによりリダイレクトさせる構成例です。リバースプロキシ先のWebサーバを外部から隠ぺいし安全性を高めることが出来ます。SSLクライアント認証時のアクセスログも取得します。一般的なOpenStackでも同様の構成での運用も可能です。

Client — ( 443 ) —SSLクライアント認証&リバースプロキシ — ( 443 / 80 ) — Web

4OSS/OpenStack基盤上に稼働のリバースプロキシーサーバーを利用してSSLクライアント認証経由で既存のWebサーバーに安全にアクセスさせる事が出来ます。

https://www.mubit.co.jp/sub/products/ca/img2/ca-rev-1.png

今回はプライベートCA、SSLクライアント認証とReverse Proxyを1台のサーバー上で運用するケースです。

既存のWebサーバーへのアクセスは、
1)SSLクライアント証明書による認証(プライベートCA)
2)ID/パスワードによる認証(既存のWebサーバー)
との多要素認証のため、ID/パスワードの漏えいによるWebへの不正アクセスに効果を発揮します。

プライベートCAとSSLクライアント認証&リバースプロキシーを1台で運用するサーバとしては、

を利用します。

公的な認証局 ( Public CA )が発行したSSLクライアント証明書を利用してのSSLクライアント認証を行なう運用も出来ます(例 グローバルサイン / UPKI )

 

https://www.mubit.co.jp/sub/products/blue/img2/pb-vm-2.png

Powered BLUE プライベートCAを利用すると

  • CA機能 / SSLクライアント証明書発行・失効・認証
  • SSLクライアント認証
  • リバースプロキシ
  • インターネットサーバー機能(Web/Mail/DNS)

を1台の仮想サーバーで運用することが出来ます。

 

構築方針

  • PrivateCAサーバーとSSLクライアント認証&リバースプロキシを1台で運用
  • ターゲットのWebサーバーも4OSS/OpenStack上で運用
  • 設定はGUIから行なう

 

使用するもの

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/09/openstack-1.jpg

 

ネットワーク構成(最終形)

  • LAN 10.0.5.0 / 24
  • ルーター / gw       IP=10.0.5.1
  • B870-CA                 IP=10.0.5.20   / IP=133.162.67.42 /  B870-CA.mubit.com
  • Web1 / B870-WEB1 IP=10.0.5.31  / IP=133.162.67.53 /  B870-LBC1.mubit.com
  • Web2 / B870-WEB2 IP=10.0.5.32  / IP=133.162.67.54 /  B870-LBC2.mubit.com
  • Web3 / B870-WEB3 IP=10.0.5.37  / IP=133.162.67.57 /  B870-LBC3.mubit.com
  • 運用するゾーン    east-3 or west-3

 

設定&構築

今回は4OSSのGUIからの操作で構築します。尚OpenStack 標準のGUI / Horizonからの操作やAPI ,  Ansibleでの構築も可能です。

Networkの設定

OpenStack / 4OSSのネットワークなどの基本設定を行ないます。

 

Webサーバーの設定

https://www.mubit.co.jp/sub/products/cloud/img2/poweredBlue-logo-3.png

この例ではWebサーバーとしては、CentOS/RedHat 7.x 対応のPowered BLUE Web サーバーを利用します。一般的なWebサーバーを利用することも出来ます。

4OSS/OpenStack上に3台のPowered BLUE Web サーバーをセットアップします。

  • Web1 / B870-WEB1 IP=10.0.5.31  / IP=133.162.67.53 /  B870-LBC1.mubit.com
  • Web2 / B870-WEB2 IP=10.0.5.32  / IP=133.162.67.54 /  B870-LBC2.mubit.com
  • Web3 / B870-WEB3 IP=10.0.5.37  / IP=133.162.67.57 /  B870-LBC3.mubit.com

Web サーバーには、ホームページデータ、サイボウズ、デスクネッツ、Active! Mail 他を適宜インストールしておきます。

 

Private CAの設定

Private CAとしては、Powered BLUE Private CAを利用します

4OSS/OpenStack上にPowered BLUE Private CA サーバーをセットアップします。

  • B870-CA  /  B870-CA.mubit.com  /  IP=10.0.5.20  / IP=133.162.67.42

 

グローバルIPのアサイン

  • CA       / B870-CA      IP=10.0.5.20  / IP=133.162.67.42 /  B870-CA.mubit.com
  • Web1 / B870-WEB1 IP=10.0.5.31  / IP=133.162.67.53 /  B870-LBC1.mubit.com
  • Web2 / B870-WEB2 IP=10.0.5.32  / IP=133.162.67.54 /  B870-LBC2.mubit.com
  • Web3 / B870-WEB3 IP=10.0.5.37  / IP=133.162.67.57 /  B870-LBC3.mubit.com

Private CAへのグローバルIPのアサイン

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/12/k5-ca-2.png

ターゲットのWeb サーバー(Web1/Web2/Web3)についても、同様の操作でグローバルIPをアサインしておきます

 

SSLクライアント証明書の発行

プライベートCAでSSLクライアント証明書を発行。クライアント証明書は、会社や部門全体での一括発行や、1ユーザーごとの個別の発行が出来ます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/12/k5-ca-5.png

 

SSLクライアント証明書を個別発行の場合(マニュアルで1枚発行の場合)

例 suzuki@mubit.com ユーザーのクライアント証明書を作成

有効期限などを指定して発行します

有効期間やポリシーを設定して、部門や全社員の一括発行も出来ます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/12/k5-ca-7.png

 

SSLクライアント証明書をダウンロードします

ダウンロードURLを通知して、ユーザーが個別にダウンロードすることも出来ます

SSLクライアント証明書のブラウザへのインストール(Firefoxの場合)

「証明書を表示」をクリック

あなたの証明書」のインポートをクリック

SSLクライアント証明のパスワード入れてインストールします

正常にインポート時の表示

証明書マネージャーにインストールしたクライアント証明書が表示されます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/12/k5-ca-9.png

 

SSLクライアント認証を設定

  • Webアクセス時の 「SSLクライアント認証」 を有効にします

アクセスコントロール

有効なSSLクライアント証明書を有している場合でも、Webサイト毎に各種のアクセスコントロールが設定出来ます
失効リスト(CRL)に関わらず、ただちにWebへのアクセス禁止を設定できます
SSLクライアント証明書を失効させることなく、Webへのアクセスを禁止できます

・組織や部門でのアクセス制限
・曜日や時間帯でのアクセス制限
・特定ユーザーでのアクセス制限
・端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止

ログの出力先などの指定

SSLクライアント認証時のアクセスログの出力先を指定出来ます

 

リバースプロキシの設定

設定例 (複数のリダイレクト先を指定できます )

  • activemail/am_bin    --->> https://10.0.5.31/activemail/am_bin/
  • cybozu/cbag            --->> http://10.0.5.32/cybozu/cbag/
  • desknets/dneo         --->> http://10.0.5.37/desknets/dneo/
  • owncloud                  --->> https://10.0.5.31/owncloud/
  • proself                      --->> https://10.0.5.31/proself/
  • roundcube                --->> https://10.0.5.31/roundcube/
  • mosp                         --->> https://10.0.5.32/dm_time4/srv/
  • mubit                         --->> http://www.mubit.com/dir/

 

SSLサーバー証明書

  • リバースプロキシサーバーに、SSLサーバー証明書を入れます
  • SSLサーバー証明書は、自己証明書やLet’s Encrypt、パブリックなサーバー証明書を登録出来ます

 

自己証明書の場合

同一のSSLのサーバー証明書を作成します(1台目のhttpsサーバー)

  • 「自己署名デジタル証明書の作成」 または 「署名リクエストの作成」 で作成します

 

自己署名デジタル証明書の作成の場合

  • 「自己署名デジタル証明書の作成」から必要事項を記入して、SSLを有効にします

 

パブリックなSSLサーバー証明書を利用の場合

  • 署名リクエスト(CSR)で作成の場合
  • 必要事項を記入して、「署名リクエストの作成」 ボタンを押します

  • 作成された 「署名リクエスト」 ファイルを保存
  • この「署名リクエスト」ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付

公的機関で発行された、SSLサーバー証明書を「インポート」します

 

Let’s Encryptの場合

Let’s Encryptは、無償で利用できる公的なSSLサーバー証明書です。Powered BLUE 870 へはフリープラグインを利用して、WebサーバーへSSLサーバー証明書をインストールします。

 Let’s Encryptのインストール&セットアップ方法

 

DNSへ登録

IP=133.162.67.42 / B870-CA.mubit.com

 

アクセス例

SSLクライアント認証&リバースプロキシ経由での active! mail へのアクセス

https://B870-CA.mubit.com/activemail/am_bin/

リバースプロキシ先のWebサーバーのURLが隠ぺいされています

 

SSLクライアント認証&リバースプロキシ経由での サイボウズへのアクセス

https://B870-CA.mubit.com/cybozu/cbag

リバースプロキシ先のWebサーバーのURLが隠ぺいされています

 

SSLクライアント認証&リバースプロキシ経由での デスクネッツへのアクセス

https://B870-CA.mubit.com/desknets/dneo/

リバースプロキシ先のWebサーバーのURLが隠ぺいされています

 

SSLクライアント認証&リバースプロキシ経由での roundcubeへのアクセス

https://B870-CA.mubit.com/roundcube/

リバースプロキシ先のWebサーバーのURLが隠ぺいされています

 

SSLクライアント認証&リバースプロキシ経由での MosP勤怠管理へのアクセス

https://B870-CA.mubit.com/dm_time4/srv/

リバースプロキシ先のWebサーバーのURLが隠ぺいされています

 

 

SSLクライアント認証例 (承認されない場合)

有効なSSLクライアント証明書が無いクライアントからのアクセスの場合 ( IPhone )

Google Chrome の場合

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/12/k5-ca-10.png

 

デモサーバー

Powered BLUEの  デモサーバー

 

 

Fujitsu Cloud Service for OSS (4OSS) の設定&構築

4OSS  GUIからの操作

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 超簡単 Fujitsu Cloud Service for OSS (4OSS)を初期設定する

4OSS  リモートコンソールの利用設定

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSS上のサーバーへパスワードログインをする

4OSS  Ansibleでの操作

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Ansibleで4OSSのNetWork構築やサーバー設定を行なう

4OSS  メモリスワップの追加

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSのLinuxサーバーにmemory swap を設定する

4OSS  Webサーバーを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Powered BLUE 870 の構築

4OSS  SSLクライアント認証Webを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Powered BLUE Private CA の構築

4OSS  ワンタイムパスワード認証Webを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Powered BLUE 870/OTPの構築

4OSS  Webをロードバランスする

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSでWeb/https (443) をロードバランスする

4OSS  SSLクライアント認証&リバースプロキシ

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSでクライアント認証後に既存Webへリバースプロキシ転送する

4OSS  ロードバランサ&SSLクライアント認証&リバースプロキシ

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSでロードバランサー配下でクライアント認証後に既存Webへリバースプロキシ転送する

4OSS 多要素認証&リバースプロキシ対応のWebを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 多要素認証&リバースプロキシ対応のWebサーバーを構築

 

富士通マーケットプレース

Fujitsu MetaArc Marketplace / Fujitsu Cloud Service for OSS (4OSS)

Fujitsu Cloud Service for OSSのマーケットプレイス