BlackBerry用にIKEv2なVPN環境を作る
BlackBerry OS10はVPNに使える方式が、
- Check Point Software Technologies VPN-1
- Cisco VPN 3000 Concentrator
- Cisco Secure PIX Firewall VPN
- Cisco IOS (Easy VPN Server 搭載)
- Cisco ASA
- Cisco AnyConnect
- Juniper IPsec VPN(SRXシリーズ)
- Juniper IPSec VPN(NetScreenシリーズ)
- Juniper SSL VPN(MAG/SAシリーズ)
- Microsoft IKEv2 VPNサーバー
- 汎用IKEv2 VPN Server
と、法人向けの接続方式が豊富な反面、割と一般向けに広まっているL2TP/IPsecが使えません。
私の場合は、お手軽なニフティのスマートサーブを利用して自宅へVPN接続できるようにしています。
自宅LAN内のLinuxサーバー上のrep2で2chを読み書きしているので、VPN接続を便利に使っていました。
せっかくのQWERTY端末でこういった読み書きが出てくるコンテンツを使えないのも残念なので、汎用IKEv2 VPN Serverを構築してみました。
サーバーに使ったのは上記のLinuxサーバーでUbuntu 14.04をインストールしてあるので、strongSwanをaptでインストールします。
設定にはほぼこちらを参考にさせていただきました、
基本の設定はほぼコピペですが幾つか変更をしています。
ちょっとはまった所は、ipsec.confの
leftid=yourdomain.dyndns.org
の部分。
FQDNだけで良いと思っていたのですが、
leftid="C=US, O=xxx, CN=yourdomain.dyndns.org"
と使用しているサーバー証明書のDNをフルに指定してやらないと、strongSwan側は接続完了としているのに、BlackBerry Q5は認証失敗としてエラーになってしまってました。
あとは、
rightauth2=eap-mschapv2
は証明書の認証が通っているにもかかわらず、エラーになるようだったので今回のBlackBerry専用の設定には不要なため削除しています。
Firewallの設定はこのサーバーは既にFirewallの後ろにいるので無設定で、必要なNAT設定は
leftfirewall=yes
の部分でstrongSwanがiptablesを適切に設定してくれます。
strongSwanの設定が終わったら、あとはFirewall側でLinuxサーバーに対してUDP 500と4500を転送してやります。
あとは手順の中で作成したclientCert.p12をBlackBerryにインポートしたあと、BlackBerryの設定でVPNの設定を行います。
- サーバーアドレス: (ダイナミックDNSで取得したFQDN)
- ゲートウェイタイプ: 汎用IKEv2 VPN Server
- 認証の種類: PKI
- 認証IDの種類: ID証明書の識別名
- クライアント証明書: (作成した証明書の名前)
- ゲートウェイ認証タイプ: PKI
- ゲートウェイ認証IDの種類: ID証明書の識別名
- 信頼されない証明書を許可: プロンプト
- ゲートウェイCA証明書: (作成した証明書のCA名)
- Perfect Forward Secrecy: ON
- IPを自動的に決定: ON
- DNSを自動的に決定: ON
- アルゴリズムを自動的に決定: ON
という設定でOKでした。
以下設定ファイル群
ipsec.conf
config setup
strictcrlpolicy=no
conn %default
ikelifetime=24h
keylife=24h
keyexchange=ikev2
dpdaction=clear
dpdtimeout=3600s
dpddelay=3600s
compress=yes
conn roadwarrior
left=%any
leftsubnet=0.0.0.0/0
leftauth=pubkey
leftcert=serverCert.pem
leftid="C=JP, O=Tokyo, CN=(FQDN)"
leftfirewall=yes
right=%any
rightsourceip=%dhcp
rightauth=pubkey
rightcert=clientCert.pem
rightfirewall=yes
auto=add
esp=aes-aes256-sha-modp1024,aes256-sha512-modp4096
ike=aes-aes256-sha-modp1024,aes256-sha512-modp4096
strongswan.conf
charon {
threads = 16
dns1 = 8.8.8.8
dns2 = 8.8.4.4
plugins {
dhcp {
server = 192.168.1.2
}
}
}
pluto {
}
libstrongswan {
crypto_test {
on_add = yes
}
}
ipsec.secret
# This file holds shared secrets or RSA private keys for authentication.
# RSA private key for this host, authenticating it to any other host
# which knows the public part. Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".
: RSA serverKey.pem
ディスカッション
コメント一覧
まだ、コメントがありません