From: JL <ips...@rr...> - 2008-06-23 13:39:26
|
Hi, I am trying to connect two racoon systems. I wish to use X.509 certificates, if at all possible. This is in a test lab, so 192.168 addresses are "Internet" addresses - i.e. there is no NAT between the boxes. I have a root-certificate, and all other certificates are signed by it. One end will say: Jun 23 13:28:10 ac1 racoon: INFO: respond new phase 1 negotiation: 192.168.128.114[500]<=>192.168.128.13[500] Jun 23 13:28:10 ac1 racoon: INFO: begin Aggressive mode. Jun 23 13:28:10 ac1 racoon: INFO: received Vendor ID: DPD Jun 23 13:28:10 ac1 racoon: WARNING: No ID match. Jun 23 13:28:10 ac1 racoon: ERROR: invalid ID payload. Jun 23 13:28:10 ac1 racoon: ERROR: failed to process packet. While the other: Jun 23 13:28:34 ac1 racoon: INFO: request for establishing IPsec-SA was queued due to no phase1 found. Jun 23 13:28:35 ac1 racoon: ERROR: phase2 negotiation failed due to time up waiting for phase1. ESP 192.168.128.13[500]->192.168.128.114[500] Jun 23 13:28:35 ac1 racoon: INFO: delete phase 2 handler. Which end says which flips back and forwards, presumably depending on whichever last tried to initiate the connection. I have one person tell me that my psk.txt is wrong - but as there are no passwords, I have no idea what to put into psk.txt. If anyone has any pointers, that would be great. Or, even better, is there a resource somewhere that says what things you should look at, given certain log messages? Thanks, Jarrod My Configs: remote 192.168.128.114 { my_identifier asn1dn; peers_identifier asn1dn "C=GB, O=Test, OU=Remote Sites"; verify_identifier on; certificate_type x509 "/root/gw.pem" "/root/gw.key"; ca_type x509 "/root/cacert.pem"; nat_traversal off; exchange_mode aggressive ; proposal { encryption_algorithm aes ; hash_algorithm sha1 ; authentication_method pre_shared_key ; dh_group modp1024 ; } } sainfo address 10.16.128.0/24 any address 10.16.135.1/32 any { pfs_group modp768 ; encryption_algorithm rijndael ; authentication_algorithm hmac_sha1 ; compression_algorithm deflate ; } sainfo address 10.253.255.0/24 any address 10.16.135.1/32 any { pfs_group modp768 ; encryption_algorithm rijndael ; authentication_algorithm hmac_sha1 ; compression_algorithm deflate ; } And: remote 192.168.128.13 { my_identifier asn1dn; peers_identifier asn1dn "C=GB, O=Test, OU=Core, CN=gw1"; verify_identifier on; certificate_type x509 "/root/a.pem" "/root/a.key"; ca_type x509 "/root/cacert.pem"; nat_traversal off; exchange_mode aggressive ; proposal { encryption_algorithm aes ; hash_algorithm sha1 ; authentication_method pre_shared_key ; dh_group modp1024 ; } } sainfo address 10.16.135.1/32 any address 10.16.128.0/24 any { pfs_group modp768 ; encryption_algorithm rijndael ; authentication_algorithm hmac_sha1 ; compression_algorithm deflate ; } sainfo address 10.16.135.1/32 any address 10.253.255.0/24 any { pfs_group modp768 ; encryption_algorithm rijndael ; authentication_algorithm hmac_sha1 ; compression_algorithm deflate ; } |
From: Timo T. <tim...@ik...> - 2008-06-23 13:51:03
|
JL wrote: > One end will say: > Jun 23 13:28:10 ac1 racoon: INFO: respond new phase 1 negotiation: > 192.168.128.114[500]<=>192.168.128.13[500] > Jun 23 13:28:10 ac1 racoon: INFO: begin Aggressive mode. > Jun 23 13:28:10 ac1 racoon: INFO: received Vendor ID: DPD > Jun 23 13:28:10 ac1 racoon: WARNING: No ID match. > Jun 23 13:28:10 ac1 racoon: ERROR: invalid ID payload. > Jun 23 13:28:10 ac1 racoon: ERROR: failed to process packet. The ID payload does not match what is expected. Thus phase1 fails. > While the other: > Jun 23 13:28:34 ac1 racoon: INFO: request for establishing IPsec-SA > was queued due to no phase1 found. > Jun 23 13:28:35 ac1 racoon: ERROR: phase2 negotiation failed due to > time up waiting for phase1. ESP > 192.168.128.13[500]->192.168.128.114[500] > Jun 23 13:28:35 ac1 racoon: INFO: delete phase 2 handler. Phase1 failing. > I have one person tell me that my psk.txt is wrong - but as there are > no passwords, I have no idea what to put into psk.txt. psk.txt is not related. > If anyone has any pointers, that would be great. Or, even better, is > there a resource somewhere that says what things you should look at, > given certain log messages? I'd say your peers_identifier is incorrect. Try first with "verify_identifier off". If that works, your peers_identifier is definitely wrong. Check that it really matches the remote certs id. You could also increase debugging level to see what fails in the identifier verification. Cheers, Timo |
From: VANHULLEBUS Y. <va...@fr...> - 2008-06-23 14:01:06
|
On Mon, Jun 23, 2008 at 02:39:33PM +0100, JL wrote: > Hi, Hi. > I am trying to connect two racoon systems. I wish to use X.509 > certificates, if at all possible. That's possible :-) [....] > Jun 23 13:28:10 ac1 racoon: WARNING: No ID match. > Jun 23 13:28:10 ac1 racoon: ERROR: invalid ID payload. > Jun 23 13:28:10 ac1 racoon: ERROR: failed to process packet. Peer's certificate does NOT match the peers_identifier you provided. [....] > I have one person tell me that my psk.txt is wrong - but as there are > no passwords, I have no idea what to put into psk.txt. Don't listen to that person anymore :-) psk.txt is for preshared key configurations, yours can be safely kept empty. > If anyone has any pointers, that would be great. Or, even better, is > there a resource somewhere that says what things you should look at, > given certain log messages? "work in progress"... but no public URL for now... > My Configs: > remote 192.168.128.114 { > my_identifier asn1dn; > peers_identifier asn1dn "C=GB, O=Test, OU=Remote Sites"; > verify_identifier on; > certificate_type x509 "/root/gw.pem" "/root/gw.key"; > ca_type x509 "/root/cacert.pem"; > nat_traversal off; > exchange_mode aggressive ; That's not directly related to your problem, but you should really consider using main mode instead of aggressive mode. To solve your problem you can: 1) Check again without peers_identifier (you'll just assume that a certificate signed by your authority is good), and see if it works (you may have other problems). 2) try again in -d -d mode (warning: if you send us such debug, you may send private informations) and check what racoon gets as peer's identity. Yvan. |
From: JL <ips...@rr...> - 2008-06-23 15:15:00
|
2008/6/23 VANHULLEBUS Yvan <va...@fr...>: > On Mon, Jun 23, 2008 at 02:39:33PM +0100, JL wrote: >> Hi, Thanks to you, and to Timo, for responding. >> I am trying to connect two racoon systems. I wish to use X.509 >> certificates, if at all possible > That's possible :-) Good to hear :) > [....] >> Jun 23 13:28:10 ac1 racoon: WARNING: No ID match. >> Jun 23 13:28:10 ac1 racoon: ERROR: invalid ID payload. >> Jun 23 13:28:10 ac1 racoon: ERROR: failed to process packet. > Peer's certificate does NOT match the peers_identifier you provided. >> I have one person tell me that my psk.txt is wrong - but as there are >> no passwords, I have no idea what to put into psk.txt. > Don't listen to that person anymore :-) He's on the list, you just told him yourself :) > psk.txt is for preshared key configurations, yours can be safely kept > empty. OK >> If anyone has any pointers, that would be great. Or, even better, is >> there a resource somewhere that says what things you should look at, >> given certain log messages? > "work in progress"... but no public URL for now... Cool. >> My Configs: >> remote 192.168.128.114 { >> my_identifier asn1dn; >> peers_identifier asn1dn "C=GB, O=Test, OU=Remote Sites"; >> verify_identifier on; >> certificate_type x509 "/root/gw.pem" "/root/gw.key"; >> ca_type x509 "/root/cacert.pem"; >> nat_traversal off; >> exchange_mode aggressive ; > That's not directly related to your problem, but you should really > consider using main mode instead of aggressive mode. I intend to, but one problem at a time! > To solve your problem you can: > 1) Check again without peers_identifier (you'll just assume that a > certificate signed by your authority is good), and see if it works > (you may have other problems). > 2) try again in -d -d mode (warning: if you send us such debug, you > may send private informations) and check what racoon gets as peer's > identity. With any combination of peers_identifier (omitted, correct, wrong) and verify_identifier (off, on) results in the same thing with -dd - output below. Particularly, this line jumps out at me: 2008-06-23 14:57:01: DEBUG: type=Authentication Method, flag=0x8000, lorv=pre-shared key Is there another config key I should be setting to convince it that I really want x509, not PSK? OK, stripping out the hexdumps of packets: 2008-06-23 14:56:54: DEBUG: 366 bytes from 192.168.128.13[500] to 192.168.128.114[500] 2008-06-23 14:56:54: DEBUG: sockname 192.168.128.13[500] 2008-06-23 14:56:54: DEBUG: send packet from 192.168.128.13[500] 2008-06-23 14:56:54: DEBUG: send packet to 192.168.128.114[500] 2008-06-23 14:56:54: DEBUG: src4 192.168.128.13[500] 2008-06-23 14:56:54: DEBUG: dst4 192.168.128.114[500] 2008-06-23 14:56:54: DEBUG: 1 times of 366 bytes message will be sent to 192.168.128.114[500] 2008-06-23 14:56:54: DEBUG: resend phase1 packet d4488a287ea1af15:0000000000000000 2008-06-23 14:57:01: DEBUG: === 2008-06-23 14:57:01: DEBUG: 368 bytes message received from 192.168.128.114[500] to 192.168.128.13[500] 2008-06-23 14:57:01: DEBUG: configuration found for 192.168.128.114. 2008-06-23 14:57:01: DEBUG: === 2008-06-23 14:57:01: INFO: respond new phase 1 negotiation: 192.168.128.13[500]<=>192.168.128.114[500] 2008-06-23 14:57:01: INFO: begin Aggressive mode. 2008-06-23 14:57:01: DEBUG: begin. 2008-06-23 14:57:01: DEBUG: seen nptype=1(sa) 2008-06-23 14:57:01: DEBUG: seen nptype=4(ke) 2008-06-23 14:57:01: DEBUG: seen nptype=10(nonce) 2008-06-23 14:57:01: DEBUG: seen nptype=5(id) 2008-06-23 14:57:01: DEBUG: seen nptype=13(vid) 2008-06-23 14:57:01: DEBUG: succeed. 2008-06-23 14:57:01: DEBUG: received payload of type ke 2008-06-23 14:57:01: DEBUG: received payload of type nonce 2008-06-23 14:57:01: DEBUG: received payload of type id 2008-06-23 14:57:01: DEBUG: received payload of type vid 2008-06-23 14:57:01: INFO: received Vendor ID: DPD 2008-06-23 14:57:01: DEBUG: remote supports DPD 2008-06-23 14:57:01: DEBUG: total SA len=52 2008-06-23 14:57:01: DEBUG: begin. 2008-06-23 14:57:01: DEBUG: seen nptype=2(prop) 2008-06-23 14:57:01: DEBUG: succeed. 2008-06-23 14:57:01: DEBUG: proposal #1 len=44 2008-06-23 14:57:01: DEBUG: begin. 2008-06-23 14:57:01: DEBUG: seen nptype=3(trns) 2008-06-23 14:57:01: DEBUG: succeed. 2008-06-23 14:57:01: DEBUG: transform #1 len=36 2008-06-23 14:57:01: DEBUG: type=Life Type, flag=0x8000, lorv=seconds 2008-06-23 14:57:01: DEBUG: type=Life Duration, flag=0x8000, lorv=28800 2008-06-23 14:57:01: DEBUG: type=Encryption Algorithm, flag=0x8000, lorv=7 2008-06-23 14:57:01: DEBUG: encryption(aes) 2008-06-23 14:57:01: DEBUG: type=Key Length, flag=0x8000, lorv=128 2008-06-23 14:57:01: DEBUG: type=Authentication Method, flag=0x8000, lorv=pre-shared key 2008-06-23 14:57:01: DEBUG: type=Hash Algorithm, flag=0x8000, lorv=SHA 2008-06-23 14:57:01: DEBUG: hash(sha1) 2008-06-23 14:57:01: DEBUG: type=Group Description, flag=0x8000, lorv=1024-bit MODP group 2008-06-23 14:57:01: DEBUG: hmac(modp1024) 2008-06-23 14:57:01: DEBUG: pair 1: 2008-06-23 14:57:01: DEBUG: 0x68d860: next=(nil) tnext=(nil) 2008-06-23 14:57:01: DEBUG: proposal #1: 1 transform 2008-06-23 14:57:01: DEBUG: prop#=1, prot-id=ISAKMP, spi-size=0, #trns=1 2008-06-23 14:57:01: DEBUG: trns#=1, trns-id=IKE 2008-06-23 14:57:01: DEBUG: type=Life Type, flag=0x8000, lorv=seconds 2008-06-23 14:57:01: DEBUG: type=Life Duration, flag=0x8000, lorv=28800 2008-06-23 14:57:01: DEBUG: type=Encryption Algorithm, flag=0x8000, lorv=7 2008-06-23 14:57:01: DEBUG: type=Key Length, flag=0x8000, lorv=128 2008-06-23 14:57:01: DEBUG: type=Authentication Method, flag=0x8000, lorv=pre-shared key 2008-06-23 14:57:01: DEBUG: type=Hash Algorithm, flag=0x8000, lorv=SHA 2008-06-23 14:57:01: DEBUG: type=Group Description, flag=0x8000, lorv=1024-bit MODP group 2008-06-23 14:57:01: DEBUG: Compared: DB:Peer 2008-06-23 14:57:01: DEBUG: (lifetime = 28800:28800) 2008-06-23 14:57:01: DEBUG: (lifebyte = 0:0) 2008-06-23 14:57:01: DEBUG: enctype = 7:7 2008-06-23 14:57:01: DEBUG: (encklen = 128:128) 2008-06-23 14:57:01: DEBUG: hashtype = SHA:SHA 2008-06-23 14:57:01: DEBUG: authmethod = pre-shared key:pre-shared key 2008-06-23 14:57:01: DEBUG: dh_group = 1024-bit MODP group:1024-bit MODP group 2008-06-23 14:57:01: DEBUG: an acceptable proposal found. 2008-06-23 14:57:01: DEBUG: hmac(modp1024) 2008-06-23 14:57:01: DEBUG: new cookie: ... 2008-06-23 14:57:01: DEBUG: filename: /root/gw.pem 2008-06-23 14:57:01: DEBUG: Certificate: ... certificate of /root/gw.pem ... 2008-06-23 14:57:01: DEBUG: created CERT payload: 2008-06-23 14:57:01: DEBUG: use ID type of DER_ASN1_DN 2008-06-23 14:57:01: DEBUG: compute DH's private. 2008-06-23 14:57:01: DEBUG: compute DH's public. 2008-06-23 14:57:01: DEBUG: compute DH's shared. 2008-06-23 14:57:01: NOTIFY: couldn't find the proper pskey, try to get one by the peer's address. 2008-06-23 14:57:01: ERROR: couldn't find the pskey for 192.168.128.114. 2008-06-23 14:57:01: ERROR: failed to process packet. -- Jarrod |
From: JL <ips...@rr...> - 2008-06-23 15:25:58
|
2008/6/23 JL <ips...@rr...>: > 2008/6/23 VANHULLEBUS Yvan <va...@fr...>: > Particularly, this line jumps out at me: > 2008-06-23 14:57:01: DEBUG: type=Authentication Method, flag=0x8000, > lorv=pre-shared key > Is there another config key I should be setting to convince it that I > really want x509, not PSK? Hmm... could have something to do with: proposal { .... authentication_method pre_shared_key ; } The man page I have says the options are: pre_shared_key rsasig gssapi_krb hybrid_rsa_server hybrid_rsa_client ...But with no description of what the terms mean. I'll start trying each in turn, but is there a list of which means what? |
From: VANHULLEBUS Y. <va...@fr...> - 2008-06-23 15:37:02
|
On Mon, Jun 23, 2008 at 04:26:04PM +0100, JL wrote: > 2008/6/23 JL <ips...@rr...>: > > 2008/6/23 VANHULLEBUS Yvan <va...@fr...>: > > > Particularly, this line jumps out at me: > > 2008-06-23 14:57:01: DEBUG: type=Authentication Method, flag=0x8000, > > lorv=pre-shared key > > Is there another config key I should be setting to convince it that I > > really want x509, not PSK? > > Hmm... could have something to do with: > proposal { > .... > authentication_method pre_shared_key ; > } Yes, of course, I just didn't have a look at the proposal statement, assuming it was good, and I guess Timo did the same :-) You need "rsasig". Yvan. |
From: JL <ips...@rr...> - 2008-06-23 16:05:30
|
2008/6/23 VANHULLEBUS Yvan <va...@fr...>: > On Mon, Jun 23, 2008 at 04:26:04PM +0100, JL wrote: >> 2008/6/23 JL <ips...@rr...>: >> > 2008/6/23 VANHULLEBUS Yvan <va...@fr...>: > You need "rsasig". Thanks, that works. Well, it didn't straight away. I kept getting: 2008-06-23 15:52:25: DEBUG: filename: /root/cacert.pem 24845:error:0B064071:x509 certificate routines:ADD_CERT_DIR:invalid directory:by_dir.c:186: Turns out the two lines are completely unrelated. I didn't realise that ca_type told racoon which CA certificate to send to the other side, but that I needed "path certificate ..." to define where to find the CA certificate to check the far ends certificate chain against. Because I was using the same CA certificate to sign both ends, it didn't occur to me that racoon cannot assume that - and needed to be told. For the sake of those searching for this in the mailing list later, I got to (after putting the identity checking back in): path certificate "/root/"; remote 192.168.128.114 { my_identifier asn1dn; peers_identifier asn1dn "C=GB, O=Test, L=*, OU=Remotes, CN=*"; verify_identifier on; certificate_type x509 "/root/gw.pem" "/root/gw.key"; ca_type x509 "/root/cacert.pem"; nat_traversal off; exchange_mode main ; proposal { encryption_algorithm aes ; hash_algorithm sha1 ; authentication_method rsasig ; dh_group modp1024 ; } } sainfo address 10.16.128.0/24 any address 10.16.135.1/32 any { pfs_group modp768 ; encryption_algorithm rijndael ; authentication_algorithm hmac_sha1 ; compression_algorithm deflate ; } sainfo address 10.253.255.0/24 any address 10.16.135.1/32 any { pfs_group modp768 ; encryption_algorithm rijndael ; authentication_algorithm hmac_sha1 ; compression_algorithm deflate ; } Thanks to you both for your help. -- Jarrod Lowe |