Add ovpn-ccd-convert script.

This script is required, to convert existing OpenVPN roadwarrior configurations to
work with the new CCD extension.
This commit is contained in:
Stefan Schantl
2012-11-17 16:35:38 +01:00
parent 350f298025
commit 07cdb8f659
3 changed files with 49 additions and 0 deletions

View File

@@ -95,6 +95,7 @@ usr/local/bin/vpn-watch
#usr/local/share/zoneinfo
#usr/local/src
#usr/sbin
usr/sbin/ovpn-ccd-convert
#usr/share
#usr/share/doc
#usr/share/doc/licenses

View File

@@ -89,6 +89,9 @@ $(TARGET) :
chmod 755 /usr/local/bin/`basename $$i`; \
done
# Move script to correct place.
mv -vf /usr/local/bin/ovpn-ccd-convert /usr/sbin/
# Nobody user
-mkdir -p /home/nobody
chown -R nobody:nobody /home/nobody

View File

@@ -0,0 +1,45 @@
#!/usr/bin/perl
my %net=();
my %ovpnconfig=();
my @serverconf=();
my $greennet;
my $greensubnet;
require '/var/ipfire/general-functions.pl';
if ( -e "/var/run/openvpn.pid"){
system('/usr/local/bin/openvpnctrl', '-k');
}
&General::readhash("/var/ipfire/ethernet/settings", \%net);
$greennet=$net{'GREEN_NETADDRESS'};
$greensubnet=$net{'GREEN_NETMASK'};
open(FILE,"/var/ipfire/ovpn/server.conf");
while (<FILE>) {
$_=~s/\s*$//g;
if ($_ ne "route $greennet $greensubnet"){
push (@serverconf,$_."\n");
}else{
print"\nFound ROUTE >>route $greennet $greensubnet<< in server.conf.. Deleted!";
}
}
&General::readhasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig);
foreach my $key (keys %ovpnconfig){
if($ovpnconfig{$key}[32] eq ''){
open ( CCDRWCONF,'>',"/var/ipfire/ovpn/ccd/$ovpnconfig{$key}[2]") or die "Unable to create clientconfigfile $!";
print CCDRWCONF "# OpenVPN Clientconfig from CCD extension by Copymaster#\n\n";
print CCDRWCONF "#This client uses the dynamic pool\n\n";
print CCDRWCONF "\n#Client gets routes to these Networks (behind IPFIRE)\n";
print CCDRWCONF "push \"route $greennet $greensubnet\"\n";
close CCDRWCONF;
print"Client $ovpnconfig{$key}[2] converted! \n";
}else{
print "Client $ovpnconfig{$key}[2] NOT converted!\n";
}
$ovpnconfig{$key}[32] = 'dynamic';
}
&General::writehasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig);
system('/usr/local/bin/openvpnctrl', '-s');