Hi,
I'm trying to connect Checkpoint VPN-1 using OpenBSD 3.8. Basic set up is as
follows:
Host-A -> Gateway-A ------ <- Gateway-B <- Host-B
Gateway-A: OpenBSD3.8
Gateway-B: Checkpoint VPN1
Aim: Establish connection to Host-B from Host-A.
I've no control on Gateway-B and Host-B.
First of all, I'm able to connect Gateway-B from Gateway-A. Configuration
files that I've used are as follows:
===================================
isakmpd.conf
[Phase 1]
IP-OF-GATEWAY-B= peer-machineB
[Phase 2]
Connections= VPN-A-B
# ISAKMP phase 1 peers (from [Phase 1])
[peer-machineB]
Phase= 1
Transport= udp
Address= IP-OF-GATEWAY-B
Configuration= Default-main-mode
Authentication= PRESHAREDKEY
# IPSEC phase 2 connections (from [Phase 2])
[VPN-A-B]
Phase= 2
ISAKMP-peer= peer-machineB
Configuration= Default-quick-mode
Local-ID= machineA-internal-network
Remote-ID= machineB-internal-network
# ID sections (as used in [VPN-A-B])
[machineA-internal-network]
ID-type= IPV4_ADDR
Address= IP-OF-HOST-A
[machineB-internal-network]
ID-type= IPV4_ADDR
Address= IP-OF-HOST-B
# Main and Quick Mode descriptions (as used by peers and connections)
[Default-main-mode]
DOI= IPSEC
EXCHANGE_TYPE= ID_PROT
Transforms= 3DES-SHA
[Default-quick-mode]
DOI= IPSEC
EXCHANGE_TYPE= QUICK_MODE
Suites= QM-ESP-3DES-SHA-SUITE
===================================
===================================
isakmpd.policy
Keynote-version: 2
Authorizer: "POLICY"
Conditions: app_domain == "IPsec policy" &&
esp_present == "yes" &&
esp_enc_alg != "null" -> "true";
===================================
Using these files, when I run isakmpd (isakmpd -d -DA=90) I can successfully
connect to GATEWAY-B. tcpdump output is as follows:
===================================
tcpdump: listening on em0, link-type EN10MB
14:44:40.315165 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 202:
IP-OF-GATEWAY-A.500 > IP-OF-GATEWAY-B.500: [udp sum ok] isakmp
v1.0exchange ID_PROT
cookie: 07c9dbce8da4a5b1->0000000000000000 msgid: 00000000 len: 160
payload: SA len: 52 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 40 proposal: 1 proto: ISAKMP spisz: 0
xforms: 1
payload: TRANSFORM len: 32
transform: 0 ID: ISAKMP
attribute ENCRYPTION_ALGORITHM = 3DES_CBC
attribute HASH_ALGORITHM = SHA
attribute AUTHENTICATION_METHOD = PRE_SHARED
attribute GROUP_DESCRIPTION = MODP_1024
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 3600
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 64, id 25076, len
188)
14:44:40.333719 0:4:23:c1:4c:57 0:4:23:a7:f0:d3 0800 122:
IP-OF-GATEWAY-B.500 > IP-OF-GATEWAY-A.500: [udp sum ok] isakmp
v1.0exchange ID_PROT
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: 00000000 len: 80
payload: SA len: 52 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 40 proposal: 1 proto: ISAKMP spisz: 0
xforms: 1
payload: TRANSFORM len: 32
transform: 1 ID: ISAKMP
attribute ENCRYPTION_ALGORITHM = 3DES_CBC
attribute HASH_ALGORITHM = SHA
attribute AUTHENTICATION_METHOD = PRE_SHARED
attribute GROUP_DESCRIPTION = MODP_1024
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 3600 (DF) (ttl 53, id
3115, len 108)
14:44:40.356321 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 222:
IP-OF-GATEWAY-A.500 > IP-OF-GATEWAY-B.500: [udp sum ok] isakmp
v1.0exchange ID_PROT
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: 00000000 len: 180
payload: KEY_EXCH len: 132
payload: NONCE len: 20 (ttl 64, id 1228, len 208)
14:44:40.376569 0:4:23:c1:4c:57 0:4:23:a7:f0:d3 0800 226:
IP-OF-GATEWAY-B.500 > IP-OF-GATEWAY-A.500: [udp sum ok] isakmp
v1.0exchange ID_PROT
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: 00000000 len: 184
payload: KEY_EXCH len: 132
payload: NONCE len: 24 (DF) (ttl 53, id 3116, len 212)
14:44:40.396111 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 134:
IP-OF-GATEWAY-A.500 > IP-OF-GATEWAY-B.500: [udp sum ok] isakmp
v1.0exchange ID_PROT encrypted
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: 00000000 len: 92
(ttl 64, id 23041, len 120)
14:44:40.617927 0:4:23:c1:4c:57 0:4:23:a7:f0:d3 0800 110:
IP-OF-GATEWAY-B.500 > IP-OF-GATEWAY-A.500: [udp sum ok] isakmp
v1.0exchange ID_PROT encrypted
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: 00000000 len: 68
(DF) (ttl 53, id 3119, len 96)
14:44:40.631158 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 190:
IP-OF-GATEWAY-A.500 > IP-OF-GATEWAY-B.500: [udp sum ok] isakmp
v1.0exchange QUICK_MODE encrypted
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: a960a9e2 len: 148
(ttl 64, id 249, len 176)
14:44:40.651159 0:4:23:c1:4c:57 0:4:23:a7:f0:d3 0800 198:
IP-OF-GATEWAY-B.500 > IP-OF-GATEWAY-A.500: [udp sum ok] isakmp
v1.0exchange QUICK_MODE encrypted
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: a960a9e2 len: 156
(DF) (ttl 53, id 3120, len 184)
14:44:40.667012 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 94: IP-OF-GATEWAY-A.500>
IP-OF-GATEWAY-B.500: [udp sum ok] isakmp v1.0 exchange QUICK_MODE encrypted
cookie: 07c9dbce8da4a5b1->b4278095f145b1b6 msgid: a960a9e2 len: 52
(ttl 64, id 10415, len 80)
===================================
Now with no changes I'm trying to connect to Host-B from Host-A.
===================================
# telnet IP-OF-HOST-B 80
Trying IP-OF-HOST-B...
tcpdump: listening on em0, link-type EN10MB
14:51:25.609708 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 126: esp
IP-OF-GATEWAY-A > IP-OF-GATEWAY-B spi 0x55C3D5EA seq 1 len 92 (DF) [tos
0x10] (ttl 64, id 54842, len 112)
# netstat -rn
Encap:
Source Port Destination Port Proto
SA(Address/Proto/Type/Direction)
IP-OF-HOST-B/32 0 IP-OF-HOST-A/32 0 0
IP-OF-GATEWAY-B/50/use/in
IP-OF-HOST-A/32 0 IP-OF-HOST-B/32 0 0
IP-OF-GATEWAY-B/50/require/out
===================================
After that I added two new flow rules:
===================================
# netstat -rn
Encap:
Source Port Destination Port Proto
SA(Address/Proto/Type/Direction)
IP-OF-HOST-A/32 0 IP-OF-HOST-B/32 0 0
IP-OF-GATEWAY-B/50/require/in
IP-OF-HOST-B/32 0 IP-OF-HOST-A/32 0 0
IP-OF-GATEWAY-B/50/use/in
IP-OF-HOST-A/32 0 IP-OF-HOST-B/32 0 0
IP-OF-GATEWAY-B/50/require/out
IP-OF-HOST-B/32 0 IP-OF-HOST-A/32 0 0
IP-OF-GATEWAY-B/50/require/out
===================================
Without changing any settings in isakmpd configuration files I retry to
connect to Host-B, and get the following tcpdump output:
===================================
14:58:42.916302 0:4:23:a7:f0:d3 0:4:23:c1:4c:57 0800 202:
IP-OF-GATEWAY-A.500 > IP-OF-GATEWAY-B.500: [udp sum ok] isakmp
v1.0exchange ID_PROT
cookie: 84f811a77578f599->0000000000000000 msgid: 00000000 len: 160
payload: SA len: 52 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 40 proposal: 1 proto: ISAKMP spisz: 0
xforms: 1
payload: TRANSFORM len: 32
transform: 0 ID: ISAKMP
attribute ENCRYPTION_ALGORITHM = 3DES_CBC
attribute HASH_ALGORITHM = SHA
attribute AUTHENTICATION_METHOD = RSA_SIG
attribute GROUP_DESCRIPTION = MODP_1024
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 3600
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 64, id 56922, len
188)
14:58:42.934972 0:4:23:c1:4c:57 0:4:23:a7:f0:d3 0800 82: IP-OF-GATEWAY-B.500>
IP-OF-GATEWAY-A.500: [udp sum ok] isakmp v1.0 exchange INFO
cookie: 84f811a77578f599->0000000000000000 msgid: b7b40411 len: 40
payload: NOTIFICATION len: 12
notification: NO PROPOSAL CHOSEN (DF) (ttl 53, id 3145, len 68)
===================================
After this long intorduction now let me go to the actual questions :)
1. What's the problem with my isakmpd.conf file since isakmpd can't add
correct flow rules?
2. Why AUTHENTICATION_METHOD is set to RSA_SIG in second try? How can I set
this to PRE_SHARED? It's obvious that the error NO PROPOSAL CHOSEN is
related to authentication method, since VPN1 expects me to use PRE_SHARED as
authentication method.
Sorry for this long post, I was trying to give as much detail as I can.
Thanks for the replies.