Hello,

I'm a bit lost here...

The client is the strongswan app. Initiating a connection works well and no 
problem is observed as long as the mobile phone is not put to sleep. After a 
few minutes on sleep no traffic goes trough anymore and the connection needs to 
be restarted first. 

But I still see UDP-encap ESP traffic on my server network interface...


I configured my VPN server on Debian as per the wiki on 
https://libreswan.org/wiki/VPN_server_for_remote_clients_using_IKEv2

config setup # from Debian default ipsec.conf
    
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10,%v4:!10.76.1.0/24
    interfaces="%defaultroute"

conn ikev2-cp
    left=%defaultroute
    leftcert="test VPN"
    [email protected]
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    leftrsasigkey=%cert
    right=%any
    rightaddresspool=192.168.1.100-192.168.1.200
    rightca=%same
    rightrsasigkey=%cert
    modecfgdns=10.76.1.1
    narrowing=yes
    dpddelay=12h
    dpdtimeout=13h
    dpdaction=clear
    auto=add
    ikev2=insist
    rekey=no
    fragmentation=yes

As per some strongswan tickets I put a long dpddelay. But without success.

In the log on the server nothing appears after the connection is started:

Mar  4 21:59:04 core pluto[25972]: "ikev2-cp"[28] 178.197.x.x #29: deleting 
other state #29 (STATE_CHILDSA_DEL) and NOT sending notification
Mar  4 21:59:04 core pluto[25972]: "ikev2-cp"[28] 178.197.x.x #28: deleting 
state (STATE_IKESA_DEL) and NOT sending notification
Mar  4 21:59:04 core pluto[25972]: packet from 178.197.x.x:21081: deleting 
connection "ikev2-cp"[28] 178.197.x.x instance with peer 178.197.x.x 
{isakmp=#0/ipsec=#0}
Mar  4 21:59:04 core pluto[25972]: packet from 178.197.x.x:36649: constructed 
local IKE proposals for ikev2-cp (IKE SA responder matching remote proposals): 
1:IKE:ENCR=AES_GCM_C_256;PRF=HMAC_SHA2_512,HMAC_SHA2_256,HMAC_SHA1;INTEG=NONE;DH=MODP2048,MODP3072,MODP4096,MODP8192,ECP_256
 
2:IKE:ENCR=AES_GCM_C_128;PRF=HMAC_SHA2_512,HMAC_SHA2_256,HMAC_SHA1;INTEG=NONE;DH=MODP2048,MODP3072,MODP4096,MODP8192,ECP_256
 
3:IKE:ENCR=AES_CBC_256;PRF=HMAC_SHA2_512,HMAC_SHA2_256,HMAC_SHA1;INTEG=HMAC_SHA2_512_256,HMAC_SHA2_256_128,HMAC_SHA1_96;DH=MODP2048,MODP3072,MODP4096,MODP8192,ECP_256
 
4:IKE:ENCR=AES_CBC_128;PRF=HMAC_SHA2_512,HMAC_SHA2_256,HMAC_SHA1;INTEG=HMAC_SHA2_512_256,HMAC_SHA2_256_128,HMAC_SHA1_96;DH=MODP2048,MODP3072,MODP4096,MODP8192,ECP_256
 (default)
Mar  4 21:59:04 core pluto[25972]: packet from 178.197.x.x:36649: proposal 
2:IKE:ENCR=AES_GCM_C_256;PRF=HMAC_SHA2_512;DH=MODP2048 chosen from remote 
proposals 
1:IKE:ENCR=AES_CBC_128;ENCR=AES_CBC_192;ENCR=AES_CBC_256;ENCR=3DES;INTEG=HMAC_SHA2_256_128;INTEG=HMAC_SHA2_384_192;INTEG=HMAC_SHA2_512_256;INTEG=HMAC_SHA1_96;INTEG=AES_XCBC_96;PRF=HMAC_SHA2_256;PRF=HMAC_SHA2_384;PRF=HMAC_SHA2_512;PRF=AES128_XCBC;PRF=HMAC_SHA1;DH=ECP_256;DH=ECP_384;DH=ECP_521;DH=BRAINPOOL_P256R1;DH=BRAINPOOL_P384R1;DH=BRAINPOOL_P512R1;DH=CURVE25519;DH=MODP3072;DH=MODP4096;DH=MODP6144;DH=MODP8192;DH=MODP2048[first-match]
 
2:IKE:ENCR=AES_GCM_C_128;ENCR=AES_GCM_C_192;ENCR=AES_GCM_C_256;ENCR=CHACHA20_POLY1305;ENCR=AES_GCM_B_128;ENCR=AES_GCM_B_192;ENCR=AES_GCM_B_256;ENCR=AES_GCM_A_128;ENCR=AES_GCM_A_192;ENCR=AES_GCM_A_256;PRF=HMAC_SHA2_256;PRF=HMAC_SHA2_384;PRF=HMAC_SHA2_512;PRF=AES128_XCBC;PRF=HMAC_SHA1;DH=ECP_256;DH=ECP_384;DH=ECP_521;DH=BRAINPOOL_P256R1;DH=BRAINPOOL_P384R1;DH=BRAINPOOL_P512R1;DH=CURVE25519;DH=MODP3
 072;DH=MODP4096;DH=MODP6144;DH=MODP8192;DH=MODP2048[...
Mar  4 21:59:04 core pluto[25972]: packet from 178.197.x.x:36649: initiator 
guessed wrong keying material group (ECP_256); responding with 
INVALID_KE_PAYLOAD requesting MODP2048
Mar  4 21:59:04 core pluto[25972]: packet from 178.197.x.x:36649: responding to 
SA_INIT message (ID 0) from 178.197.x.x:36649 with unencrypted notification 
INVALID_KE_PAYLOAD
Mar  4 21:59:04 core pluto[25972]: packet from 178.197.x.x:36649: proposal 
2:IKE:ENCR=AES_GCM_C_256;PRF=HMAC_SHA2_512;DH=MODP2048 chosen from remote 
proposals 
1:IKE:ENCR=AES_CBC_128;ENCR=AES_CBC_192;ENCR=AES_CBC_256;ENCR=3DES;INTEG=HMAC_SHA2_256_128;INTEG=HMAC_SHA2_384_192;INTEG=HMAC_SHA2_512_256;INTEG=HMAC_SHA1_96;INTEG=AES_XCBC_96;PRF=HMAC_SHA2_256;PRF=HMAC_SHA2_384;PRF=HMAC_SHA2_512;PRF=AES128_XCBC;PRF=HMAC_SHA1;DH=MODP2048;DH=ECP_256;DH=ECP_384;DH=ECP_521;DH=BRAINPOOL_P256R1;DH=BRAINPOOL_P384R1;DH=BRAINPOOL_P512R1;DH=CURVE25519;DH=MODP3072;DH=MODP4096;DH=MODP6144;DH=MODP8192[first-match]
 
2:IKE:ENCR=AES_GCM_C_128;ENCR=AES_GCM_C_192;ENCR=AES_GCM_C_256;ENCR=CHACHA20_POLY1305;ENCR=AES_GCM_B_128;ENCR=AES_GCM_B_192;ENCR=AES_GCM_B_256;ENCR=AES_GCM_A_128;ENCR=AES_GCM_A_192;ENCR=AES_GCM_A_256;PRF=HMAC_SHA2_256;PRF=HMAC_SHA2_384;PRF=HMAC_SHA2_512;PRF=AES128_XCBC;PRF=HMAC_SHA1;DH=MODP2048;DH=ECP_256;DH=ECP_384;DH=ECP_521;DH=BRAINPOOL_P256R1;DH=BRAINPOOL_P384R1;DH=BRAINPOOL_P512R1;DH=CURVE25
 519;DH=MODP3072;DH=MODP4096;DH=MODP6144;DH=MODP8192[...
Mar  4 21:59:04 core pluto[25972]: "ikev2-cp"[29] 178.197.x.x #30: 
STATE_PARENT_R1: received v2I1, sent v2R1 {auth=IKEv2 cipher=AES_GCM_16_256 
integ=n/a prf=HMAC_SHA2_512 group=MODP2048}
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[29] 178.197.x.x #30: certificate 
verified OK: CN=bz
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[29] 178.197.x.x #30: No matching 
subjectAltName found
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[29] 178.197.x.x #30: certificate 
does not contain ID_IP subjectAltName=178.197.x.x
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[29] 178.197.x.x #30: Peer public 
key SubjectAltName does not match peer ID for this connection
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[29] 178.197.x.x #30: switched 
from "ikev2-cp"[29] 178.197.x.x to "ikev2-cp"
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: deleting 
connection "ikev2-cp"[29] 178.197.x.x instance with peer 178.197.x.x 
{isakmp=#0/ipsec=#0}
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: certificate 
verified OK: CN=bz
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: IKEv2 mode 
peer ID is ID_DER_ASN1_DN: 'CN=bz'
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: 
Authenticated using RSA
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: constructed 
local ESP/AH proposals for ikev2-cp (IKE SA responder matching remote ESP/AH 
proposals): 1:ESP:ENCR=AES_GCM_C_256;INTEG=NONE;ESN=DISABLED 
2:ESP:ENCR=AES_GCM_C_128;INTEG=NONE;ESN=DISABLED 
3:ESP:ENCR=AES_CBC_256;INTEG=HMAC_SHA2_512_256,HMAC_SHA2_256_128;ESN=DISABLED 
4:ESP:ENCR=AES_CBC_128;INTEG=HMAC_SHA2_512_256,HMAC_SHA2_256_128;ESN=DISABLED 
5:ESP:ENCR=AES_CBC_128;INTEG=HMAC_SHA1_96;ESN=DISABLED (default)
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: proposal 
1:ESP:SPI=7af3f1a1;ENCR=AES_GCM_C_256;ESN=DISABLED chosen from remote proposals 
1:ESP:ENCR=AES_GCM_C_256;ENCR=AES_GCM_C_128;ENCR=CHACHA20_POLY1305;ESN=DISABLED[first-match]
 
2:ESP:ENCR=AES_CBC_256;ENCR=AES_CBC_192;ENCR=AES_CBC_128;INTEG=HMAC_SHA2_384_192;INTEG=HMAC_SHA2_256_128;INTEG=HMAC_SHA2_512_256;INTEG=HMAC_SHA1_96;ESN=DISABLED
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: received 
unsupported NOTIFY v2N_NO_ADDITIONAL_ADDRESSES 
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: received 
unsupported NOTIFY v2N_EAP_ONLY_AUTHENTICATION 
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #30: received 
unsupported NOTIFY v2N_IKEV2_MESSAGE_ID_SYNC_SUPPORTED 
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #31: negotiated 
connection [0.0.0.0-255.255.255.255:0-65535 0] -> 
[192.168.1.100-192.168.1.100:0-65535 0]
Mar  4 21:59:05 core pluto[25972]: "ikev2-cp"[30] 178.197.x.x #31: 
STATE_V2_IPSEC_R: IPsec SA established tunnel mode {ESP/NAT=>0x7af3f1a1 
<0x7ae96631 xfrm=AES_GCM_16_256-NONE NATOA=none NATD=178.197.x.x:21764 
DPD=active}


The client shows keep-alive attempts. Not sure if they are answered:

ar  4 21:59:03 00[DMN] 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Mar  4 21:59:03 00[DMN] Starting IKE service (strongSwan 5.8.2dr1, Android 
8.0.0 - 34.4.A.2.118/2018-09-01, F5321 - Sony/F5321/Sony, Linux 
3.10.84-perf-g51b663cc723-04742-g5bcfaca9e61, aarch64)
Mar  4 21:59:03 00[LIB] loaded plugins: androidbridge charon android-log 
openssl fips-prf random nonce pubkey chapoly curve25519 pkcs1 pkcs8 pem xcbc 
hmac socket-default revocation eap-identity eap-mschapv2 eap-md5 eap-gtc 
eap-tls x509
Mar  4 21:59:03 00[JOB] spawning 16 worker threads
Mar  4 21:59:03 07[CFG] loaded user certificate 'CN=bz' and private key
Mar  4 21:59:03 07[CFG] loaded CA certificate 'C=CH, ST=ZH, O=xxxx'
Mar  4 21:59:03 07[IKE] initiating IKE_SA android[2] to 84.75.x.x
Mar  4 21:59:03 07[ENC] generating IKE_SA_INIT request 0 [ SA KE No 
N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
Mar  4 21:59:03 07[NET] sending packet: from 10.80.175.163[45162] to 
84.75.x.x[500] (716 bytes)
Mar  4 21:59:03 10[NET] received packet: from 84.75.x.x[500] to 
10.80.175.163[45162] (38 bytes)
Mar  4 21:59:03 10[ENC] parsed IKE_SA_INIT response 0 [ N(INVAL_KE) ]
Mar  4 21:59:03 10[IKE] peer didn't accept DH group ECP_256, it requested 
MODP_2048
Mar  4 21:59:03 10[IKE] initiating IKE_SA android[2] to 84.75.x.x
Mar  4 21:59:03 10[ENC] generating IKE_SA_INIT request 0 [ SA KE No 
N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
Mar  4 21:59:03 10[NET] sending packet: from 10.80.175.163[45162] to 
84.75.x.x[500] (908 bytes)
Mar  4 21:59:03 11[NET] received packet: from 84.75.x.x[500] to 
10.80.175.163[45162] (457 bytes)
Mar  4 21:59:03 11[ENC] parsed IKE_SA_INIT response 0 [ SA KE No N(FRAG_SUP) 
N(NATD_S_IP) N(NATD_D_IP) CERTREQ ]
Mar  4 21:59:03 11[CFG] selected proposal: 
IKE:AES_GCM_16_256/PRF_HMAC_SHA2_512/MODP_2048
Mar  4 21:59:03 11[IKE] local host is behind NAT, sending keep alives
Mar  4 21:59:03 11[IKE] received cert request for "C=CH, ST=ZH, O=xxx"
Mar  4 21:59:03 11[IKE] sending cert request for "C=CH, ST=ZH, O=xxx"
Mar  4 21:59:04 11[IKE] authentication of 'CN=bz' (myself) with RSA signature 
successful
Mar  4 21:59:04 11[IKE] sending end entity cert "CN=bz"
Mar  4 21:59:04 11[IKE] establishing CHILD_SA android{2}
Mar  4 21:59:04 11[ENC] generating IKE_AUTH request 1 [ IDi CERT 
N(INIT_CONTACT) CERTREQ AUTH CPRQ(ADDR ADDR6 DNS DNS6) N(ESP_TFC_PAD_N) SA TSi 
TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
Mar  4 21:59:04 11[ENC] splitting IKE message (2022 bytes) into 2 fragments
Mar  4 21:59:04 11[ENC] generating IKE_AUTH request 1 [ EF(1/2) ]
Mar  4 21:59:04 11[ENC] generating IKE_AUTH request 1 [ EF(2/2) ]
Mar  4 21:59:04 11[NET] sending packet: from 10.80.175.163[43158] to 
84.75.x.x[4500] (1368 bytes)
Mar  4 21:59:04 11[NET] sending packet: from 10.80.175.163[43158] to 
84.75.x.x[4500] (719 bytes)
Mar  4 21:59:04 12[NET] received packet: from 84.75.x.x[4500] to 
10.80.175.163[43158] (535 bytes)
Mar  4 21:59:04 12[ENC] parsed IKE_AUTH response 1 [ EF(1/4) ]
Mar  4 21:59:04 12[ENC] received fragment #1 of 4, waiting for complete IKE 
message
Mar  4 21:59:04 13[NET] received packet: from 84.75.x.x[4500] to 
10.80.175.163[43158] (535 bytes)
Mar  4 21:59:04 13[ENC] parsed IKE_AUTH response 1 [ EF(2/4) ]
Mar  4 21:59:04 13[ENC] received fragment #2 of 4, waiting for complete IKE 
message
Mar  4 21:59:04 15[NET] received packet: from 84.75.x.x[4500] to 
10.80.175.163[43158] (535 bytes)
Mar  4 21:59:04 15[ENC] parsed IKE_AUTH response 1 [ EF(3/4) ]
Mar  4 21:59:04 15[ENC] received fragment #3 of 4, waiting for complete IKE 
message
Mar  4 21:59:04 14[NET] received packet: from 84.75.x.x[4500] to 
10.80.175.163[43158] (366 bytes)
Mar  4 21:59:04 14[ENC] parsed IKE_AUTH response 1 [ EF(4/4) ]
Mar  4 21:59:04 14[ENC] received fragment #4 of 4, reassembled fragmented IKE 
message (1784 bytes)
Mar  4 21:59:04 14[ENC] parsed IKE_AUTH response 1 [ IDr CERT AUTH CPRP(ADDR 
DNS) SA TSi TSr ]
Mar  4 21:59:04 14[IKE] received end entity cert "CN=vpn.hidden.ch"
Mar  4 21:59:04 14[CFG]   using trusted ca certificate "C=CH, ST=ZH, O=xxx"
Mar  4 21:59:04 14[CFG] checking certificate status of "CN=bz"
Mar  4 21:59:04 14[CFG] certificate status is not available
Mar  4 21:59:04 14[CFG]   reached self-signed root ca with a path length of 0
Mar  4 21:59:04 14[CFG]   using trusted certificate "CN=bz"
Mar  4 21:59:04 14[IKE] signature validation failed, looking for another key
Mar  4 21:59:04 14[CFG]   using certificate "CN=vpn.hidden.ch"
Mar  4 21:59:04 14[CFG]   using trusted ca certificate "C=CH, ST=ZH, O=xxx"
Mar  4 21:59:04 14[CFG] checking certificate status of "CN=vpn.hidden.ch"
Mar  4 21:59:04 14[CFG] certificate status is not available
Mar  4 21:59:04 14[CFG]   reached self-signed root ca with a path length of 0
Mar  4 21:59:04 14[IKE] authentication of 'vpn.hidden.ch' with RSA signature 
successful
Mar  4 21:59:04 14[IKE] IKE_SA android[2] established between 
10.80.175.163[CN=bz]...84.75.x.x[vpn.hidden.ch]
Mar  4 21:59:04 14[IKE] scheduling rekeying in 35942s
Mar  4 21:59:04 14[IKE] maximum IKE_SA lifetime 36542s
Mar  4 21:59:04 14[IKE] installing DNS server 10.76.1.1
Mar  4 21:59:04 14[IKE] installing new virtual IP 192.168.1.100
Mar  4 21:59:04 14[IKE] CHILD_SA android{2} established with SPIs 7af3f1a1_i 
7ae96631_o and TS 192.168.1.100/32 === 0.0.0.0/0
Mar  4 21:59:04 14[DMN] setting up TUN device for CHILD_SA android{2}
Mar  4 21:59:04 14[DMN] successfully created TUN device
Mar  4 22:00:29 11[IKE] sending keep alive to 84.75.x.x[4500]
Mar  4 22:11:10 15[IKE] sending keep alive to 84.75.x.x[4500]
Mar  4 22:11:55 14[IKE] sending keep alive to 84.75.x.x[4500]
Mar  4 22:13:07 09[IKE] sending keep alive to 84.75.x.x[4500]


The firewall is OK from my perspective:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
        
 103M  142G ACCEPT     all  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   
         ctstate RELATED,ESTABLISHED
 5981  386K ACCEPT     all  --  vlan5  *       192.168.1.0/24       0.0.0.0/0   
         policy match dir in pol ipsec
  469  247K ACCEPT     udp  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   
         udp dpt:500
 7671 1465K ACCEPT     udp  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   
         udp dpt:4500
  372 52561 ACCEPT     udp  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   
         udp dpt:1701
 711K   42M DROP       all  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   
  

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
        
 184M  234G ACCEPT     all  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   
         ctstate RELATED,ESTABLISHED
 4244  726K ACCEPT     all  --  vlan5  *       192.168.1.0/24       0.0.0.0/0   
         policy match dir in pol ipsec
  754 82552 DROP       all  --  vlan5  *       0.0.0.0/0            0.0.0.0/0   

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
        
    0     0 RETURN     all  --  *      vlan5   0.0.0.0/0            0.0.0.0/0   
         policy match dir out pol ipsec
3938K  460M MASQUERADE  all  --  *      vlan5   0.0.0.0/0            0.0.0.0/0  
         



Both server and client show active connections even when the connection has 
stalled...

# ipsec trafficstatus
006 #33: "ikev2-cp"[32] 178.197.x.x, type=ESP, add_time=1583356793, 
inBytes=136685, outBytes=207835, id='CN=bz', lease=192.168.1.100/32



Any ideas? Cheers
_______________________________________________
Swan mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan

Reply via email to