0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

QNAPとIBM Cloud をリモートアクセスVPN(OpenVPN)で接続してIBM Cloud Object Storage にアクセス

Last updated at Posted at 2020-05-08

1.はじめに

NASのQNAPとIBM Cloudをリモートアクセス方式VPNのOpenVPNで接続しました。
QNAPの「QVPN Service」でVPNクライアントを構成し、IBM Cloud側はVyOSでVPNサーバ構成。
VPNプロトコルはOpenVPNです。
VPN接続により、QNAPを使用したIBMCloud資源へのアクセスも、よりセキュリティを強化して連携利用できます。例えば、QNAPとIBM Cloud Object Storage(ICOS)間でのセキュアなアクセスが考えられます。
01.png

ここでは、ICOSのプライベート・エンドポイントに接続する構成を構築します。

QNAPの「HybridMount(ファイルクラウドゲートウェイ)」キャッシュとIBM Cloudのプライベートネットワークを使用しますので、通信の従量課金も安くおさえられるはずです。

2.構築

2-1.構築手順

構築の手順は下記になります。
 [VyOS側での作業]
  1.認証局の構築と証明書の作成
  2.OpenVPN構成を定義

 [VyOSとクライアントPCでの作業]
  3.クライアントPCからOpenVPN接続確認
 [QNAP側での作業]
  4.接続設定および接続確認
  5.ルート設定

 [IBM Cloud側での作業]
  6.ICOSサービスのオーダ、バケットの作成
 [QNAP側での作業]
  7.ICOSとの接続設定

2-2.全体構成

021.png
031.png

2-2-1.オンプレミス側

​  (1)QNAPのプライベートIPは 192.1681.2

  (2)QNAPの「QVPN Service」OpenVPNクライアントを使用し、IBM CloudのVyOSとリモートアクセスVPN接続

  (3)QNAPの「HybridMount(ファイルクラウドゲートウェイ)」を使用し、ICOSのプライベート・エンドポイントに接続

2-2-2.IBM Cloud側

  (1)VyOS(1.1.8)でOpenVPNサーバを設定
  (2)VyOS パブリックIP:xxx.yyy.zzz.74 プライベートIP:10.132.35.135
  (3)VyOSにOpenVPNの認証局を構築
  (4)OpenVPNクライアント用にポータブルIPを使用
     ポータブルIP:IPアドレス 10.132.22.200 , ネットワーク 10.132.22.192/28, ゲートウェイ 10.132.22.193
  (5)ICOSのプライベート・エンドポイントに接続
     プライベート・エンドポイント:s3.private.jp-tok.cloud-object-storage.appdomain.cloud
     バケット:Regionalのjp-tok(東京、神奈川、埼玉DCの3拠点に分散保管)

2-3.構築設定1 [VyOS側での作業]

「SoftLayerとVyOSでネットワークの基礎を勉強3-(OpenVPNリモートアクセス編)」を参考にしてください。

2-3-1.認証局の構築と秘密鍵・公開鍵の作成と署名

