Hi all,

I'm trying to set up an IPSec tunnel with a remote peer (HamWAN) who are helping
me annouce an IPv4 allocation. We are having some trouble authenticating with
isakmpd. We got it to connect with a PSK, but can't get certificates or public
key auth working (they don't do secrets as a matter of policy).

They normally use a certificate setup, but it looks like isakmpd requires
subjectaltname to be filled. Using certs without subjectaltname did not
work.

One thing I noticed is that looking at an ultra-verbose log, and using ktrace,
isakmpd loads local.key, but never seems to load anything in the pubkeys
directory.

Before I dump my config files and debug info, I want to give some immense thanks
to EO_ from HamWAN, who has gone way above the call of duty in helping me get
connected.

Here is a link to their instructions page for Mikrotik/RouterOS routers:
https://hamwan.org/Labs/Open%20Peering%20Policy.html#setup-on-mikrotik-routeros-edge-router

This is my ipsec.conf:
ike active ah tunnel from 44.24.246.18/31 to 44.24.246.0/31 peer 44.24.221.2 
main auth hmac-sha1 enc aes-128 group modp1024 lifetime 30m quick auth hmac-md5 
group modp1024 lifetime 30m

My /etc/isakmpd/:
/etc/isakmpd/
|-- ca
|-- certs
|-- crls
|-- keynote
|-- local.pub
|-- private
|   `-- local.key
`-- pubkeys
    |-- fqdn
    |-- ipv4
    |   `-- 44.24.221.2
    |-- ipv6
    `-- ufqdn

local.key is a 2048-bit RSA private key generated by me, and local.pub is the
corresponding public key. pubkeys/ipv4/44.24.221.2 is the public key extracted
from their certificate. All of these are in PEM format.

Any isakmpd experts know how I might make this work? They can give me a client 
cert
with an arbitrary subjectaltname if that would fix it. Would they need to add a
subjectaltname field to their server cert?

Thanks,
Simon

For understanding the below config, my IP address is 71.32.246.199.
Output of isakmpd -K -d -T -v -D A=39:
---------------------------------------------
135329.733775 Default log_debug_cmd: log level changed from 0 to 39 for class 0 
[priv]
135329.734769 Default log_debug_cmd: log level changed from 0 to 39 for class 1 
[priv]
135329.734788 Default log_debug_cmd: log level changed from 0 to 39 for class 2 
[priv]
135329.734804 Default log_debug_cmd: log level changed from 0 to 39 for class 3 
[priv]
135329.734820 Default log_debug_cmd: log level changed from 0 to 39 for class 4 
[priv]
135329.734835 Default log_debug_cmd: log level changed from 0 to 39 for class 5 
[priv]
135329.734850 Default log_debug_cmd: log level changed from 0 to 39 for class 6 
[priv]
135329.734865 Default log_debug_cmd: log level changed from 0 to 39 for class 7 
[priv]
135329.734880 Default log_debug_cmd: log level changed from 0 to 39 for class 8 
[priv]
135329.734896 Default log_debug_cmd: log level changed from 0 to 39 for class 9 
[priv]
135329.734939 Default log_debug_cmd: log level changed from 0 to 39 for class 
10 [priv]
135329.734954 Default isakmpd: starting [priv]
135329.737177 Misc 10 monitor_init: privileges dropped for child process
135330.101234 Plcy 30 policy_init: initializing
135330.103973 Misc 20 udp_make: transport 0x4d1d7733400 socket 8 ip ::1 port 500
135330.104497 Misc 20 udp_make: transport 0x4d1bc508b80 socket 9 ip fe80:5::1 
port 500
135330.105066 Misc 20 udp_make: transport 0x4d1d7733680 socket 10 ip 127.0.0.1 
port 500
135330.105565 Misc 20 udp_make: transport 0x4d1d7733700 socket 11 ip 
192.168.0.1 port 500
135330.106023 Misc 20 udp_make: transport 0x4d16df1f480 socket 12 ip 
fe80:7::20d:b9ff:fe41:e7fc port 500
135330.106637 Misc 20 udp_make: transport 0x4d12e3ae980 socket 13 ip 
71.32.246.199 port 500
135330.107060 Misc 20 udp_make: transport 0x4d1d7733c00 socket 14 ip 0.0.0.0 
port 500
135330.107490 Misc 20 udp_make: transport 0x4d16df1fd80 socket 15 ip :: port 500
135336.262336 UI   30 ui_config: "C set [Phase 1]:44.24.221.2=peer-44.24.221.2 
force"
135336.262557 UI   30 ui_config: "C set [peer-44.24.221.2]:Phase=1 force"
135336.262773 UI   30 ui_config: "C set [peer-44.24.221.2]:Address=44.24.221.2 
force"
135336.262852 UI   30 ui_config: "C set 
[peer-44.24.221.2]:Configuration=phase1-peer-44.24.221.2 force"
135336.262953 UI   30 ui_config: "C set 
[phase1-peer-44.24.221.2]:EXCHANGE_TYPE=ID_PROT force"
135336.263286 UI   30 ui_config: "C add 
[phase1-peer-44.24.221.2]:Transforms=phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024
 force"
135336.263376 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024]:AUTHENTICATION_METHOD=RSA_SIG
 force"
