フルリモートワーク前提の時点でかなり気軽に外出やゲームなどは実行可能であるものの(?)、「どうしても今ちょっと外に出ないといけない!」なときに「このあと連絡するのですぐ返事ください!」的な状態だとさすがに困ります。
でもよく考えたら VPN の設定をケータイに入れちゃえばよくない?ということに気づき、OpenVPN のスマホアプリ版を探してあれこれやってみたらちゃんと繋がったので今回はこれを紹介してみます。
一部ある程度周辺技術のベース知識がないと突破できないと思われるポイントがあったので、そこの説明がメインになると思われます。
もちろんこの方法を使って職務中にディズニーランドへ行くことも可能です。その場合はオンライン会議中にパレードの音声が紛れ込まないよう十分注意してください。
手順
当然なんですけど、お勤めの会社で提供されている VPN が OpenVPN ではない場合は色々読み替えてもらう必要があります。OpenVPN ならではの機能は今回関連しないので、事実上たぶんなんでもいけるはず。もちろん要求される知識ハードルはいくらか高くなります。
そもそも VPN の利用自体が会社から支給されるデバイスのみに制限されているケースも多々あると思われるので、この場合は何をやっても今回の方法は無理です。
MAC アドレスを偽装するのは簡単ですが、既に登録されているはずのアドレスと重複するデバイスが存在するのは明らかにおかしいし、そのような小細工の上で VPN がちゃんと機能するかもだいぶ怪しいし、そもそもデバイスの判定が MAC アドレスだけなのかも疑問が残ります。
素直に諦めましょう。
1.提供されている OpenVPN プロファイルをコピーする
まずは会社支給の PC で正しく動いている OpenVPN のプロファイルを抽出します。
- ファイル自体が提供されている場合は
.ovpn
拡張子のものを探します。 - ファイルがないときは [タスクトレイ] → [設定] → [Advanced] → [設定ファイル] → [ディレクトリ] に表示されているディレクトリから拡張子が
.ovpn
のものを探します。複数ある場合は [タスクトレイ] → [設定の編集] で開かれるものが現在アクティブなコンフィグなのでこれをコピーします。
これを個人用の PC かなんかに持ってきたら次の作業をします。
2.「鍵」もコピーする
VPN の接続にはさっきコピーしてきたコンフィグファイルのほかに、認証のキーとなる(文字通りの)「鍵」が必要です。パスワードみたいなものだと思ってください。
探すファイルは 2 つです。だいたいコンフィグファイルが置いてあったディレクトリ内にあると思います。なければ周辺を探してみてください(実際のパスを調べることもできるのでそれを知りたい場合は次の手順をどうぞ)。
- 拡張子が
.crt
のもの - 拡張子が
.key
のもの
一応言っておきますが、鍵という名前がついているくらいなのでこれはそこそこ機密情報です。管理は十分お気をつけて。鍵ファイルのコピーをメールで送信したりしようとすると、もし弾かれたときに管理者に中身を見られて「何しようとしてんの???」ってなるよ!
もし鍵っぽいファイルが見つからなかった場合は、一旦ここの手順をすっ飛ばして次へ進んでください。運が良ければ作業がひとつ減ります。運が悪いと… たぶんどうにもできないです。
3.スマホアプリ版の OpenVPN が認識できる形式にファイルの中身を修正する
PC 版の OpenVPN は鍵ファイルを別のファイルに切り出してそれをコンフィグファイルから参照することができるのだけど、スマホアプリ版ではそれがなぜかできないことがあるらしく、なんとかしてまとめる必要があります。
使うアプリはこれ。
あといまさらなんですけどスマホアプリ版と言っているのは今回は iOS 版しか試してません。Andoroid でまた色々違ったらごめんなさい…。
というわけで、まずは抽出してきたコンフィグファイルの中身を確認します。
cert xxxxxxxxx.crt key xxxxxxxxx.key
みたいなやつが鍵ファイルの参照部分です。ここがパス表記(/
が含まれているもの)になっている場合は、そのフォルダが鍵ファイルの在り処を示しています。
そしたらこの 2 行は削除してください。参照ができない代わりに、このコンフィグファイル内に直接鍵データを埋め込むからです。
そして、削除した場所に下記を入力します。
<cert> </cert> <key> </key>
次は鍵データを持ってきます。
手順 2 でコピーした鍵ファイルをそれぞれ開き、-----BEGIN CERTIFICATE-----
などのように書いてある部分から -----END CERTIFICATE-----
などのようになっている部分までまるっとコピーします。
.crt
ファイルでは「BEGIN CERTIFICATE」、.key
ファイルでは「BEGIN ENCRYPTED PRIVATE KEY」となっているはずです。- BEGIN とか END とかの点線の行もコピーに含めます。
そしたらこれをさっきコンフィグファイルに追加したそれぞれのタグの間に挿入します。
<cert> -----BEGIN CERTIFICATE----- AAAAB3NzaC1yc2EAAAADAQABAAABgQDZvsx1HDNr6JrQ9j7wFFMT2jTsILiJnlB5 bwIDrbyAOt1Xh4R2NXR3ALcAo4N/wXv4gIz52WqkuM40juZ7r8fShW9Kstx4knVQ +g0T4P0anS1Dupg97Rbe8HmhfcNOdjAyHz1NIrb1FZ8Mx2Tjd10EhSEPiDcoALR5 UjqBkEryRQ9uh+4KlMFbuyJ5xBIupuC2Xt3+LDO1CeW6MWuFmG9wDd0G4EfUXi8g RfIRNNnk9QBGaRuJvjEF7j92msl06PtTZHqnBPIb62/yd06nQYX9qb6PSsqw6qfr +mGdXKwZf7ySFjzjKFNmgKiOQj9zhAioMKYfMrwgB1UZsyt5R96D3QOWkD6QSAVY dKpYNCsRTzMmoYXPPPrK8223X0bO2h5PrTqeVAFapSoq5PtYVlfLYYzITux1k7Tc fDMdk43ddBIUhD4g3KAC/0XyETTZ5PUARmkbib4xBe4/dprJdOj7U2R6pwTyG+tv Dr6YZ1crBl/vJIWPOMoU2aAqI5CP3OECKgwph8yvCAHVRmzK3lH3oPdA5aQPpBIB MRAwDgYDVQQDDAdQaW9uZWVyMB4XDTIyMDYyMDAxMjUxN1oXDTI0MDkyMjAxMjUx EjsbyNyfh404I57zdCeOMY7kxLUzlGx2ZcmPSexHozEsVgxbhNxgDD53UxhNKc7Q PRP5qPOVJyBKGWt7oatEunEYs4J0Mf8EAvlL1VzH8D72qUN5ZSJM2YIeVutv24hi YmeDEkSW4WbVMKg0qvlXEIwicX0Oe9LthEaVIbb4lgla1HZorR1PuuFyMaOVEyjI ZZAfubQqmylwd1FycNU3hTFDDQpM -----END CERTIFICATE----- </cert> <key> -----BEGIN ENCRYPTED PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdz NhAAAAAwEAAQAAAYEA2cdRwza+ia0PY+8BRTE9o07CC4iZ5Rf28CA628gDrdV4eE C3AKODf8F7+ICM+dlqpLjONI7me6/oNE+D9Gp0tQ7qYPe0W3vB5oX3DTnYwMh89T GF/am+j0rKsOvphnVysGX+8khY84yhTZoCojkI/c4QIqDCmHzK8IAdVGbMreUfeg W4TcYAw+d1MYTSnO0GJngxJEluFm1TCoNKr5VxCMInF9Dv3vS7YRGlSG2+JYJWtR Dr6YZ1crBl/vJIWPOMoU2aAqI5CP3OECKgwph8yvCAHVRmzK3lH3oPdA5aQPpBIB b0r+y3HiSdVD90qlg0KxFPMyahhc88+srzbbdfRs7aHk+tOp5UAVqlKirk+1hWV8 7HWTtNyp+sHn8SOxvI3J+HjTgjnvN0J44xjuTEtTOUbHZlyY9J7EejMSxWDFuE3G MhlkB+5tCqbKXB3UXJw1TeFMUMNCkwAAAAMBAAEAAAGBANBYOcaS1xKLuE+Y1hRG uBsglUNfBgRS8CWVKzCT+4vDdBptWqaHyEQu7NU+1qAo+jeAffYWSDZIgdOZxtnM 2w7KEg8s4Bl+rVTqKQq8tCax4INH05wa/qZtSmf25Mqc+oXXWuivkfIN5D7fFumO fLwlD59cfjkQJIVrXLCgxG6l3DVlhQ+J5q78EgHfdaF6Bp0rZ7i//N0IKNXVmNa4 AMB2JZscOHwaiL4lZ2dp02TZNk0um4cigaG3FQCwtwNUWVA6bnVdmj+SCa9frgbO BPbpOU3hTWetoEnx1cWX+f0jnLe1vL8q7VDV/kMUijLfg5RYBbNw4oUVoYdiyUkw DJ0QqX3HwWLaAglMve56gw7v4NWP/+swmxOe3vDOTNotY8TMgENGYoh7qTFZrTIG SSPWtMZ2m19xQ/gqY7LQ9LG1EnX8yWYi06feAZItS5ImHeh3oAAADBAOxdNQ8Xb4 VWg= -----END ENCRYPTED PRIVATE KEY----- </key>
こんな感じになっていれば OK!
※もちろんここに書いてある鍵データは適当なダミーなのでコピーしても何も起きません
4.アプリにコンフィグファイルをセットする
完成したコンフィグを OpenVPN アプリにセットします。
アプリからファイルを読み込むなり、ファイル管理アプリから共有で開くなり、好きな方法で OpenVPN アプリに読み込ませます。
[Profile Name] はなんでもよくて、[Server Hostname] はおそらく既に入力されていて編集も不可能な状態になっているはず(ここが空欄の場合、コンフィグファイル内にある自分の会社のドメインっぽいやつを探してくればだいたい当たります)。
会社 PC でもパスワードを入力していた場合は [Private Key Password] がそれのことなのでチェックを入れて保存します。
5.つなぐ
問題がなければこれで接続できるはず!
![openvpn-screenshot-3](https://mirumi.in/wp-content/uploads/openvpn-screenshot-3.png)
接続に成功している雰囲気はこんな感じ。
あとは Office なり会社ネットワークでのログイン画面へ移動してログインを済ませます。VPN で弾かれるのはだいたいログインするときだけのことが多いので、一回ログインできればセッションが継続する限り VPN を切っても引き続きアクセス可能です。要は「Twitter しつつディズニーランドに行ける」ということ。
注意点。
普通の企業なら VPN とは別にプロキシというものによってインターネット接続を制限していることがほとんどで、この場合は通常のウェブページへのアクセスはできないはずです。ネットワーク自体は接続に成功しているはずなので、例えば Google のトップページやメールの更新などは機能すると思います(プロキシの設定にはよる)。
これは一般的なプロキシの設定で回避できるので今回は割愛します。
おわりに
他の会社のネットワーク事情ってわりと気になるので色々教えてほしいな~とか思ってます。
スタートアップやテクノロジーイケイケの会社だとたぶん会社ネットワークだのプロキシだのそんなもんはないだろうし、そもそも PC は自分のもの使っていいよとかあるだろうしでこんな記事は全然需要がないと思われる。
反対に、そこそこしっかりした企業ならこの記事で書いたような内容がそもそもどこかで実行できないようにせき止められていることも珍しくないはずです(うちはかなりガバガバで助かってる)。
こういう情シスの設定レベルって一体どのあたりがボリュームゾーンなのか、そして(エンジニアではない)一般社員のネットワークに対する印象レベルってどんなもんなのか、などなど、色々手探り感を感じた記事でした。
おしまい。
この記事へのコメント
大変たのしく記事拝見させて頂きました。
(面白かったてす。)
いつも、素晴らしい記事を有難うございます。
中小企業(私のところ)では、基本的に家庭のネットワークにスイッチングHUBを増設して複合機、NASをぶら下げた程度のものがほとんどではないかと思います。
一部社員の中に、ネットワークを有効活用して仕事を効率的にしたいという意識があり、それが会社に了承された場合にはネットワークが改善されるといった感じでしょうか。
ただ、社内のLANの整備についてはインターネットでの検索でいろいろ改善できるように情報がそろったように思いますが、外部から社内のデータにストレスなくアクセスさせるための記述は少ないと思いますので、今回の様な記事は大変有益に感じました。
これからも、お体に気を付けて素晴らしい記事を書き続けて下さい。
ありがとうございます!
なるほど、そんな感じの企業さんも多いんですかね。
ネットワークは業務上の精神衛生面で特筆して重要な点だと思っているのですが、普段技術的な仕事をしていない方からするとあまりそう感じていないみたいです(僕の会社でも技術以外の部門の人とは全く話が合わないです)。
これからもゆるくやっていきますのでよろしくお願いいたします~