From 09b375f2ae169c70e7e38bbdb3fa28cf29a8f610 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Fri, 14 Mar 2014 02:23:12 +0700 Subject: Add ovpnflip.pl, OpenVPN site to site remote endpoint config generator. --- converters/README | 1 + converters/ovpnflip.pl | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100755 converters/ovpnflip.pl diff --git a/converters/README b/converters/README index eab660d..2b99a2e 100755 --- a/converters/README +++ b/converters/README @@ -4,3 +4,4 @@ files of other software to Vyatta configuration. Files: qvconvert.pl Quagga to Vyatta converter. vyatta2openwrt-dhcp.sh Exports Vyatta/EdgeOS DHCP static mapping to OpenWRT format +ovpnflip.pl Exports OpenVPN site to site config for the remote endpoint diff --git a/converters/ovpnflip.pl b/converters/ovpnflip.pl new file mode 100755 index 0000000..b631c53 --- /dev/null +++ b/converters/ovpnflip.pl @@ -0,0 +1,76 @@ +#!/usr/bin/env perl +# +# Generates (incomplete) OpenVPN config for site to site remote endpoint +# +# Copyright (C) 2014 by Daniil Baturin +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +use strict; +use warnings; +use lib "/opt/vyatta/share/perl5"; +use Vyatta::Config; + +my $intf = $ARGV[0]; + +die "Please specify OpenVPN interface!" unless defined($intf); + +my $config = new Vyatta::Config; +die "Interface $intf does not exist" unless $config->exists("interfaces openvpn $intf"); + +$config->setLevel("interfaces openvpn $intf"); + +my @local_address = $config->listNodes("local-address"); +my $remote_address = $config->returnValue("remote-address"); +my $proto = $config->returnValue("protocol"); +my $local_port = $config->returnValue("local-port"); +my $remote_port = $config->returnValue("remote-port"); +my $local_host = $config->returnValue("local-host"); + +my $device_type = "tun"; +$device_type = "tap" if $config->exists("device-type"); + +my $ovpn_config = ""; + + +my $defaults = <