rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

NVR510 L2TP/IPSec VPNの暗号組合せ(cipher suite)をWindows/macOS/Linux(strongSwan/xl2tpd)で接続確認

2020-05-30 09:00:00 | NVR510
NVR500とWindowsおよびmacOSのL2TP/IPsec VPN接続で利用できる「cipher suite」は、「Win10 VPN接続時のNVR500 L2TP/IPsec ISAKMP復号鍵が壊れて表示」で確認した。NVR510で変化があるのか確認してみた。


(1)L2TP/IPsecサーバー
NVR510(Rev.15.01.16)
接続確認するcipher suiteは、ISAKMP(IKE)、ESP各プロトコルで「AES128/AES256」「SHA1/SHA256」の組合せとする。
NVR510のISAKMP(IKE)のデフォルトcipher suiteは、「encryption=3des-cbc/DH Group=modp1024/Integrity(hash)=sha/PFS=off」となっており、サーバー側動作の場合、「negotiate-strictly=off」で接続クライアントと下記設定値範囲で決定される。
ipsec ike encryption=des-cbc/3des-cbc/aes-cbc/aes256-cbc
ipsec ike group=modp768/modp1536/modp1024/modp2048
ipsec ike hash=md5/sha/sha256
ipsec ike pfs=off/on
ipsec ike negtiate-strictly=off/on
espのSAポリシー
指定値以外、接続クライアント要求を受け付けない。
esp_algorithm=des-cbc/3des-cbc/aes-cbc/aes256-cbc
ah_algorithm=md5-hmac/sha-hmac/sha256-hmac

strongSwan(5.7.2-1)/xl2tpd(1.3.12-1.1)/debian 10 Buster(10.4)
NVR510のL2TP/IPsecと比較するため「macOS MojaveのIKEv2 IPsec VPN最大回線速度計測」で設定した「IKEv2」サーバに「L2TP/IPsec」接続設定を加え比較機とした。
/etc/ipsec.conf
### L2TP/IPsec
conn L2TP-VPN
    type=transport
    authby=secret
    pfs=no
    rekey=no
    keyingtries=1
    leftprotoport=udp/l2tp
    leftid=ipv4:172.24.1.10
    rightprotoport=udp/%any

/etc/xl2tpd/xl2tpd.conf
[global]
    port=1702
[lns default]
    ip range=192.168.10.10-192.168.10.20
    local=172.24.1.10
    refuse pap = yes
    refuse chap = yes
    require authentication = yes
    name=debian10-L2TP
    pppoptfile=/etc/ppp/options.xl2tpd

/etc/ppp/options.xl2tpd
name ppp-l2tp
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
mtu 1280
mru 1280
nodefaultroute
nobsdcomp
logfile /var/log/xl2tpd-ppp.log
利用できるcipher suitesは、IKEv1/IKEv2

(2)クライアント端末 macOS Mojaveのcipher suite設定
VPN接続開始時に「/var/run/racoon」に「システム環境設定・ネットワーク」VPN接続設定の「サーバアドレス」指定名で「指定名.conf」が生成される。
接続状態で「sudo cp /var/run/racoon/指定名.conf /etc/racoon/指定名.xconf」でコピーを作成。「man racoon.conf」に従い、複数ある「proposal」と「sainfo」を下記のように修正する(赤文字部)。この「指定名.xconf」ファイルを「/var/run/racoon」にコピーする。
/etc/racoon/指定名.xconf
log debug2;
path logfile "/var/log/racoon.log";

remote 指定名 {
   doi ipsec_doi;
   situation identity_only;
   exchange_mode main;
   verify_identifier off;
   shared_secret keychain "F5C6D87B-4AC5-4684-AC8D-1D6AC03B6581.SS";
   nonce_size 16;
   initial_contact on;
   support_proxy on;
   proposal_check obey;

   proposal {
      authentication_method pre_shared_key;
      hash_algorithm sha1;
      encryption_algorithm aes;
      lifetime time 3600 sec;
      dh_group 14;
   }
}

