TL;DR. "○○_openvpn_remote_access_l3.ovpn"を開いて、"auth SHA1"を"auth SHA256"に書き換えろ
最近blogを書いてないので小ネタ。私の持ってるRaspberryPiはSoftEther Serverを入れてVPNサーバ化している。初期設定方法は以前書いた記事の下の方に、説明無しで書いてある。
SoftEther VPN プロジェクト - SoftEther VPN プロジェクト
science-as-a-candle-in-the-dark.hatenablog.com
が、スマホで使える専用クライアントソフトがないので、OpenVPNサーバを有効化して、OpenVPNクライアントソフトから繋いでる。OpenVPNサーバを有効にするには、まずSoftEtherサーバ管理マネージャを開き、下の矢印部分をクリックする。
そこで①にチェックを入れれば有効化される。一応、ポートはデフォルトから変更しておくと安心だろう(これは諸説あるが割愛)。OpenVPNの設定ファイルは自力で作るのが難しいので、②をクリックさせて自動で生成させることになる。
さて、そうすると"OpenVPN_Sample_Config~.zip"なるファイルが母艦PCにダウンロードされる。その中にある"○○_openvpn_remote_access_l3.ovpn"なるファイルが設定ファイルになる。
これをスマホにコピーして、適当なOpenVPNクライアントソフトをインストールし、この設定ファイルをインポートすれば良い。ここら辺も割愛する。問題なく設定が完了すれば繋がるはずだ。が、問題は、この設定ファイル、デフォルトでは暗号化アルゴリズムがAES-128-CBC、ハッシュ関数にSHA-1を使用する設定となる。ログを見てみるとはっきりするだろう。
暗号化アルゴリズムと暗号利用モードは基本的にデフォルトのAES-128-CBCで良いだろう。しかしいまどき危殆化したSHA-1を使う理由はない。さっくりと変更してしまうべきだ。(ちなみにSoftEtherサーバ管理マネージャの「暗号化と通信関係の設定」を弄ってもOpenVPNでの設定には影響しない)
先ほど自動生成した"○○_openvpn_remote_access_l3.ovpn"、中身はテキスト形式なので適当なテキストエディタで開く。ざっと眺めていけば繋ぐサーバのアドレスやポートが書いてあることがわかるだろう。ポイントはファイルの中盤付近にある暗号化・認証アルゴリズムの設定だ。下記の文章が見つかるはずである。
############################################################################### # The encryption and authentication algorithm. # # Default setting is good. Modify it as you prefer. # When you specify an unsupported algorithm, the error will occur. # # The supported algorithms are as follows: # cipher: [NULL-CIPHER] NULL AES-128-CBC AES-192-CBC AES-256-CBC BF-CBC # CAST-CBC CAST5-CBC DES-CBC DES-EDE-CBC DES-EDE3-CBC DESX-CBC # RC2-40-CBC RC2-64-CBC RC2-CBC CAMELLIA-128-CBC CAMELLIA-192-CBC CAMELLIA-256-CBC # auth: SHA SHA1 SHA256 SHA384 SHA512 MD5 MD4 RMD160 cipher AES-128-CBC auth SHA1 ###############################################################################
この"auth SHA1"を"auth SHA256"に変更して保存する。もちろんSHA384や512でもいい。先ほどと同様にこの設定ファイルをインポートして接続、ログを確認すればSHA-256が使用されていることが分かるはずだ。
思わず暗号化アルゴリズムも国産のCamelliaなどに変更したくなるが、大抵エラーが出るので自重しよう。むしろちゃんと設定できて、エラーが出なければ環境を教えて欲しい。以上である。
ちなみになぜIPsec/L2TPを使わないのかというと、設定が複雑すぎるために「本当にセキュアな設定に出来ているのか」が自分ではわからないからである。俺には出来らぁ!!と言う方は頑張って欲しい。