pfSense

KVM上で動かす

  • virtioなNICを使う場合,hardware checksum offloadingを無効にしないとよろしくなさげ

IPSec Xauth PSK

  • BlackBerry ClassicがL2TP/IPSec対応してないっぽい
  • VyOSだとXauthの設定ができないっぽい
  • じゃあVyOSの後ろにpfSenseを建てよう
(internet)
    |
[VyOS]---(192.168.101.0/24)---[pfSense]
    |                             |
 ---+--+--(192.168.100.0/24)------+-----
       |
      [PC]
  • espと500/udp,4500/udpをpfSenseのWAN側にDNAT
  • virtual ipに設定したネットワークをpfSenseのLAN側にスタティックルーティング
    • VyOS向けにL2TP/IPSec用のIPSecが張れなくなるけどそれは後で考えよう

BlackBerry Classic側の設定

  • ゲートウェイタイプ Cisco ASA
  • 認証の種類 XAUTH-PSK
  • グループユーザー名 (Phase 1 proposalで設定したPeer identifier)
  • グループパスワード (Phase 1 proposalで設定したPre-Shared Key)
  • ユーザー名・パスワード (Group managerでUser - VPN - IPsec xauth Dialinの権限を与えたグループに所属するユーザ)

ちなみにAndroidは

  • IPSec ID (Peer identifier)を設定するとaggressiveモードになるが,なぜか接続できない
    • strongSwan側はAndroidのバグと考えているらしい
  • mainモードだと接続できるが,Peer identifierを設定しないとBlackBerry側で設定エラーになる

IKEv2 with EAP-MSCHAPv2

IKEv2 with EAP-TLS

参考: IKEv2 with EAP-TLS - PFSenseDocs

わかったこと

  • BlackBerry Classicの場合SHA-256非対応のようなのでHash algorithmはSHA1にする

    charon: 15[CFG] received proposals: IKE:AES_CBC_256/AES_CBC_192/AES_CBC_128/3DES_CBC/DES_CBC/HMAC_SHA1_96/HMAC_MD5_96/PRF_HMAC_SHA1/PRF_HMAC_MD5/MODP_1024/MODP_768
  • iOS 9.3.1の場合

    IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048,
    IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256,
    IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1536,
    IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
    IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
  • Windows 10 (1511) の場合

    IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
    IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
    IKE:3DES_CBC/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024,
    IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024,
    IKE:3DES_CBC/HMAC_SHA2_384_192/PRF_HMAC_SHA2_384/MODP_1024,
    IKE:AES_CBC_256/HMAC_SHA2_384_192/PRF_HMAC_SHA2_384/MODP_1024
  • System: User ManagerのユーザとSystem: Certificate Managerで作成したUser Certificateが関連づけられている必要はなさそう
    • OpenVPNでは必要あり?
  • VPN: IPsec: KeysにType=EAPのPSKを追加する必要はない(ゲートウェイ認証タイプをPKIにするので)

BlackBerry Classicでの設定例

  • サーバーアドレス: pfSenseのWAN側のホスト名(dynamic dns)
  • ゲートウェイタイプ: 汎用IKEv2 VPN Server
  • 認証の種類: EAP-TLS
  • 認証IDの種類: 完全修飾ドメイン名
    • IPv4にすると「接続エラー VPNプロファイルに接続できません。設定エラー」となる
  • 認証ID: example.com
    • pfSense側のPhase 1設定でPeer identifierをAnyにしてるのでたぶん何でもいい
  • CA証明書:
    • System: Certificate ManagerでUser Certificateの.p12をexportしてBlackBerry Classic上でインポートする(.p12にはca cert,user cert,user cert keyが含まれる)
    • exportした後に別途パスワードを設定する必要あり(後述)
  • クライアント証明書
    • CA証明書と同様にしてインポートしたものを選択
  • EAP ID:
    • インポートしたクライアント証明書のCN(たぶん)
  • ゲートウェイ認証タイプ: PKI
  • ゲートウェイ認証IDの種類: 完全修飾ドメイン名
    • ここがポイントっぽい
  • ゲートウェイ認証ID:
    • My Certificateに設定したServer CertificateのCN(=My identifierのDistinguished nameと同じになるはず)
  • 信頼されない証明書を許可: プロンプト
  • ゲートウェイCA証明書:
    • CA証明書と同様にしてインポートしたものを選択
  • Perfect Forward Secrecy: オフ
    • オンにしたいけどまだ試してない
  • IPを自動的に決定: オン
  • DNSを自動的に決定: オン
  • アルゴリズムを自動的に決定: オン
  • IKE有効期間(秒): 86400
  • IPSec有効期間(秒): 10800
  • NATキープアライブ(秒): 30
  • DPD間隔(秒): 240
  • プロキシを使用: オフ

exportした.p12ファイルにパスワードを設定する

% openssl pkcs12 -in key_original.p12 -out temp.pem -nodes
Enter Import Password:
MAC verified OK
% openssl pkcs12 -export -in temp.pem -out key_new.p12
Enter Export Password:
Verifying - Enter Export Password:

Windows 10で「ポリシーの一致エラー」になる

  • ERROR_IPSEC_IKE_POLICY_MATCH

参考

Last edited by Anonymous, 2016-05-01 15:46:08