Yes, I'm really enjoying everything!

smilemark blog

Computer & Network 自宅サーバ日記

OpenVPNを導入

更新日:

openvpn_icon_by_archeinre-d5r1nlsメンテナンス用に外から自宅内にアクセスするためのVPN回線を用意してたけど、これはルータYAMAHA RTX1100の持ってた機能。YAMAHA RTX1100を外したので、VPNをLinuxサーバに担わせることにした。

普通にIPsecとか使えるVPNを入れるのも良いけど、噂によるとカーネルに依存しないOpenVPNがお手軽でしかもセキュアらしい。

外からのメンテにはiPadなんかを使うことがあるんだけど、iOS用公式OpenVPN Connectってのも最近リリースされたので、問題なくOpenVPNを採用できる。

Linuxサーバ(CentOS 6)にOpenVPNをインストールする方法はここを参考にしました。
http://centossrv.com/openvpn.shtml

iOSのOpenVPN Connectに食わせる設定ファイルはこんな感じのXMLファイル。認証局の証明書、クライアント証明書、クライアントの秘密鍵、TLS認証鍵を1本のファイルに記載した物です。
いろいろググって出てくる情報だとtls-auth(TLS認証鍵)がないけど、今回のサーバの設定だと必要なのがポイント。

remote smilemark.jp

<ca>
-----BEGIN CERTIFICATE-----
MIIDvzCCAyigAwIBAgIJAKuk/4XcJLQ5MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
.....
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
MIIEEDCCA3mgAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBnDELMAkGA1UEBhMCSlAx
....
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDa8z8eYoPrYUpf+3ZWpZCD+W3fBtxBsqAI9N/OP1csI2tLghrL
....
-----END RSA PRIVATE KEY-----
</key>

<tls-auth>
-----BEGIN OpenVPN Static key V1-----
3ff3fd4c0fcb2f17615e873d7c754598
....
-----END OpenVPN Static key V1-----
</tls-auth>

もう一つハマるのが、このエラー。
そのままだとOpenVPN Connectで接続しようとすると、全く繋がらずにOpenVPN Connectにこんなエラーが出ます。

EVENT:CORE_ERROR
PolarSSL:error parsing config private key : X509-Inbalid RSA key tag or value :
ASN1 - ASN1 tag was of an unexpected value

これはRSAキー(クライアントの秘密鍵)のフォーマットが違うためらしいです。OpenVPN ConnectではSSLエンジンとしてPolarSSLってのを使ってるためらしいです。

以下のようにして変換したRSAキーを使うことで解決できました。

openssl rsa -in <現在の秘密鍵ファイル> -out <変換後の秘密鍵ファイル>

-Computer & Network, 自宅サーバ日記

Copyright© smilemark blog , 2024 All Rights Reserved Powered by STINGER.