This indeed does help. Moved the policy to be the first. 

Thank you, 

- Igor 

On 2017-06-06 05:56, Zé Loff wrote:

> On Mon, Jun 05, 2017 at 07:50:01PM -0400, Igor V. Gubenko wrote: 
> 
>> Hello all,
>> 
>> I am continuing my assault on iked.... :)
>> 
>> Here is a perfectly working configuration that uses PSK's:
>> 
>> ###########
>> 
>> local_ip = "A.B.1.153"
>> local_net = "172.16.0.0/20"
>> 
>> ikev2 "KBweb" \
>> passive ipcomp esp \
>> from $local_net to 10.33.33.0/27 \
>> local $local_ip \
>> peer C.D.65.236 \
>> ikesa auth hmac-sha2-256 enc aes-192 group modp2048 \
>> childsa auth hmac-sha2-256 enc aes-256 group modp2048 \
>> srcid $local_ip \
>> dstid web01.domain.org \
>> psk thepsk
>> 
>> ikev2 "KBDB" \
>> passive ipcomp esp \
>> from $local_net to 10.34.34.0/27 \
>> local $local_ip \
>> peer C.D.65.237 \
>> ikesa auth hmac-sha2-256 enc aes-192 group modp2048 \
>> childsa auth hmac-sha2-256 enc aes-256 group modp2048 \
>> srcid $local_ip \
>> dstid db01.domain.org \
>> psk thepsk
>> 
>> ###############
>> 
>> Now, I am adding a third connection, using certificates (presumably):
>> 
>> ######
>> 
>> user "igor" "thepassword"
>> 
>> ikev2 "roaming" \
>> passive esp \
>> from $local_net to 192.168.200.0/26 \
>> local $local_ip \
>> peer any \
>> eap "mschap-v2" \
>> config address 192.168.200.1 \
>> tag "$name-$id"
>> 
>> ######
>> 
>> This results in the first 2 connections never working anymore:
>> 
>> ikev2_msg_auth: responder auth data length 525
>> ikev2_msg_auth: initiator auth data length 488
>> ikev2_msg_authverify: method SHARED_KEY_MIC keylen 32 type NONE
>> ikev2_msg_authverify: authentication successful
>> sa_state: AUTH_REQUEST -> AUTH_SUCCESS
>> sa_stateflags: 0x0028 -> 0x0038 auth,authvalid,sa (required 0x0079
>> cert,auth,authvalid,sa,eapvalid)
>> ikev2_sa_negotiate: score 4
>> sa_stateflags: 0x0038 -> 0x0038 auth,authvalid,sa (required 0x0079
>> cert,auth,authvalid,sa,eapvalid)
>> sa_stateok: VALID flags 0x0038, require 0x0079
>> cert,auth,authvalid,sa,eapvalid
>> sa_state: cannot switch: AUTH_SUCCESS -> VALID
>> ikev2_ike_auth: no CERTREQ, using default
>> ikev2_policy2id: srcid IPV4/A.B.1.153 length 8
>> sa_stateflags: 0x0038 -> 0x003c certreq,auth,authvalid,sa (required
>> 0x0079 cert,auth,authvalid,sa,eapvalid)
>> config_free_proposals: free 0x23ee58d3f80
>> ca_getreq: found CA /C=US/ST=New Jersey/O=Gubenko/OU=IT/CN=cainter.dom.com
>> ca_x509_subjectaltname: unsupported subjectAltName type 34
>> ca_getreq: found CA /C=US/ST=New
>> Jersey/L=Livingston/O=Gubenko/OU=IT/CN=caroot.dom.com
>> ca_getreq: no valid local certificate found
>> ikev2_getimsgdata: imsg 19 rspi 0xbd166184c4d2d33b ispi
>> 0xd7fc1a37a3acdec4 initiator 0 sa valid type 0 data length 0
>> ikev2_dispatch_cert: cert type NONE length 0, ignored
>> 
>> As a side note, the certificate does contain several subjectAltName's:
>> 
>> X509v3 Subject Alternative Name:
>> DNS:ip6.dom.com, DNS:www.dom.com [1], DNS:www.ip6.dom.com [2],
>> DNS:mail.dom.com, DNS:imap.dom.com, DNS:smtp.dom.com, DNS:proxy.dom.com,
>> DNS:vpn.dom.com, DNS:pbx.dom.com
>> 
>> As soon as the third section is commented out, and iked restarted, the
>> first two connections come back up.
>> 
>> Please help.
> 
> RTFM
> 
> From iked.conf(5):
> 
> For incoming connections from remote peers, the policies are evaluated
> in sequential order, from first to last.  The last matching policy
> decides what action is taken; if no policy matches the connection, the
> default action is to ignore the connection attempt or to use the
> default policy, if set.  Please also see the EXAMPLES section for a
> detailed example of the policy evaluation.
> 
> (...)
> 
> EXAMPLES
> 
> (...)
> 
> The following example illustrates the last matching policy evaluation
> for incoming connections on an IKEv2 gateway.  The peer 192.168.1.34
> will always match the first policy because of the quick keyword;
> connections from the peers 192.168.1.3 and 192.168.1.2 will be matched
> by one of the last two policies; any other connections from
> 192.168.1.0/24 will be matched by the 'subnet' policy; and any other
> connection will be matched by the 'catch all' policy.
> 
> ikev2 quick esp from 10.10.10.0/24 to 10.20.20.0/24 \
> peer 192.168.1.34
> ikev2 "catch all" esp from 10.0.1.0/24 to 10.0.2.0/24 \
> peer any ikev2 "subnet" esp from 10.0.3.0/24 to 10.0.4.0/24 \
> peer 192.168.1.0/24
> ikev2 esp from 10.0.5.0/30 to 10.0.5.4/30 peer 192.168.1.2
> ikev2 esp from 10.0.5.8/30 to 10.0.5.12/30 peer 192.168.1.3
> 
> In summary you have a "last matching policy" and a "peer any" on the
> last rule.  Does it work if you move it upwards or add "quick" to the
> other rules?
> 
>> Many thanks,
>> 
>> - Igor
 

Links:
------
[1] http://www.dom.com
[2] http://www.ip6.dom.com

Reply via email to