Hi Ben,

You may have to open up udpencap on the OpenBSD VPN gateway.

pass in quick on $ext_if inet proto udp from <vpn-peers> port { 500 4500 } to 
$ext_if port { 500 4500 }
pass out quick on $ext_if inet proto udp from $ext_if port { 500 4500 } to 
<vpn-peers> port { 500 4500 }

Also, I am assuming that you're using the support tools from XPSP2 and 
that you've configured the XPSP2 firewall to allow ISAKMP and NAT-T
communication with your OpenBSD VPN Gateway.

If you still have no luck, it would be helpful if you provide:

sudo isakmpd -d -L -DA=90

Also, provide any tcpdump info related to the VPN traffic.

I would also suggest that you configure the OpenBSD VPN Gateway with the 
public IP address of the XP host.  Once you've established a VPN, you can
then work on a more generic configuration.  The point being, get it working
first.  Once you get all the little pieces right, it'll work just fine. 

Mark T. Uemura
OpenBSD Support Japan Inc.
www.openbsd-support.com
Tel: +81-(0)3-3715-3032

On Fri, Sep 02, 2005 at 08:38:27PM -0700, Ben wrote:
> Followed some instructions from last year
> (http://openbsd.cz/~pruzicka/vpn.html) and as per a fair number of other
> posts,  I seem to be having the NO_PROPOSAL_CHOSEN problem.
> 
> (Checking the errors via isakmpd -d -L )
> 
> 185443.335663 Default log_packet_init: starting IKE packet capture to file
> "/var/run/isakmpd.pcap"
> 185447.379924 Default check_policy: negotiated SA failed policy check
> 185447.380041 Default message_negotiate_sa: no compatible proposal found
> 185447.380101 Default dropped message from (client machine ip) port 500 due
> to notification type NO_PROPOSAL_CHOSEN
> 
> Run tcpdump -nvs1500 -r /var/run/isakmpd.pcap  gives the following output:
> --------isakmpd.pcap------
> 19:54:37.113084 (client machine ip).500 > (BSD machine public IP).500:  [udp
> sum ok] isakmp v1.0 exchange ID_PROT
>       cookie: 53708ce206b92551->0000000000000000 msgid: 00000000 len: 108
>       payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY 
>           payload: PROPOSAL len: 44 proposal: 1 proto: ISAKMP spisz: 0
> xforms: 1
>               payload: TRANSFORM len: 36
>                   transform: 1 ID: ISAKMP
>                       attribute ENCRYPTION_ALGORITHM = 3DES_CBC
>                       attribute HASH_ALGORITHM = SHA
>                       attribute GROUP_DESCRIPTION = MODP_1024
>                       attribute AUTHENTICATION_METHOD = PRE_SHARED
>                       attribute LIFE_TYPE = SECONDS
>                       attribute LIFE_DURATION = 00007080
>       payload: VENDOR len: 24 [ttl 0] (id 1, len 136) 19:54:37.113390 (BSD
> machine public IP).500 > (client machine ip).500:  [udp sum ok] isakmp v1.0
> exchange ID_PROT
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 00000000 len: 164
>       payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY 
>           payload: PROPOSAL len: 44 proposal: 1 proto: ISAKMP spisz: 0
> xforms: 1
>               payload: TRANSFORM len: 36
>                   transform: 1 ID: ISAKMP
>                       attribute ENCRYPTION_ALGORITHM = 3DES_CBC
>                       attribute HASH_ALGORITHM = SHA
>                       attribute GROUP_DESCRIPTION = MODP_1024
>                       attribute AUTHENTICATION_METHOD = PRE_SHARED
>                       attribute LIFE_TYPE = SECONDS
>                       attribute LIFE_DURATION = 00007080
>       payload: VENDOR len: 20 (supports v2 NAT-T,
> draft-ietf-ipsec-nat-t-ike-02)
>       payload: VENDOR len: 20 (supports v3 NAT-T,
> draft-ietf-ipsec-nat-t-ike-03)
>       payload: VENDOR len: 20 (supports NAT-T, RFC 3947)
>       payload: VENDOR len: 20 (supports DPD v1.0) [ttl 0] (id 1, len 192)
> 19:54:37.157878 (client machine ip).500 > (BSD machine public IP).500:  [udp
> sum ok] isakmp v1.0 exchange ID_PROT
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 00000000 len: 184
>       payload: KEY_EXCH len: 132
>       payload: NONCE len: 24 [ttl 0] (id 1, len 212)
> 19:54:37.169874 (BSD machine public IP).500 > (client machine ip).500:  [udp
> sum ok] isakmp v1.0 exchange ID_PROT
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 00000000 len: 184
>       payload: KEY_EXCH len: 132
>       payload: NONCE len: 24 [ttl 0] (id 1, len 212)
> 19:54:37.185732 (client machine ip).500 > (BSD machine public IP).500:  [udp
> sum ok] isakmp v1.0 exchange ID_PROT
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 00000000 len: 68
>       payload: ID len: 12 type: IPV4_ADDR = (client machine ip)
>       payload: HASH len: 24 [ttl 0] (id 1, len 96)
> 19:54:37.185817 (BSD machine public IP).500 > (client machine ip).500:  [udp
> sum ok] isakmp v1.0 exchange ID_PROT
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 00000000 len: 92
>       payload: ID len: 12 type: IPV4_ADDR = (BSD machine public IP)
>       payload: HASH len: 24
>       payload: NOTIFICATION len: 28
>           notification: INITIAL CONTACT
> (53708ce206b92551->c6c84856034d511e) [ttl 0] (id 1, len 120)
> 19:54:37.188146 (client machine ip).500 > (BSD machine public IP).500:  [udp
> sum ok] isakmp v1.0 exchange QUICK_MODE
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 5cb2ac72 len: 148
>       payload: HASH len: 24
>       payload: SA len: 40 DOI: 1(IPSEC) situation: IDENTITY_ONLY 
>           payload: PROPOSAL len: 28 proposal: 1 proto: IPSEC_ESP spisz: 4
> xforms: 1 SPI: 0xf6b63621
>               payload: TRANSFORM len: 16
>                   transform: 1 ID: 3DES
>                       attribute ENCAPSULATION_MODE = TUNNEL
>                       attribute AUTHENTICATION_ALGORITHM = HMAC_SHA
>       payload: NONCE len: 24
>       payload: ID len: 12 type: IPV4_ADDR = (client machine ip)
>       payload: ID len: 16 type: IPV4_ADDR_SUBNET =
> 192.168.1.0/255.255.255.0 [ttl 0] (id 1, len 176)
> 19:54:37.188588 (BSD machine public IP).500 > (client machine ip).500:  [udp
> sum ok] isakmp v1.0 exchange INFO
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: dc9c1fb2 len: 64
>       payload: HASH len: 24
>       payload: NOTIFICATION len: 12
>           notification: NO PROPOSAL CHOSEN [ttl 0] (id 1, len 92)
> 19:54:37.188701 (BSD machine public IP).500 > (client machine ip).500:  [udp
> sum ok] isakmp v1.0 exchange QUICK_MODE
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: 5cb2ac72 len: 116
>       payload: HASH len: 24
>       payload: SA len: 12 DOI: 1(IPSEC) situation: IDENTITY_ONLY 
>           payload: PROPOSAL len: 24 proposal: 128 proto: (unknown) spisz:
> 5 xforms: 14 SPI: 0x8547ad5782
>               payload: TRANSFORM len: 52570 [|ipsec]
>           payload: ID len: 12
>           payload: ID len: 16
>       payload: NONCE len: 24
>       payload: ID len: 12 type: IPV4_ADDR = (client machine ip)
>       payload: ID len: 16 type: IPV4_ADDR_SUBNET =
> 192.168.1.0/255.255.255.0 [ttl 0] (id 1, len 144)
> 19:54:45.756225 (BSD machine public IP).500 > (client machine ip).500:  [udp
> sum ok] isakmp v1.0 exchange INFO
>       cookie: 53708ce206b92551->c6c84856034d511e msgid: e9968ffb len: 80
>       payload: HASH len: 24
>       payload: DELETE len: 28 DOI: 1(IPSEC) proto: ISAKMP nspis: 1
>           cookie: 53708ce206b92551->c6c84856034d511e [ttl 0] (id 1, len
> 108)
> =-=-=-=-=-   End of capture
> 
> I've gone over my policy, conf, and batch files with a fine tooth comb,  and
> can't see what the problem could be (Aside from the fact that I'm using XP):
> 
> 
> /etc/isakmpd/isakmpd.policy   (even kept the keynote version.)
> KeyNote-version: 2
> Authorizer: "POLICY"
> Licensees: "passphrase:password"
> Conditions: app_domain == "IPSec policy" && esp_present == "yes" &&
> esp_enc_alg != "null" -> "true";
> 
> 
> --------------------------------
> /etc/isakmpd/isakmpd.conf  (chanceg IPSec  to match case)
> 
> [General]
> Retransmits             = 5
> Exchange-max-time       = 120
> Listen-on               = public_ip_of_openbsd_box 
> Shared-SADB=            Defined
> Renegotiate-on-HUP=     Defined
> 
> [Phase 1]
> Default                 = ISAKMP-clients
> 
> [Phase 2]
> Passive-Connections     = IPSec-clients
> 
> [ISAKMP-clients]
> Phase                   = 1
> Transport               = udp
> Configuration           = win-main-mode
> Authentication          = password
> 
> [IPSec-clients]
> Phase                   = 2
> Configuration           = win-quick-mode
> Local-ID                = default-route
> Remote-ID               = dummy-remote
> 
> [default-route]
> ID-type                 = IPV4_ADDR_SUBNET
> Network                 = 0.0.0.0
> Netmask                 = 0.0.0.0
> 
> [dummy-remote]
> ID-type                 = IPV4_ADDR
> Address                 = 0.0.0.0
> 
> [win-main-mode]
> DOI                     = IPSEC
> EXCHANGE_TYPE           = ID_PROT
> Transforms              = 3DES-SHA-GRP2
> 
> [win-quick-mode]
> DOI                     = IPSEC
> EXCHANGE_TYPE           = QUICK_MODE
> Suites                     = QM-ESP-3DES-SHA-SUITE
> ----------------------------------
> 
> And finally start-vpn.bat  (internal openbsd box network is 192.168.1.0/24)
> 
> start-vpn.bat
> @echo off c:\ipsec\ipseccmd.exe -u echo cleared
> c:\ipsec\ipseccmd.exe -f 0=192.168.1.0/255.255.255.0 -n ESP[3DES,SHA] -t
> public_ip_address_of_bsd   -a PRESHARE:"password" -1s 3DES-SHA-2
> echo part 1 finished
> c:\ipsec\ipseccmd.exe -f 192.168.1.0/255.255.255.0=0 -n ESP[3DES,SHA] -t
> windows_xp_ipaddress -a PRESHARE:"password" -1s 3DES-SHA-2 echo finished
> 
> --------------------------------
> 
> If there's another (easier?)  way to do this, I'm open to any help. 
> 
> 
> Cheers,
> 
> Ben

Reply via email to