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