@@ -471,13 +471,13 @@ def process(self):
471471
472472 def deletevpn (self , ip ):
473473 logging .info ("Removing VPN configuration for %s" , ip )
474- CsHelper .execute ("ipsec auto -- down vpn-%s" % ip )
475- CsHelper .execute ("ipsec auto --delete vpn-%s" % ip )
474+ CsHelper .execute ("ipsec down vpn-%s" % ip )
475+ CsHelper .execute ("ipsec down vpn-%s" % ip )
476476 vpnconffile = "%s/ipsec.vpn-%s.conf" % (self .VPNCONFDIR , ip )
477477 vpnsecretsfile = "%s/ipsec.vpn-%s.secrets" % (self .VPNCONFDIR , ip )
478478 os .remove (vpnconffile )
479479 os .remove (vpnsecretsfile )
480- CsHelper .execute ("ipsec auto --rereadall " )
480+ CsHelper .execute ("ipsec reload " )
481481
482482 def configure_iptables (self , dev , obj ):
483483 self .fw .append (["" , "front" , "-A INPUT -i %s -p udp -m udp --dport 500 -s %s -d %s -j ACCEPT" % (dev , obj ['peer_gateway_ip' ], obj ['local_public_ip' ])])
@@ -500,46 +500,53 @@ def configure_ipsec(self, obj):
500500 peerlist = obj ['peer_guest_cidr_list' ].lstrip ().rstrip ().replace (',' , ' ' )
501501 vpnconffile = "%s/ipsec.vpn-%s.conf" % (self .VPNCONFDIR , rightpeer )
502502 vpnsecretsfile = "%s/ipsec.vpn-%s.secrets" % (self .VPNCONFDIR , rightpeer )
503+ ikepolicy = obj ['ike_policy' ].replace (';' ,'-' )
504+ esppolicy = obj ['esp_policy' ].replace (';' ,'-' )
505+
506+ pfs = 'no'
507+ if 'modp' in esppolicy :
508+ pfs = 'yes'
509+
503510 if rightpeer in self .confips :
504511 self .confips .remove (rightpeer )
505512 file = CsFile (vpnconffile )
513+ file .add ("#conn for vpn-%s" % rightpeer , 0 )
506514 file .search ("conn " , "conn vpn-%s" % rightpeer )
507515 file .addeq (" left=%s" % leftpeer )
508516 file .addeq (" leftsubnet=%s" % obj ['local_guest_cidr' ])
509517 file .addeq (" leftnexthop=%s" % obj ['local_public_gateway' ])
510518 file .addeq (" right=%s" % rightpeer )
511- file .addeq (" rightsubnets={%s} " % peerlist )
519+ file .addeq (" rightsubnet=%s " % peerlist )
512520 file .addeq (" type=tunnel" )
513521 file .addeq (" authby=secret" )
514522 file .addeq (" keyexchange=ike" )
515- file .addeq (" ike=%s" % obj [ 'ike_policy' ] )
523+ file .addeq (" ike=%s" % ikepolicy )
516524 file .addeq (" ikelifetime=%s" % self .convert_sec_to_h (obj ['ike_lifetime' ]))
517- file .addeq (" esp=%s" % obj ['esp_policy' ])
518- file .addeq (" salifetime=%s" % self .convert_sec_to_h (obj ['esp_lifetime' ]))
519- if "modp" in obj ['esp_policy' ]:
520- file .addeq (" pfs=yes" )
521- else :
522- file .addeq (" pfs=no" )
525+ file .addeq (" esp=%s" % esppolicy )
526+ file .addeq (" lifetime=%s" % self .convert_sec_to_h (obj ['esp_lifetime' ]))
527+ file .addeq (" pfs=%s" % pfs )
523528 file .addeq (" keyingtries=2" )
524529 file .addeq (" auto=start" )
525530 if 'encap' not in obj :
526531 obj ['encap' ]= False
527532 file .addeq (" forceencaps=%s" % CsHelper .bool_to_yn (obj ['encap' ]))
528533 if obj ['dpd' ]:
529- file .addeq (" dpddelay=30" )
530- file .addeq (" dpdtimeout=120" )
531- file .addeq (" dpdaction=restart" )
534+ file .addeq (" dpddelay=30" )
535+ file .addeq (" dpdtimeout=120" )
536+ file .addeq (" dpdaction=restart" )
532537 secret = CsFile (vpnsecretsfile )
533- secret .search ("%s " % leftpeer , "%s %s: PSK \" %s\" " % (leftpeer , rightpeer , obj ['ipsec_psk' ]))
538+ secret .search ("%s " % leftpeer , "%s %s : PSK \" %s\" " % (leftpeer , rightpeer , obj ['ipsec_psk' ]))
534539 if secret .is_changed () or file .is_changed ():
535540 secret .commit ()
536541 file .commit ()
537542 logging .info ("Configured vpn %s %s" , leftpeer , rightpeer )
538- CsHelper .execute ("ipsec auto --rereadall" )
539- CsHelper .execute ("ipsec auto --add vpn-%s" % rightpeer )
540- if not obj ['passive' ]:
541- CsHelper .execute ("ipsec auto --up vpn-%s" % rightpeer )
542- os .chmod (vpnsecretsfile , 0o400 )
543+ CsHelper .execute ("ipsec rereadsecrets" )
544+
545+ CsHelper .execute ("ipsec reload" )
546+ if not obj ['passive' ]:
547+ CsHelper .execute ("sudo nohup ipsec down vpn-%s" % rightpeer )
548+ CsHelper .execute ("sudo nohup ipsec up vpn-%s &" % rightpeer )
549+ os .chmod (vpnsecretsfile , 0400 )
543550
544551 def convert_sec_to_h (self , val ):
545552 hrs = int (val ) / 3600
@@ -628,25 +635,25 @@ def process(self):
628635 logging .debug ("Remote accessvpn data bag %s" , self .dbag )
629636 self .remoteaccessvpn_iptables (public_ip , self .dbag [public_ip ])
630637
631- CsHelper .execute ("ipsec auto --rereadall" )
638+ CsHelper .execute ("ipsec down L2TP-PSK" )
639+ CsHelper .execute ("ipsec update" )
632640 CsHelper .execute ("service xl2tpd stop" )
633641 CsHelper .execute ("service xl2tpd start" )
634- CsHelper .execute ("ipsec auto --rereadsecrets" )
635- CsHelper .execute ("ipsec auto --replace L2TP-PSK" )
642+ CsHelper .execute ("ipsec rereadsecrets" )
636643 else :
637644 logging .debug ("Disabling remote access vpn ....." )
638645 #disable remote access vpn
639- CsHelper .execute ("ipsec auto -- down L2TP-PSK" )
646+ CsHelper .execute ("ipsec down L2TP-PSK" )
640647 CsHelper .execute ("service xl2tpd stop" )
641648
642649
643650 def configure_l2tpIpsec (self , left , obj ):
644- vpnconffile = "%s/l2tp.conf" % (self .VPNCONFDIR )
651+ l2tpconffile = "%s/l2tp.conf" % (self .VPNCONFDIR )
645652 vpnsecretfilte = "%s/ipsec.any.secrets" % (self .VPNCONFDIR )
646653 xl2tpdconffile = "/etc/xl2tpd/xl2tpd.conf"
647654 xl2tpoptionsfile = '/etc/ppp/options.xl2tpd'
648655
649- file = CsFile (vpnconffile )
656+ file = CsFile (l2tpconffile )
650657 localip = obj ['local_ip' ]
651658 localcidr = obj ['local_cidr' ]
652659 publicIface = obj ['public_interface' ]
0 commit comments