135336.263478 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024]:HASH_ALGORITHM=SHA
 force"
135336.263580 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024]:ENCRYPTION_ALGORITHM=AES_CBC
 force"
135336.263651 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024]:KEY_LENGTH=128,128:128
 force"
135336.263747 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024]:GROUP_DESCRIPTION=MODP_1024
 force"
135336.263819 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024]:Life=phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024-life
 force"
135336.263901 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024-life]:LIFE_TYPE=SECONDS
 force"
135336.263976 UI   30 ui_config: "C set 
[phase1-transform-peer-44.24.221.2-RSA_SIG-SHA-AES128-MODP_1024-life]:LIFE_DURATION=1800
 force"
135336.264057 UI   30 ui_config: "C set 
[from-44.24.246.18/31-to-44.24.246.0/31]:Phase=2 force"
135336.264155 UI   30 ui_config: "C set 
[from-44.24.246.18/31-to-44.24.246.0/31]:ISAKMP-peer=peer-44.24.221.2 force"
135336.264239 UI   30 ui_config: "C set 
[from-44.24.246.18/31-to-44.24.246.0/31]:Configuration=phase2-from-44.24.246.18/31-to-44.24.246.0/31
 force"
135336.264289 UI   30 ui_config: "C set 
[from-44.24.246.18/31-to-44.24.246.0/31]:Local-ID=from-44.24.246.18/31 force"
135336.264326 UI   30 ui_config: "C set 
[from-44.24.246.18/31-to-44.24.246.0/31]:Remote-ID=to-44.24.246.0/31 force"
135336.264396 UI   30 ui_config: "C set 
[phase2-from-44.24.246.18/31-to-44.24.246.0/31]:EXCHANGE_TYPE=QUICK_MODE force"
135336.264499 UI   30 ui_config: "C set 
[phase2-from-44.24.246.18/31-to-44.24.246.0/31]:Suites=phase2-suite-from-44.24.246.18/31-to-44.24.246.0/31
 force"
135336.264538 UI   30 ui_config: "C set 
[phase2-suite-from-44.24.246.18/31-to-44.24.246.0/31]:Protocols=phase2-protocol-from-44.24.246.18/31-to-44.24.246.0/31
 force"
135336.264621 UI   30 ui_config: "C set 
[phase2-protocol-from-44.24.246.18/31-to-44.24.246.0/31]:PROTOCOL_ID=IPSEC_AH 
force"
135336.264707 UI   30 ui_config: "C set 
[phase2-protocol-from-44.24.246.18/31-to-44.24.246.0/31]:Transforms=phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL
 force"
135336.264788 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL]:TRANSFORM_ID=MD5
 force"
135336.264909 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL]:ENCAPSULATION_MODE=TUNNEL
 force"
135336.265032 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL]:AUTHENTICATION_ALGORITHM=HMAC_MD5
 force"
135336.265131 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL]:GROUP_DESCRIPTION=MODP_1024
 force"
135336.265243 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL]:Life=phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL-life
 force
135336.265300 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL-life]:LIFE_TYPE=SECONDS
 force"
135336.265371 UI   30 ui_config: "C set 
[phase2-transform-from-44.24.246.18/31-to-44.24.246.0/31-NONE-MD5-MODP_1024-TUNNEL-life]:LIFE_DURATION=1800
 force"