VyOSの設定モード(プロンプトが#)で、root アカウントにパスワードを設定します。

一般モード(プロンプトが$)から設定モードへは「configure」コマンドで切り替わります。

一般モードへ戻るには「exit」コマンドを実行してください。

rootアカウントの有効化
# set system login user root authentication plaintext-password rootのパスワード
# commit
# save

これで、rootアカウントの設定ができましたので、次にrootユーザに切り換えて認証局の設定を行います。

まず、「exit」で一般モードに切り替え、「$su -」でrootユーザでシェルに入ります。

2-3-1-1.認証局の構築

※初回の時だけ実行し、運用後は実行しないでください。
05.png
① rootユーザーでログイン「su -」
② rootユーザーでログイン パスワード入力。
③今回使用するVyOSに付属のOpenVPNプログラム類は、/usr/share/doc/openvpn/examples/easy-rsa/2.0/ディレクトリーにあります。
④varsの呼び出し、環境変数の設定
「. ./vars」
⑤古い鍵ファイル類の消去、認証局の初期化
「./clean-all」
⑥認証局の作成
「./build-ca」
⑦国名コード
⑧都道府県名
⑨都市名
⑩組織名。社名や団体名
⑪省略
⑫共通名
⑬省略
⑭認証局の管理者のメールアドレス

/usr/share/doc/openvpn/examples/easy-rsa/2.0/keysに以下のファイルが作成されます。
CA証明書---ca.crt
CA秘密鍵---ca.key

2-3-1-2.サーバー側の秘密鍵・公開鍵の作成と署名

※初回の時だけ実行し、運用後は実行しないでください。
06.png
ここではサーバー側の鍵名称を「server」とします。
①サーバー側鍵作成
「./build-key-server server」
②国名コード
③都道府県名
④都市名
⑤組織名。社名や団体名
⑥「⏎」
⑦「⏎」
⑧メールアドレス
⑨今回チャレンジパスワードの設定は行わない。「⏎」
⑩「⏎」
⑪「y」
⑫「y」
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keysに以下のファイルが作成されます。
サーバー証明書---server.crt
サーバー秘密鍵---server.key

2-3-1-3.クライアント側の秘密鍵・公開鍵の作成と署名

ここではクライアント側の鍵名称を「client」とします。
必要なクライアント数分、名称を変えて繰り返します。
07.png
①クライアント側鍵作成
「./build-key client」
②国名コード
③都道府県名
④都市名
⑤組織名。社名や団体名
⑥「⏎」
⑦「⏎」
⑧「⏎」
⑨メールアドレス
⑩今回チャレンジパスワードの設定は行わない。「⏎」
⑪「⏎」
⑫「y」
⑬「y」
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keysに以下のファイルが作成されます。
クライアント証明書---client.crt
クライアント秘密鍵---client.key

2-3-1-4.DHパラメータの作成

鍵の交換に使用するDHパラメータを生成します。
08.png①「./build-dh ⏎」
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keysに以下のファイルが作成されます。
dh1024.pem

2-3-1-5.鍵を所定ディレクトリーへコピー

/usr/share/doc/openvpn/examples/easy-rsa/2.0/keysに以下のファイルが作成されていますので、サーバー用とクライアント用別にそれぞれコピーします。
<サーバー用>
ca.crt, dh1024.pem, server.crt, server.key
<クライアント用>
ca.crt, client.crt, client.key

ここではサーバー用のファイルを、/root配下にコピーしました。
クライアント用はPCへ転送しますので、/tmpにコピーして下さい。
※注意:client.keyのパーミッションを644にしてください。「chmod 644 /tmp/client.key」
    作成時パーミッションは”600”ですので、PC転送の際パーミッションエラーになります。

2-3-1-6.クライアント鍵をPCへ転送

ここではSSHクライアントを「Teraterm」を使用しました。
PCへ転送するのは、「ファイル」⇒「SSH SCP...」で転送します。
09.png

2-3-2.OpenVPN構成を定義

VyOSの「設定モード」で設定します。
OpenVPNの設定

(01) # set interfaces openvpn vtun0 
(02) # set interfaces openvpn vtun0 mode server
(03) # set interfaces openvpn vtun0 openvpn-option "--push route 10.0.0.0 255.0.0.0  --push dhcp-option DNS 10.0.80.11" 
(04) # set interfaces openvpn vtun0 server client client ip 10.132.22.200 
(05) # set interfaces openvpn vtun0 server subnet 10.132.22.192/28 
(06) # set interfaces openvpn vtun0 tls ca-cert-file /root/ca.crt 
(07) # set interfaces openvpn vtun0 tls cert-file /root/server.crt 
(08) # set interfaces openvpn vtun0 tls dh-file /root/dh1024.pem 
(09) # set interfaces openvpn vtun0 tls key-file /root/server.key 
(10) # commit 
(11) # save 

※行番号を便宜上付けていますが、実際の入力の際は入れないでください。
(03) SoftLayer側のルート(10.0.0.0 255.0.0.0)とDNS(10.0.80.11)をpushしています。
"redirect-gateway def1"オプションを入れてもいいです。

※QNAPではこの設定は無効になりますので、後ほどQNAPがわでrouteの設定を行います。

(04)クライアントの名前は「client」で、client.crt/client.keyを使用します。
また、プライベートポータブルIPからIPを切りだして、10.132.22.200をアサインしています。
(05)サブネットはプライベートポータブルのネットワーク(10.132.22.192/28)です。
(06)CA証明書の保存場所
(07)サーバー証明書の保存場所
(08)DHファイルの保存場所
(09)サーバー秘密鍵の保存場所

ここまでの設定では、OpenVPN接続しクライアント用のIPが取得できますが、SoftLayerのDNSや、プライベートネットワーク上の他のサーバーと通信するために、NATの設定を行います。

NATの設定

(01) # set nat source rule 1 
(02) # set nat source rule 1 outbound-interface eth0 
(03) # set nat source rule 1 source address 10.132.22.192/28 
(04) # set nat source rule 1 translation address masquerade 
(05) # commit 
(06) # save 

※行番号を便宜上付けていますが、実際の入力の際は入れないでください。

SourceNATを設定しています。
(02) プライベートのインターフェースはeth0
(03)source アドレスは、プライベートポータブルです
(04)マスカレードの設定にしました

これで、クライアントPCからプライベートネットワーク上の他のサーバーへPINGが通ります。

2-4.構築設定2 [VyOSとクライアントPCでの作業]

今まで設定したOpenVPN構成が正しいかをPCから接続して、確認します。
PCはWindows10を使用しました。尚、OpenVPNクライアントがまだインストールされていない場合は、下記アドレスからダウンロードしてセットアップしてください。
OpenVPNダウンロード

サーバー側で作成したca.crt、client.crt、client.keyを
”c:\Program Files\OpenVPN\config"フォルダーへコピーします。

softlayer.ovpn

dev tun
client
remote xxx.yyy.zzz.74
ca ca.crt
cert client.crt
key client.key
pull

下記メッセージが表示され、正常に接続できました。
10.png
後ほど、この構成をQNAP側でインポートします。

2-5.構築設定3 [QNAP側での作業]

2-5-1.接続設定および接続確認

「QVPN Service」でOpenVPNクライアントの設定を行います。
11.png

12.png
「VPNクライアント」⇒「VPN接続プロファイル」
「追加」⇒「OpenVPN」

「2-4.構築設定2 [VyOSとクライアントPCでの作業]」で使用した、「softlayer.ovpn」ファイルをインポートします。
13.png

「2-4.構築設定2 [VyOSとクライアントPCでの作業]」で使用した、「ca.crt、client.crt、client.key」ファイルを指定します。
VyOSのパブリックIPは「xxx.yyy.zzz.74/28」ですので、サブネットマスクは「255.255.255.240」になります。
14.png
「作成」

これで、OpenVPNクライアントの定義は完了です。
15.png

それでは、接続してみます。
「アクション」⇒「接続アイコン」をクリック
VPNクライアントIP:10.132.22.200 で接続されています。
16.png

2-5-2.ルート設定

SSHでQNAPにログオンし、PINGを使って通信を確認します。
17.png
8.8.8.8 と www.ibm.com 対しては、PING OK ですが、
ICOS プライベート・エンドポイント と IBM Cloud 内部DNSに対しては、PNG NGでした。
VyOS構成で、「openvpn-option "--push route 10.0.0.0 255.0.0.0”」を設定していますが、QNAPではこのオプションパラメータは無視されるようです。
解決策として、route 10.0.0.0 255.0.0.0 を明示的に設定します。
「[]# route add -net 10.0.0.0 gw 10.132.22.193 netmask 255.0.0.0」

2-6.構築設定4 [IBM Cloud側での作業]

2-6-1.ICOSサービスのオーダ、バケットの作成

設定作業内容については割愛させていただきます。
「QNAPとIBM Cloud Object Storage(ICOS)で簡単にファイルサーバを構築してみました」を参考にしてください。(4-1.ICOS側)

ここでは、下記の値で作成しました。
18.png

2-7.構築設定5 [QNAP側での作業]

2-7-1.ICOSとの接続設定

QNAPの「HybridMounr(ファイルクラウドゲートウェイ)」を使い、ICOSのプライベートエンドポイントに接続してバケットにアクセスします。

※PINGを使用して、QNAPからICOSプライベートエンドポイントに通信ができることを確認してください。
19.png
「HybridMount」をクリック

20.png
「リモートマウントの作成」をクリック

21.png
「ファイルクラウドゲートウェイの作成」をクリック

22.png
”クラウドサービス”:「S3 Compatible」を選択  ※注意:「IBM Cloud」ではありません。

「2-6-1.ICOSサービスのオーダ、バケットの作成」で取得した値を入力
”アクセスキー(access_key_id)”、”秘密キー(secret_access_key)”、サーバアドレス(プライベートエンドポイント)

23.png
”システムプロキシ設定を使用”:チェックを外す。
「検索」をクリックし、バケットを選択⇒「次へ」

24.png
「作成」をクリック

25.png
「閉じる」をクリック

PCのフォルダーにドキュメント保存し、転送されているかを確認する。
26.png

QNAP File Stationでドキュメントの存在が確認できました。
27.png

ICOSでドキュメントの存在が確認できました。
28.png

以上ですべての設定作業が完了です。

3.通信設定での注意点

今回の設定で下記の問題がありました。その際の対応内容を記載します。
(1)DNS参照できないため、名前解決できない場合
   QNAPのネットワーク設定にてDNSを設定後、QNAPを再起動すると名前解決できない。
   対応)SSHクライアントにてログイン後、/etc/resolv.conf に直接DNSを記述する。
      例:nameserver 8.8.8.8
     nameserver が127.0.0.1 のループバックアドレスの設定になっていたため。

(2)ICOSのプライベート・エンドポイントにアクセスできない場合
   対応)IBM Cloudのリソースアクセスのために、下記ルートを設定する
      route add -net 10.0.0.0 gw ポタブルIPのgw netmask 255.0.0.0

4.おわりに

QNAPとIBMCloud間でセキュアな接続が可能(OpenVPN)という事がわかり、ICOS以外にも利用できそうです。
「3.通信設定での注意点」でQNAPを再起動すると値を再度設定する必要がある。永久適用したいところであるが、カスタマイズされたLinixであるため設定箇所がわかりません。
この点は調査して情報を更新したいと思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?