基本設定をしたところで。
まずはローカルのネットワークでファイル共有が想定通りに動くかを確認です。
当初、確認をせず先にOpenVPNをこねくり回していたのも余計な時間を食った一因でした。
日頃知ったかぶりで共有設定なぞしてるもんだから、少し設定画面が変わると全くつながらなくなったりして…
そもそも職場にWindowsXPと7が混在しているのが混乱の元。
片方ではつながるのに片方では見えないとか。
結局、基本的なネットワークドライブへのつなぎ方を忘れていたとか、テスト時に1台のPCからユーザ名をいろいろ変えてアクセスしようとして失敗したとか、その種の不手際でしたが…
で、いよいよOpenVPN。
まずは標準のままweb画面で設定を進めてみると、クライアントに置く設定ファイルと証明書は生成されますが、鍵が作られません。
ということは、クライアント側から接続する都度、IDとパスワードを手入力しなければなりません。
職場では多様なスキルレベルの人が使うため、トラブルの種は極力排除したい。
すなわちPCの電源を入れさえすれば勝手にファイルサーバにつながっているようにしたかったのです。
(セキュリティ的な話は置いといて)
それにはplamoでの運用と同様、ユーザ(端末)ごとに秘密鍵を作ればよいだろう、と。
QNAPのNASは結構カスタマイズが効くらしいので、NAS内に潜り込んでLinux的に手設定すれば済むだろう、と。
これが甘かった。
実際はそう好き放題にできるわけではなく、基本的にはNASを起動するたびにweb画面での設定内容を書き戻す仕様になっているのです。
せっかく自分で設定ファイルなど修正しても、電源を入れ直すとシステムが保持している設定に上書きされてしまうのです。
それを避けるには
1)自分で作った設定ファイルを、あらかじめHDD内の特殊な階層に保存しておく
2)NASが起動して所定の動作(システムが保持するファイルを書き戻す)を終えてから、OpenVPNの起動シーケンスに入るまでの間に、1)のファイルを再度上書きするようなシェルスクリプトを仕込んでおく
3)結果、まんまとこちらの思い通りの設定で立ち上がる…
…という、極めてトリッキーな手法を用いねばならないのです。
そんなわけで、例によってさまざまなサイトのお力を借りながら数ヶ月もの間悩んだ挙句、どうにかまとまったのが以下の手順でした。
1.サーバ/クライアントの証明書・鍵作成
これは昔やったのと同じですが、細かく書いてなかったのできちんと書いておきます。
○NAS内で証明書等を作成する
SSHで管理者ログインし操作。
(1)vi /etc/openvpn/easy-rsa/var
以下の項目を修正。
export KEY_COUNTRY=JP
export KEY_PROVINCE=Saitama (←都道府県ですね)
export KEY_CITY=xxxxx (←○○市とか)
export KEY_ORG="xxxxx" (←会社名とか)
export KEY_EMAIL="xxxxx@xxxxx.jp" (←法人のメールアドレスにしました)
※再起動で初期化されるとQNAP社(台湾)の設定に戻ります。
証明書と鍵を作る時しか使いませんが、保存が必要な場合は
この後の(7)のように別フォルダへコピーしておきます。
(2)CA証明書・CA秘密鍵の作成
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca
※質問にはEnterのみ入力。
(3)サーバ証明書・秘密鍵の作成
. ./vars
./build-key-server server
※"server"の部分は適当に。自分のところはファイルサーバは
これ1台だけなので、このまま。
※質問にはEnterのみ入力。ただし"A challenge password"と聞かれたら
適当なパスワードを考えて入力します。
(4)DHパラメータの生成
./build-dh
(5)クライアント証明書・秘密鍵の作成
. ./vars
./build-key-pass client01
※接続するクライアントの数だけ作成。
※"client01"の部分は任意の文字ですが、後で実際のクライアントとの
相関が分かる程度に適当に。
※"Enter PEM pass phrase:"と聞かれたら適当なパスフレーズを入力。
例えばクライアント名と同じにしておくとか。
(これはこの後の(6)で消去してしまいます)
"A challenge password"と聞かれたら、こちらはEnterのみ入力でOK。
(6)クライアント自動接続のため、パスフレーズを消去
/mnt/ext/usr/bin/openssl rsa -in client01.key -out client01.key
(全部のkeyについて実施)
(7)作成したファイルを初期化されないフォルダへ移動
cp -r /etc/openvpn/easy-rsa/keys /etc/config/openvpn/
※/etc/configフォルダはHDD領域にあるため、再起動でも消されないそうです。
(8)クライアント端末へコピーするためファイルの取り出し
※USBメモリ等にコピー。
自分はこの時NASと設定用ノートPCのみのLAN環境でしたので、共有フォルダ
(Public)経由でファイルを取り出してしまいましたが…
(まだ長くなるので分けます。つづく)
まずはローカルのネットワークでファイル共有が想定通りに動くかを確認です。
当初、確認をせず先にOpenVPNをこねくり回していたのも余計な時間を食った一因でした。
日頃知ったかぶりで共有設定なぞしてるもんだから、少し設定画面が変わると全くつながらなくなったりして…
そもそも職場にWindowsXPと7が混在しているのが混乱の元。
片方ではつながるのに片方では見えないとか。
結局、基本的なネットワークドライブへのつなぎ方を忘れていたとか、テスト時に1台のPCからユーザ名をいろいろ変えてアクセスしようとして失敗したとか、その種の不手際でしたが…
で、いよいよOpenVPN。
まずは標準のままweb画面で設定を進めてみると、クライアントに置く設定ファイルと証明書は生成されますが、鍵が作られません。
ということは、クライアント側から接続する都度、IDとパスワードを手入力しなければなりません。
職場では多様なスキルレベルの人が使うため、トラブルの種は極力排除したい。
すなわちPCの電源を入れさえすれば勝手にファイルサーバにつながっているようにしたかったのです。
(セキュリティ的な話は置いといて)
それにはplamoでの運用と同様、ユーザ(端末)ごとに秘密鍵を作ればよいだろう、と。
QNAPのNASは結構カスタマイズが効くらしいので、NAS内に潜り込んでLinux的に手設定すれば済むだろう、と。
これが甘かった。
実際はそう好き放題にできるわけではなく、基本的にはNASを起動するたびにweb画面での設定内容を書き戻す仕様になっているのです。
せっかく自分で設定ファイルなど修正しても、電源を入れ直すとシステムが保持している設定に上書きされてしまうのです。
それを避けるには
1)自分で作った設定ファイルを、あらかじめHDD内の特殊な階層に保存しておく
2)NASが起動して所定の動作(システムが保持するファイルを書き戻す)を終えてから、OpenVPNの起動シーケンスに入るまでの間に、1)のファイルを再度上書きするようなシェルスクリプトを仕込んでおく
3)結果、まんまとこちらの思い通りの設定で立ち上がる…
…という、極めてトリッキーな手法を用いねばならないのです。
そんなわけで、例によってさまざまなサイトのお力を借りながら数ヶ月もの間悩んだ挙句、どうにかまとまったのが以下の手順でした。
1.サーバ/クライアントの証明書・鍵作成
これは昔やったのと同じですが、細かく書いてなかったのできちんと書いておきます。
○NAS内で証明書等を作成する
SSHで管理者ログインし操作。
(1)vi /etc/openvpn/easy-rsa/var
以下の項目を修正。
export KEY_COUNTRY=JP
export KEY_PROVINCE=Saitama (←都道府県ですね)
export KEY_CITY=xxxxx (←○○市とか)
export KEY_ORG="xxxxx" (←会社名とか)
export KEY_EMAIL="xxxxx@xxxxx.jp" (←法人のメールアドレスにしました)
※再起動で初期化されるとQNAP社(台湾)の設定に戻ります。
証明書と鍵を作る時しか使いませんが、保存が必要な場合は
この後の(7)のように別フォルダへコピーしておきます。
(2)CA証明書・CA秘密鍵の作成
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca
※質問にはEnterのみ入力。
(3)サーバ証明書・秘密鍵の作成
. ./vars
./build-key-server server
※"server"の部分は適当に。自分のところはファイルサーバは
これ1台だけなので、このまま。
※質問にはEnterのみ入力。ただし"A challenge password"と聞かれたら
適当なパスワードを考えて入力します。
(4)DHパラメータの生成
./build-dh
(5)クライアント証明書・秘密鍵の作成
. ./vars
./build-key-pass client01
※接続するクライアントの数だけ作成。
※"client01"の部分は任意の文字ですが、後で実際のクライアントとの
相関が分かる程度に適当に。
※"Enter PEM pass phrase:"と聞かれたら適当なパスフレーズを入力。
例えばクライアント名と同じにしておくとか。
(これはこの後の(6)で消去してしまいます)
"A challenge password"と聞かれたら、こちらはEnterのみ入力でOK。
(6)クライアント自動接続のため、パスフレーズを消去
/mnt/ext/usr/bin/openssl rsa -in client01.key -out client01.key
(全部のkeyについて実施)
(7)作成したファイルを初期化されないフォルダへ移動
cp -r /etc/openvpn/easy-rsa/keys /etc/config/openvpn/
※/etc/configフォルダはHDD領域にあるため、再起動でも消されないそうです。
(8)クライアント端末へコピーするためファイルの取り出し
※USBメモリ等にコピー。
自分はこの時NASと設定用ノートPCのみのLAN環境でしたので、共有フォルダ
(Public)経由でファイルを取り出してしまいましたが…
(まだ長くなるので分けます。つづく)