sainfo anonymous {
   encryption_algorithm aes;
   authentication_algorithm hmac_sha1;
   compression_algorithm deflate;
   lifetime time 3600 sec;
}
「/etc/racoon/racoon.conf」の最終行を一時的に下記のように変更する。
/etc/racoon/racoon.conf
# Allow third parties the ability to specify remote and sainfo entries
# by including all files matching /var/run/racoon/*.conf
# This line should be added at the end of the racoon.conf file
# so that settings such as timer values will be appropriately applied.
#include "/var/run/racoon/*.conf" ;
include "/var/run/racoon/指定名.xconf" ;
「/var/run/racoon/指定名.xconf」の「proposal」「encryption_algorithm」と「hash_algorithm」をike、「sainfo」の「encryption_algorithm」と「authentication_algorithm」をespのcipher suiteとして指定する。それぞれ「aes/aes 256/sha1/sha256」「aes/aes 256/hmac_sha1/hmac_sha256」を指定する。計測終了後、「/etc/racoon/racoon.conf」の修正した「include」行を元に戻しておく。「/var/run/racoon」ディレクトリは、VPN接続を実施しないと生成されない。「/var/run/racoon」ディレクトリが削除されたら、VPN接続を行い、「/etc/racoon/指定名.xconf」を再度コピーし、cipher suiteを指定して計測する。

(3)クライアント端末 Windows 10のcipher suite指定
Win10 VPN接続時のNVR500 L2TP/IPsec ISAKMP復号鍵が壊れて表示」のようにpowershellから下記のように指定する
Set-VpnConnectionIPsecConfiguration -ConnectionName "接続名" -DHGroup Group14 -PfsGroup None -CipherTransformConstants AES128 -AuthenticationTransformConstants SHA1 -EncryptionMethod AES128 -IntegrityCheckMethod SHA1
「CipherTransformConstants」と「AuthenticationTransformConstants」をike、「EncryptionMethod」と「IntegrityCheckMethod」をespのcipher suiteとして指定する。

(4)クライアント端末 Debian 10 Buster上のstrongSwan/xl2tpdのcipher suite指定
Linuxクライアント機としてSony VAIO VJP131に「Debian 10 Buster (4.19.98-1) GNOME」に「strongSwan 5.7.2-1/xl2tpd 1.3.12-1.1」と「Network-Manager-l2tp-gnome」を使用。
cipher suiteの設定は、「L2TP VPN Connection」の「VPN IPsec options」「Advanced」の「Phase 1 Algorithms/Phase 2 Algorithms」で設定する。

(5)確認結果
Win10 VPN接続時のNVR500 L2TP/IPsec ISAKMP復号鍵が壊れて表示」で確認した状態と変化なかった。
IKE(ISAKMP)のcipher suiteが「sha1」だとESPのcipher suiteが「aes256-sha256」で接続できない。
NVR500/510のISAKMPのphase2でSA(send)が生成され、SA(receive)が生成されるが、SA(receive)が受け入れられず、SA(send)の削除要求を受け削除、IKEのSAも削除され、SA(receive)が残り終了する。Debian 10 Buster+strongSwan+xl2tpdでは、正常にL2TP/IPsec接続が行われるので、NVR500/510側の問題と思われる。
「接続」欄の「グレー背景」は、デフォルト設定値での接続。

NVR510 ↔️ macOS Mojave


strongSwan/xl2tpd ↔️ macOS Mojave


---
NVR510 ↔️ Windows 10 home


strongSwan/xl2tpd ↔️ Windows 10 home


---
NVR510 ↔️ strongSwan/xl2tpd


strongSwan/xl2tpd ↔️ strongSwan/xl2tpd



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ひかり電話 HGW PR-S300SEのD... | トップ | NVR510 L2TP/IPSec VPNのciph... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

NVR510」カテゴリの最新記事