On Wed, Nov 08, 2006 at 07:50:46AM +1100, nuffnough wrote: > I have an OpenBSD 3.9 box and I've been asked to configure it to terminate a > VPN using AES-256 encryption with SHA authentication, DH Group 5 (rather > than the default group 2) and a lifetime of one day. I configured my > isakmpd.conf file like this:
if you've any interest in trying to use ipsecctl, and if you have other machines on 4.0 or -current, i was entirely 100% successful ( 'was' as now the 3.9 boxes this applied to are 4.0 ) with using ipsecctl from a late -current on 3.9 machines. it seems to me that ipsecctl is just a go-between to translate a configuration file into isakmpd FIFO commands, who, apart from adding the 'passive only' ui_ command, don't look like they've much changed in the past year. the ipsecctl in 3.9-REL was a bit less robust in what it understood in the config file, compared to 4.0. at worst, you could run it with lots of -v and then eyeball the FIFO commands it does and then write up an isakmpd.conf around that. but ipsecctl aside: > ** > [Phase 1] > Default= ISAKMP-peer-default > 10.1.2.138= ISAKMP-peer-xx > > [Phase 2] > Connections= IPsec-xx1-rl1-2, IPsec-xx1-rl1-3 > > [ISAKMP-peer-xx] <...> > [IPsec-xx1-rl1-2] > Phase= 2 > ISAKMP-peer= ISAKMP-peer-bp is -bp == -xx ? > What ended up happening was that my end was initiating the tunnel using > AES-128, and a lifetime of 1 hour (the default configuration as indicated > in the man page). > I defined my own Transform ... <...> > My understanding from reading the man page is that is the syntax I need to > use. It also means that we should be attempting to send a 256 bit key > length with a lifetime of 1 day (86400 seconds) whenever we're initiating > the tunnel. Also, MODP_1536 should be correct for DH Group 5. Please let > me know if I am wrong here. yup, 1536 is 5 $ awk '/^# IKE group/,/^\.$/ { print $0 }' /usr/src/sbin/isakmpd/ipsec_num.cst # IKE group description. IKE_GROUP_DESC MODP_768 1 MODP_1024 2 EC2N_155 3 EC2N_185 4 MODP_1536 5 EC2N_163sect 6 EC2N_163K 7 EC2N_283sect 8 EC2N_283K 9 EC2N_409sect 10 EC2N_409K 11 EC2N_571sect 12 EC2N_571K 13 MODP_2048 14 MODP_3072 15 MODP_4096 16 MODP_6144 17 MODP_8192 18 . if it helps diagnose stuff for you, this doesn't catch _everything_, but it helped me a great deal with filtering out too much verboseness in the majority of my debug fricking with isakmpd: $ sudo /sbin/isakmpd -dDA=0 -D2=50 -D5=50 -D7=50 -D8=40 -D9=30 > What actually happened was that my box stopped trying to initiate the > tunnel. With the old configuration I was getting a packet exchange every > couple of minutes. was that perhaps because it was always unsuccessful and was just retrying?, or did everything get established and you made it out the other side of phase-2 OK, but the actual parameters used were simply not the ones desired? after they go through phase-1 and make it through phase-2, they ( the isakmpd processes, or at least your isakmpd and whatever the other side is ) should be /relatively/ quiet. > After I made this change all my other VPNs came up as > usual but there was no traffic at all relating to this tunnel. > > Is my syntax incorrect? without running it through isakmpd to parse it, and given that i'm a bit rusty with isakmpd.conf, nothing jumps out at me. > Is there something I am missing about the structure of isakmpd.conf about > the placement or reference of these new sections for lifetime and > XX-AES-SHA? tbh i don't recall if order matters. here's a c/p of an isakmpd.conf w/"custom" phase-1 and phase-2 i had running stable up until i switched over to an ipsecctl-based scheme. ( we had our own X509 fqdn certs from back in the certpatch days ). either end of the tunnel was OK to initiate the negotiation, and the intent was for the tunnels to be always up. --------- [general] renegotiate-on-hup= please default-phase-1-id= id1-self # phase 1 [phase 1] 70.70.70.70= p1-peer1 [phase 2] connections= p2-peer1 [id1-self] id-type= fqdn name= self.vpn [id1-peer1] id-type= fqdn name= peer1.vpn [p1-peer1] phase= 1 address= 70.70.70.70 id= id1-self remote-id= id1-peer1 configuration= p1cfg-vpn # phase-2 [id2-self] id-type= ipv4_addr address= 172.16.7.30 [id2-peer1] id-type= ipv4_addr address= 172.16.196.1 [p2-peer1] phase= 2 isakmp-peer= p1-peer1 local-id= id2-self remote-id= id2-peer1 configuration= p2cfg-vpn # xf/protocols [2h] life_type= seconds life_duration= 7200 [p1cfg-vpn] exchange_type= id_prot transforms= p1cfg-vpn-xf [p1cfg-vpn-xf] authentication_method= rsa_sig encryption_algorithm= aes_cbc group_description= modp_2048 hash_algorithm= sha key_length= 256 life= 2h [p2cfg-vpn] exchange_type= quick_mode suites= p2cfg-vpn-suite [p2cfg-vpn-suite] protocols= p2cfg-vpn-proto [p2cfg-vpn-proto] protocol_id= ipsec_esp transforms= p2cfg-vpn-xf [p2cfg-vpn-xf] authentication_algorithm= hmac_sha encapsulation_mode= tunnel group_description= modp_2048 transform_id= aes key_length= 256 life= 2h --------- > If not, can you show me what I am doign wrong, so that I can > do it right? regarding: "other VPNs came up fine, but no traffic relating to this tunnel" -- does that mean you didn't see anything about this in, say, 'netstat -rnf encap', ?, or that you did see the flow established but nothing happened to be working across it?. if you still have ipsecadm (think it was still in 3.9), do you get anything useful (regarding how far along the negotiations progressed) out of 'ipsecadm show' ?. either that or 'ipsecctl -s blahblah' in all my experiences with isakmpd ( to be fair, they're all, except for one instance, with isakmpd on both ends ), if you get through phase-1, and then get through phase-2, and get flows established and managed, it is _up_, and the only thing at that point is to get traffic into the tunnel, but as far as isakmpd's part of the bargain goes, he's done and is on break. tunnel might be up ok already? -- jared