135336.265425 UI   30 ui_config: "C set 
[from-44.24.246.18/31]:ID-type=IPV4_ADDR_SUBNET force"
135336.265531 UI   30 ui_config: "C set 
[from-44.24.246.18/31]:Network=44.24.246.18 force"
135336.265613 UI   30 ui_config: "C set 
[from-44.24.246.18/31]:Netmask=255.255.255.254 force"
135336.265662 UI   30 ui_config: "C set 
[to-44.24.246.0/31]:ID-type=IPV4_ADDR_SUBNET force"
135336.265751 UI   30 ui_config: "C set [to-44.24.246.0/31]:Network=44.24.246.0 
force"
135336.265789 UI   30 ui_config: "C set 
[to-44.24.246.0/31]:Netmask=255.255.255.254 force"
135336.265861 Timr 10 timer_add_event: event ui_conn_reinit(0x0) added last, 
expiration in 5s
135336.265880 UI   30 ui_config: "C add [Phase 
2]:Connections=from-44.24.246.18/31-to-44.24.246.0/31"
135341.271924 Timr 10 timer_handle_expirations: event ui_conn_reinit(0x0)
135341.271996 Misc 30 connection_reinit: reinitializing connection list
135341.272042 Timr 10 timer_add_event: event connection_checker(0x4d1dca9b000) 
added last, expiration in 0s
135341.272572 Timr 10 timer_handle_expirations: event 
connection_checker(0x4d1dca9b000)
135341.272670 Timr 10 timer_add_event: event connection_checker(0x4d1dca9b000) 
added last, expiration in 60s
135341.273075 Timr 10 timer_add_event: event exchange_free_aux(0x4d207e15a00) 
added last, expiration in 120s
135341.273153 Exch 10 exchange_establish_p1: 0x4d207e15a00 peer-44.24.221.2 
phase1-peer-44.24.221.2 policy initiator phase 1 doi 1 exchange 2 step 0
135341.273174 Exch 10 exchange_establish_p1: icookie cefe98ef23d00ea7 rcookie 
0000000000000000
135341.273189 Exch 10 exchange_establish_p1: msgid 00000000 
135341.273756 Trpt 30 transport_send_messages: message 0x4d15a66be00 scheduled 
for retransmission 1 in 7 secs
135341.273809 Timr 10 timer_add_event: event message_send_expire(0x4d15a66be00) 
added before connection_checker(0x4d1dca9b000), expiration in 7s
135341.279266 Mesg 20 message_free: freeing 0x4d15a66be00
135341.279302 Timr 10 timer_remove_event: removing event 
message_send_expire(0x4d15a66be00)
135341.279414 Exch 10 dpd_check_vendor_payload: DPD capable peer detected
135341.279471 Negt 30 message_negotiate_sa: transform 0 proto 1 proposal 1 ok
135341.279636 Negt 20 ike_phase_1_validate_prop: success
135341.279686 Negt 30 message_negotiate_sa: proposal 1 succeeded
135341.279702 Misc 20 ipsec_decode_transform: transform 0 chosen
135341.284636 Trpt 30 transport_send_messages: message 0x4d141433600 scheduled 
for retransmission 1 in 7 secs
135341.284661 Timr 10 timer_add_event: event message_send_expire(0x4d141433600) 
added before connection_checker(0x4d1dca9b000), expiration in 7s
135341.301433 Mesg 20 message_free: freeing 0x4d141433600
135341.301477 Timr 10 timer_remove_event: removing event 
message_send_expire(0x4d141433600)
135341.305925 Mesg 20 message_free: freeing 0x4d13c879300
135341.306270 Plcy 30 keynote_cert_obtain: failed to open 
"/etc/isakmpd/keynote//71.32.246.199/credentials"
135341.306311 Misc 10 rsa_sig_encode_hash: no certificate to send for id 
ipv4/71.32.246.199
135341.320741 Trpt 30 transport_send_messages: message 0x4d13c879e00 scheduled 
for retransmission 1 in 7 secs
135341.320796 Timr 10 timer_add_event: event message_send_expire(0x4d13c879e00) 
added before connection_checker(0x4d1dca9b000), expiration in 7s
135341.333423 Default ipsec_get_keystate: no keystate in ISAKMP SA 0x4d1db4c0800
135341.333450 Mesg 20 message_free: freeing 0x4d141433a00
135348.333912 Timr 10 timer_handle_expirations: event 
message_send_expire(0x4d13c879e00)
135348.334583 Trpt 30 transport_send_messages: message 0x4d13c879e00 scheduled 
for retransmission 2 in 9 secs
135348.334609 Timr 10 timer_add_event: event message_send_expire(0x4d13c879e00) 
added before connection_checker(0x4d1dca9b000), expiration in 9s
135348.340632 Default ipsec_get_keystate: no keystate in ISAKMP SA 0x4d1db4c0800
135348.340660 Mesg 20 message_free: freeing 0x4d161c36e00
135351.304464 Mesg 20 message_free: freeing 0x4d13c879100
135357.346543 Timr 10 timer_handle_expirations: event 
message_send_expire(0x4d13c879e00)
135357.347090 Trpt 30 transport_send_messages: message 0x4d13c879e00 scheduled 
for retransmission 3 in 11 secs
135357.347158 Timr 10 timer_add_event: event message_send_expire(0x4d13c879e00) 
added before connection_checker(0x4d1dca9b000), expiration in 11s
135357.353110 Default ipsec_get_keystate: no keystate in ISAKMP SA 0x4d1db4c0800
135357.353139 Mesg 20 message_free: freeing 0x4d161c36300
135401.301590 Mesg 20 message_free: freeing 0x4d15a66b400
135408.359643 Timr 10 timer_handle_expirations: event 
message_send_expire(0x4d13c879e00)
135408.360293 Default transport_send_messages: giving up on exchange 
peer-44.24.221.2, no response from peer 44.24.221.2:500
135408.360314 Mesg 20 message_free: freeing 0x4d13c879e00
135408.367511 Default ipsec_get_keystate: no keystate in ISAKMP SA 0x4d1db4c0800
135408.367556 Mesg 20 message_free: freeing 0x4d13c879f00
135411.302047 Mesg 20 message_free: freeing 0x4d13c879b00
135419.285081 Default isakmpd: shutting down...
135419.285370 Default isakmpd: exit

Reply via email to