Revision: 6904
http://ipcop.svn.sourceforge.net/ipcop/?rev=6904&view=rev
Author: dotzball
Date: 2013-01-17 20:20:27 +0000 (Thu, 17 Jan 2013)
Log Message:
-----------
Fix wrong ca path in openvpn web administration.
Thanks to "harvey637".
Modified Paths:
--------------
ipcop/trunk/html/cgi-bin/openvpn.cgi
ipcop/trunk/lfs/ipcop
ipcop/trunk/src/scripts/upgrade.sh
ipcop/trunk/updates/2.1.0/ROOTFILES.i486-2.1.0
Modified: ipcop/trunk/html/cgi-bin/openvpn.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/openvpn.cgi 2013-01-08 23:22:23 UTC (rev
6903)
+++ ipcop/trunk/html/cgi-bin/openvpn.cgi 2013-01-17 20:20:27 UTC (rev
6904)
@@ -241,7 +241,7 @@
print CONF "persist-tun\n";
if ($sovpnsettings{LOG_VERB} ne '') {
print CONF "verb $sovpnsettings{LOG_VERB}\n";
- }
+ }
else {
print CONF "verb 3\n";
}
@@ -301,7 +301,7 @@
return unless ($vpnsettings{'STATICIP'} eq 'on');
my $filename = "/var/ipcop/openvpn/ccd/$confighash{$key}[2]";
$filename =~ tr/ /_/;
-
+
open(CONF, ">$filename") or die "Unable to open $filename $!";
print CONF "# $confighash{$key}[2]\n";
my $serverip =
NetAddr::IP->new("$confighash{$key}[32]/30")->first()->addr();
@@ -365,13 +365,13 @@
### Save Advanced options
###
if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) {
- map($vpnsettings{$_} = $cgiparams{$_},
+ map($vpnsettings{$_} = $cgiparams{$_},
('LOG_VERB', 'KEEPALIVE_1', 'KEEPALIVE_2', 'MAX_CLIENTS',
'REDIRECT_GW_DEF1', 'STATICIP', 'CLIENT2CLIENT',
'DHCP_DOMAIN', 'DHCP_DNS1', 'DHCP_DNS2', 'DHCP_NTP1', 'DHCP_NTP2',
'DHCP_WINS1', 'DHCP_WINS2',
- 'NOBIND', 'FASTIO', 'MTUDISC',
+ 'NOBIND', 'FASTIO', 'MTUDISC',
'RADIUS_ENABLED', 'RADIUS_HOST', 'RADIUS_AUTHPORT',
'RADIUS_ACCTPORT', 'RADIUS_RETRY', 'RADIUS_TIMEOUT', 'RADIUS_PASS1',
'PUSH_GREEN_1', 'PUSH_BLUE_1', 'PUSH_ORANGE_1'));
-
+
if ($cgiparams{'DHCP_DOMAIN'} ne '') {
unless (&General::validdomainname($cgiparams{'DHCP_DOMAIN'})) {
$errormessage = $Lang::tr{'invalid input for dhcp domain'};
@@ -508,7 +508,7 @@
# Verify port (usually udp/1994) only if want to change it.
if
(&DATA::isReservedPort($cgiparams{'DPROTOCOL'},$cgiparams{'DDEST_PORT'})) {
$errormessage = $Lang::tr{'reserved dst port'};
- goto SETTINGS_ERROR;
+ goto SETTINGS_ERROR;
}
}
@@ -524,7 +524,7 @@
$errormessage = $Lang::tr{'openvpn subnet is invalid'};
goto SETTINGS_ERROR;
}
-
+
if (&General::validip($netsettings{'RED_1_ADDRESS'}) &&
$tmpnetaddr->contains(NetAddr::IP->new($netsettings{'RED_1_ADDRESS'}))) {
$errormessage = "$Lang::tr{'openvpn subnet overlap'}: IPCop RED
Network $netsettings{'RED_1_ADDRESS'}";
goto SETTINGS_ERROR;
@@ -572,8 +572,8 @@
$errormessage = $Lang::tr{'invalid port'};
goto SETTINGS_ERROR;
}
-
- map($vpnsettings{$_} = $cgiparams{$_},
+
+ map($vpnsettings{$_} = $cgiparams{$_},
('ENABLED_BLUE_1', 'ENABLED_RED_1', 'VPN_IP', 'DOVPN_SUBNET',
'DDEVICE', 'DPROTOCOL', 'DDEST_PORT', 'DMTU', 'DCOMPLZO', 'DCIPHER'));
&General::writehash('/var/ipcop/openvpn/settings', \%vpnsettings);
&writeserverconf();
@@ -589,13 +589,13 @@
$confighash{$cgiparams{'KEY'}}[0] = 'on';
&General::writehasharray('/var/ipcop/openvpn/config',
\%confighash);
&writeclientconf($cgiparams{'KEY'});
- }
+ }
else {
$confighash{$cgiparams{'KEY'}}[0] = 'off';
&General::writehasharray('/var/ipcop/openvpn/config',
\%confighash);
&removeclientconf($cgiparams{'KEY'});
}
- }
+ }
else {
$errormessage = $Lang::tr{'invalid key'};
}
@@ -632,7 +632,7 @@
}
if ( $vpnsettings{'ENABLED_RED_1'} eq 'on') {
print CLIENTCONF "remote $vpnsettings{'VPN_IP'}
$vpnsettings{'DDEST_PORT'}\r\n";
-
+
if ($vpnsettings{'ENABLED_BLUE_1'} eq 'on' && (&FW::haveBlueNet())) {
print CLIENTCONF "#Comment the above line and uncomment the next
line, if you want to connect on the Blue interface\r\n";
print CLIENTCONF ";remote $netsettings{'BLUE_1_ADDRESS'}
$vpnsettings{'DDEST_PORT'}\r\n";
@@ -640,17 +640,17 @@
}
elsif ($vpnsettings{'ENABLED_BLUE_1'} eq 'on' && (&FW::haveBlueNet())) {
print CLIENTCONF "remote $netsettings{'BLUE_1_ADDRESS'}
$vpnsettings{'DDEST_PORT'}\r\n";
- }
+ }
if ($confighash{$cgiparams{'KEY'}}[4] eq 'cert' && -f
"/var/ipcop/openvpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12") {
print CLIENTCONF "pkcs12 $confighash{$cgiparams{'KEY'}}[1].p12\r\n";
$zip->addFile("/var/ipcop/openvpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12",
"$confighash{$cgiparams{'KEY'}}[1].p12") or die "Can't add file
$confighash{$cgiparams{'KEY'}}[1].p12\n";
- }
+ }
else {
print CLIENTCONF "ca cacert.pem\r\n";
print CLIENTCONF "cert $confighash{$cgiparams{'KEY'}}[1]cert.pem\r\n";
print CLIENTCONF "key $confighash{$cgiparams{'KEY'}}[1].key\r\n";
- $zip->addFile("/var/ipcop/openvpn/ca/cacert.pem", "cacert.pem") or
die "Can't add file cacert.pem\n";
+ $zip->addFile("/var/ipcop/ca/cacert.pem", "cacert.pem") or die "Can't
add file cacert.pem\n";
$zip->addFile("/var/ipcop/openvpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem",
"$confighash{$cgiparams{'KEY'}}[1]cert.pem") or die "Can't add file
$confighash{$cgiparams{'KEY'}}[1]cert.pem\n";
}
print CLIENTCONF "cipher $vpnsettings{DCIPHER}\r\n";
@@ -683,7 +683,7 @@
delete $confighash{$cgiparams{'KEY'}};
system("/usr/bin/openssl ca -gencrl -out /var/ipcop/crls/cacrl.pem");
&General::writehasharray('/var/ipcop/openvpn/config', \%confighash);
- }
+ }
else {
$errormessage = $Lang::tr{'invalid key'};
}
@@ -1101,7 +1101,7 @@
} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'restart'}) {
# TODO: populate with some code?
if ($confighash{$cgiparams{'KEY'}}) {
- }
+ }
else {
$errormessage = $Lang::tr{'invalid key'};
}
@@ -1149,7 +1149,7 @@
($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'ADVANCED'} eq
'')) {
&General::readhash('/var/ipcop/vpn/rootcertsettings', \%rootcertsettings)
if (-f '/var/ipcop/vpn/rootcertsettings');
- &General::readhasharray('/var/ipcop/openvpn/caconfig', \%cahash);
+ &General::readhasharray('/var/ipcop/vpn/caconfig', \%cahash);
if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}) {
if (! $confighash{$cgiparams{'KEY'}}[0]) {
@@ -1255,7 +1255,7 @@
}
if ($cgiparams{'AUTH'} eq 'psk') {
- }
+ }
elsif ($cgiparams{'AUTH'} eq 'certreq') {
if ($cgiparams{'KEY'}) {
$errormessage = $Lang::tr{'cant change certificates'};
@@ -1285,7 +1285,7 @@
unlink ("/var/ipcop/openvpn/certs/$cgiparams{'NAME'}cert.pem");
&VPN::newcleanssldatabase();
goto VPNCONF_ERROR;
- }
+ }
else {
unlink ($filename);
&deletebackupcert();
@@ -1296,7 +1296,7 @@
$errormessage = $Lang::tr{'could not retrieve common name from
certificate'};
goto VPNCONF_ERROR;
}
- }
+ }
elsif ($cgiparams{'AUTH'} eq 'certfile') {
if ($cgiparams{'KEY'}) {
$errormessage = $Lang::tr{'cant change certificates'};
@@ -1315,13 +1315,13 @@
# Verify the certificate has a valid CA and move it
my $validca = 0;
- my $test = `/usr/bin/openssl verify -CAfile
/var/ipcop/openvpn/ca/cacert.pem $filename`;
+ my $test = `/usr/bin/openssl verify -CAfile
/var/ipcop/ca/cacert.pem $filename`;
if ($test =~ /: OK/) {
$validca = 1;
- }
+ }
else {
foreach my $key (keys %cahash) {
- $test = `/usr/bin/openssl verify -CAfile
/var/ipcop/openvpn/ca/$cahash{$key}[0]cert.pem $filename`;
+ $test = `/usr/bin/openssl verify -CAfile
/var/ipcop/ca/$cahash{$key}[0]cert.pem $filename`;
if ($test =~ /: OK/) {
$validca = 1;
}
@@ -1331,7 +1331,7 @@
$errormessage = $Lang::tr{'certificate does not have a valid
ca associated with it'};
unlink ($filename);
goto VPNCONF_ERROR;
- }
+ }
else {
move($filename,
"/var/ipcop/openvpn/certs/$cgiparams{'NAME'}cert.pem");
if ($? ne 0) {
@@ -1405,7 +1405,7 @@
goto VPNCONF_ERROR;
}
- if (($cgiparams{'YEAR'} < $this_year)
+ if (($cgiparams{'YEAR'} < $this_year)
|| (($cgiparams{'YEAR'} == $this_year) && ($cgiparams{'MONTH'}
< $now[4]))
|| (($cgiparams{'YEAR'} == $this_year) && ($cgiparams{'MONTH'}
== $now[4]) && ($cgiparams{'DAY'} < $now[3])) ) {
$errormessage = $Lang::tr{'invalid date entered'};
@@ -1463,7 +1463,7 @@
unlink ("/var/ipcop/openvpn/certs/$cgiparams{'NAME'}cert.pem");
&VPN::newcleanssldatabase();
goto VPNCONF_ERROR;
- }
+ }
else {
unlink ("/var/ipcop/openvpn/certs/$cgiparams{'NAME'}req.pem");
&deletebackupcert();
@@ -1485,14 +1485,14 @@
unlink ("/var/ipcop/openvpn/certs/$cgiparams{'NAME'}cert.pem");
unlink ("/var/ipcop/openvpn/certs/$cgiparams{'NAME'}.p12");
goto VPNCONF_ERROR;
- }
+ }
else {
unlink ("/var/ipcop/openvpn/certs/$cgiparams{'NAME'}key.pem");
}
}
elsif ($cgiparams{'AUTH'} eq 'cert') {
;# Nothing, just editing
- }
+ }
else {
$errormessage = $Lang::tr{'invalid input for authentication
method'};
goto VPNCONF_ERROR;
@@ -1523,7 +1523,7 @@
if ($cgiparams{'AUTH'} eq 'psk') {
$confighash{$key}[4] = 'psk';
$confighash{$key}[5] = $cgiparams{'PSK'};
- }
+ }
else {
$confighash{$key}[4] = 'cert';
}
@@ -1554,7 +1554,7 @@
$cgiparams{'SIDE'} = 'left';
if ( ! -f '/var/ipcop/private/cakey.pem' ) {
$cgiparams{'AUTH'} = 'psk';
- }
+ }
elsif ( ! -f '/var/ipcop/ca/cacert.pem') {
$cgiparams{'AUTH'} = 'certfile';
}
@@ -1628,7 +1628,7 @@
else {
print "<td width='25%'><input type='text' name='NAME'
value='$cgiparams{'NAME'}' maxlength='20' size='30' /></td>";
}
- }
+ }
print <<END
<td class='base' width='25%'>$Lang::tr{'enabled'}:</td>
<td width='25%'><input type='checkbox' name='ENABLED'
$checked{'ENABLED'}{'on'} /></td>
@@ -1659,17 +1659,17 @@
;
if ($cgiparams{'KEY'} && $cgiparams{'AUTH'} eq 'psk') {
END
- }
+ }
elsif (! $cgiparams{'KEY'}) {
my $disabled='';
my $cakeydisabled='';
my $cacrtdisabled='';
$cakeydisabled = "disabled='disabled'" if ( ! -f
'/var/ipcop/private/cakey.pem' );
$cacrtdisabled = "disabled='disabled'" if ( ! -f
'/var/ipcop/ca/cacert.pem' );
-
+
# Close the previous box
&Header::closebox();
-
+
&Header::openbox('100%', 'left', "$Lang::tr{'authentication'}:");
print <<END
<table width='100%' cellpadding='0' cellspacing='5' border='0'>
@@ -1798,7 +1798,7 @@
$cgiparams{'DDEVICE'} = 'tun';
%cahash = ();
&General::readhash('/var/ipcop/openvpn/settings', \%cgiparams);
-&General::readhasharray('/var/ipcop/openvpn/caconfig', \%cahash);
+&General::readhasharray('/var/ipcop/vpn/caconfig', \%cahash);
my @status = `/bin/cat /var/log/openvpnserver.log`;
my $disableadvanced = '';
@@ -2019,23 +2019,23 @@
my $id = 0;
my $gif;
foreach my $key (keys %confighash) {
- if ($confighash{$key}[0] eq 'on') {
- $gif = 'on.gif';
- }
- else {
- $gif = 'off.gif';
+ if ($confighash{$key}[0] eq 'on') {
+ $gif = 'on.gif';
}
+ else {
+ $gif = 'off.gif';
+ }
print "<tr class='table".int(($id % 2) + 1)."colour'>";
print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>";
print "<td align='center' nowrap='nowrap'>" .
$Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} .
")</td>";
if ($confighash{$key}[4] eq 'cert') {
print "<td align='center'
nowrap='nowrap'>$confighash{$key}[2]</td>";
- }
+ }
else {
print "<td align='left'> </td>";
}
-
+
my $cavalid = `/usr/bin/openssl x509 -text -in
/var/ipcop/openvpn/certs/$confighash{$key}[1]cert.pem`;
$cavalid =~ /Not After : (.*)[\n]/;
$cavalid = $1;
@@ -2044,7 +2044,7 @@
my $active = "<table cellpadding='2' cellspacing='0'
class='ipcop_stopped' width='100%'><tr><td
align='center'>$Lang::tr{'capsclosed'}</td></tr></table>";
if ($confighash{$key}[0] eq 'off') {
$active = "<table cellpadding='2' cellspacing='0'
class='ipcop_closed' width='100%'><tr><td
align='center'>$Lang::tr{'capsclosed'}</td></tr></table>";
- }
+ }
else {
my $cn;
my @match = ();
@@ -2062,7 +2062,7 @@
}
}
}
-
+
print <<END
<td align='center'>$active</td>
<td align='center'><form method='post' name='frm${key}a'
action='$ENV{'SCRIPT_NAME'}'>
@@ -2080,8 +2080,8 @@
<input type='hidden' name='KEY' value='$key' />
</form></td>
END
- ;
- }
+ ;
+ }
else {
print "<td> </td>";
}
@@ -2094,7 +2094,7 @@
</form></td>
END
;
- }
+ }
elsif ($confighash{$key}[4] eq 'cert') {
print <<END
<td align='center'><form method='post' name='frm${key}c'
action='$ENV{'SCRIPT_NAME'}'>
@@ -2103,8 +2103,8 @@
<input type='hidden' name='KEY' value='$key' />
</form></td>
END
- ;
- }
+ ;
+ }
else {
print "<td> </td>";
}
Modified: ipcop/trunk/lfs/ipcop
===================================================================
--- ipcop/trunk/lfs/ipcop 2013-01-08 23:22:23 UTC (rev 6903)
+++ ipcop/trunk/lfs/ipcop 2013-01-17 20:20:27 UTC (rev 6904)
@@ -62,7 +62,7 @@
# Create all directories
for i in addons addons/lang alcatelusb auth backup ca certs cnx_pci
crls ddns dhcp \
eagle-usb eciadsl email email/templates ethernet firewall
firmware key logging main modem \
- ipsec openvpn openvpn/ca openvpn/ccd openvpn/certs openvpn/crls
openvpn/openssl patches \
+ ipsec openvpn openvpn/ccd openvpn/certs openvpn/crls
openvpn/openssl patches \
ppp private proxy proxy/blacklists proxy/blacklistupdate
proxy/redirector red remote shaping time \
traffic vpn ; do \
mkdir -p $(CONFIG_ROOT)/$$i; \
@@ -77,8 +77,7 @@
firewall/customservices firewall/policy firewall/serviceGroups
firewall/settings firewall/wireless \
ipsec/config ipsec/settings ipsec/ipsec.conf
ipsec/ipsec.secrets \
main/hosts main/flashsettings main/scheduler \
- patches/available.xml patches/installed.xml \
- openvpn/caconfig openvpn/config \
+ patches/available.xml patches/installed.xml openvpn/config \
ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4
ppp/settings-5 ppp/settings \
proxy/settings remote/settings shaping/settings shaping/config
traffic/settings \
proxy/filtersettings \
Modified: ipcop/trunk/src/scripts/upgrade.sh
===================================================================
--- ipcop/trunk/src/scripts/upgrade.sh 2013-01-08 23:22:23 UTC (rev 6903)
+++ ipcop/trunk/src/scripts/upgrade.sh 2013-01-17 20:20:27 UTC (rev 6904)
@@ -98,3 +98,7 @@
# 2.0.3 update changed the owner of /var/ipcop/proxy, fix that
chown nobody:nobody /var/ipcop/proxy
+
+# Wrong directory openvpn/ca and file openvpn/caconfig removed in 2.1.1
+rm -rf /var/ipcop/openvpn/ca
+rm -rf /var/ipcop/openvpn/caconfig
Modified: ipcop/trunk/updates/2.1.0/ROOTFILES.i486-2.1.0
===================================================================
--- ipcop/trunk/updates/2.1.0/ROOTFILES.i486-2.1.0 2013-01-08 23:22:23 UTC
(rev 6903)
+++ ipcop/trunk/updates/2.1.0/ROOTFILES.i486-2.1.0 2013-01-17 20:20:27 UTC
(rev 6904)
@@ -17,6 +17,7 @@
/home/httpd/cgi-bin/logproxy.cgi
/home/httpd/cgi-bin/logsystem.cgi
/home/httpd/cgi-bin/logurlfilter.cgi
+/home/httpd/cgi-bin/openvpn.cgi
/home/httpd/cgi-bin/pppsetup.cgi
/home/httpd/cgi-bin/proxy.cgi
/home/httpd/cgi-bin/shaping.cgi
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
Ipcop-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn