print "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR;
}
+sub updatevpngraph {
+ my $interface = $_[0];
+ my $period = $_[1];
+ RRDs::graph(
+ "-",
+ "--start",
+ "-1".$period,
+ "-aPNG",
+ "-i",
+ "-z",
+ "-W www.ipfire.org",
+ "--alt-y-grid",
+ "-w 600",
+ "-h 125",
+ "-r",
+ "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
+ "-v ".$Lang::tr{'bytes per second'},
+ "--color=SHADEA".$color{"color19"},
+ "--color=SHADEB".$color{"color19"},
+ "--color=BACK".$color{"color21"},
+ "DEF:incoming=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive.rrd:rx:AVERAGE",
+ "DEF:outgoing=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive.rrd:tx:AVERAGE",
+ "CDEF:outgoingn=outgoing,-1,*",
+ "COMMENT:".sprintf("%-20s",$Lang::tr{'caption'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j",
+ "AREA:incoming#00dd00:".sprintf("%-20s",$Lang::tr{'incoming traffic in bytes per second'}),
+ "GPRINT:incoming:MAX:%8.1lf %sBps",
+ "GPRINT:incoming:AVERAGE:%8.1lf %sBps",
+ "GPRINT:incoming:MIN:%8.1lf %sBps",
+ "GPRINT:incoming:LAST:%8.1lf %sBps\\j",
+ "AREA:outgoingn#dd0000:".sprintf("%-20s",$Lang::tr{'outgoing traffic in bytes per second'}),
+ "GPRINT:outgoing:MAX:%8.1lf %sBps",
+ "GPRINT:outgoing:AVERAGE:%8.1lf %sBps",
+ "GPRINT:outgoing:MIN:%8.1lf %sBps",
+ "GPRINT:outgoing:LAST:%8.1lf %sBps\\j",
+ );
+ $ERROR = RRDs::error;
+ print "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR;
+}
+
+sub updatevpnn2ngraph {
+ my $interface = $_[0];
+ my $period = $_[1];
+ RRDs::graph(
+ "-",
+ "--start",
+ "-1".$period,
+ "-aPNG",
+ "-i",
+ "-z",
+ "-W www.ipfire.org",
+ "--alt-y-grid",
+ "-w 600",
+ "-h 125",
+ "-r",
+ "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
+ "-v ".$Lang::tr{'bytes per second'},
+ "--color=SHADEA".$color{"color19"},
+ "--color=SHADEB".$color{"color19"},
+ "--color=BACK".$color{"color21"},
+ "DEF:incoming=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-traffic.rrd:rx:AVERAGE",
+ "DEF:outgoing=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-traffic.rrd:tx:AVERAGE",
+ "DEF:overhead_in=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-overhead.rrd:rx:AVERAGE",
+ "DEF:overhead_out=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-overhead.rrd:tx:AVERAGE",
+ "DEF:compression_in=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/compression_derive-data_in.rrd:uncompressed:AVERAGE",
+ "DEF:compression_out=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/compression_derive-data_out.rrd:uncompressed:AVERAGE",
+ "CDEF:outgoingn=outgoing,-1,*",
+ "CDEF:overhead_outn=overhead_out,-1,*",
+ "CDEF:compression_outn=compression_out,-1,*",
+ "COMMENT:".sprintf("%-20s",$Lang::tr{'caption'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
+ "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j",
+ "AREA:incoming#00dd00:".sprintf("%-20s",$Lang::tr{'incoming traffic in bytes per second'}),
+ "GPRINT:incoming:MAX:%8.1lf %sBps",
+ "GPRINT:incoming:AVERAGE:%8.1lf %sBps",
+ "GPRINT:incoming:MIN:%8.1lf %sBps",
+ "GPRINT:incoming:LAST:%8.1lf %sBps\\j",
+ "STACK:overhead_in#116B11:".sprintf("%-20s",$Lang::tr{'incoming overhead in bytes per second'}),
+ "GPRINT:overhead_in:MAX:%8.1lf %sBps",
+ "GPRINT:overhead_in:AVERAGE:%8.1lf %sBps",
+ "GPRINT:overhead_in:MIN:%8.1lf %sBps",
+ "GPRINT:overhead_in:LAST:%8.1lf %sBps\\j",
+ "LINE1:compression_in#ff00ff:".sprintf("%-20s",$Lang::tr{'incoming compression in bytes per second'}),
+ "GPRINT:compression_in:MAX:%8.1lf %sBps",
+ "GPRINT:compression_in:AVERAGE:%8.1lf %sBps",
+ "GPRINT:compression_in:MIN:%8.1lf %sBps",
+ "GPRINT:compression_in:LAST:%8.1lf %sBps\\j",
+ "AREA:outgoingn#dd0000:".sprintf("%-20s",$Lang::tr{'outgoing traffic in bytes per second'}),
+ "GPRINT:outgoing:MAX:%8.1lf %sBps",
+ "GPRINT:outgoing:AVERAGE:%8.1lf %sBps",
+ "GPRINT:outgoing:MIN:%8.1lf %sBps",
+ "GPRINT:outgoing:LAST:%8.1lf %sBps\\j",
+ "STACK:overhead_outn#870C0C:".sprintf("%-20s",$Lang::tr{'outgoing overhead in bytes per second'}),
+ "GPRINT:overhead_out:MAX:%8.1lf %sBps",
+ "GPRINT:overhead_out:AVERAGE:%8.1lf %sBps",
+ "GPRINT:overhead_out:MIN:%8.1lf %sBps",
+ "GPRINT:overhead_out:LAST:%8.1lf %sBps\\j",
+ "LINE1:compression_outn#000000:".sprintf("%-20s",$Lang::tr{'outgoing compression in bytes per second'}),
+ "GPRINT:compression_out:MAX:%8.1lf %sBps",
+ "GPRINT:compression_out:AVERAGE:%8.1lf %sBps",
+ "GPRINT:compression_out:MIN:%8.1lf %sBps",
+ "GPRINT:compression_out:LAST:%8.1lf %sBps\\j",
+ );
+ $ERROR = RRDs::error;
+ print "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR;
+}
+
# Generate the Firewall Graph for the current period of time for values given by collecd
sub updatefwhitsgraph {
#include "/etc/collectd.thermal"
include "/etc/collectd.custom"
+include "/etc/collectd.vpn"
--- /dev/null
+LoadPlugin openvpn
+
+<Plugin openvpn>
+StatusFile "/var/run/ovpnserver.log"
+</Plugin>
'title' => "$Lang::tr{'network other'}",
'enabled' => 1,
};
+ $substatus->{'53.networkovpn'} = {
+ 'caption' => "$Lang::tr{'openvpn client'}",
+ 'uri' => '/cgi-bin/netovpnrw.cgi',
+ 'title' => "$Lang::tr{'openvpn client'}",
+ 'enabled' => 1,
+ };
+ $substatus->{'54.networkovpnsrv'} = {
+ 'caption' => "$Lang::tr{'openvpn server'}",
+ 'uri' => '/cgi-bin/netovpnsrv.cgi',
+ 'title' => "$Lang::tr{'openvpn server'}",
+ 'enabled' => 1,
+ };
$substatus->{'60.hardwaregraphs'} = {
'caption' => "$Lang::tr{'hardware graphs'}",
'uri' => '/cgi-bin/hardwaregraphs.cgi',
srv/web/ipfire/cgi-bin/netexternal.cgi
srv/web/ipfire/cgi-bin/netinternal.cgi
srv/web/ipfire/cgi-bin/netother.cgi
+srv/web/ipfire/cgi-bin/netovpnrw.cgi
+srv/web/ipfire/cgi-bin/netovpnsrv.cgi
srv/web/ipfire/cgi-bin/optionsfw.cgi
srv/web/ipfire/cgi-bin/ovpnmain.cgi
srv/web/ipfire/cgi-bin/p2p-block.cgi
etc/collectd.custom
etc/collectd.precache
etc/collectd.thermal
+etc/collectd.vpn
etc/rc.d/init.d/collectd
etc/rc.d/rc0.d/K50collectd
etc/rc.d/rc3.d/S29collectd
usr/lib/python2.7/site-packages/ddns/__version__.py
usr/lib/python2.7/site-packages/ddns/__version__.pyc
usr/lib/python2.7/site-packages/ddns/__version__.pyo
+usr/lib/python2.7/site-packages/ddns/database.py
+usr/lib/python2.7/site-packages/ddns/database.pyc
+usr/lib/python2.7/site-packages/ddns/database.pyo
usr/lib/python2.7/site-packages/ddns/errors.py
usr/lib/python2.7/site-packages/ddns/errors.pyc
usr/lib/python2.7/site-packages/ddns/errors.pyo
--- /dev/null
+../../../common/ddns
\ No newline at end of file
--- /dev/null
+../../../common/sqlite
\ No newline at end of file
# Update Language cache
perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
+# Uninstall the sqlite package.
+rm -f \
+ /opt/pakfire/db/installed/meta-sqlite \
+ /opt/pakfire/db/rootfiles/sqlite
+
sync
# This update need a reboot...
WARNING: untranslated string: dead peer detection
WARNING: untranslated string: emerging rules
WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: no data
WARNING: untranslated string: qos add subclass
WARNING: untranslated string: route config changed
WARNING: untranslated string: routing config added
WARNING: untranslated string: Scan for Songs
WARNING: untranslated string: bytes
WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: no data
WARNING: untranslated string: route config changed
WARNING: untranslated string: routing config added
WARNING: untranslated string: routing config changed
WARNING: untranslated string: hardware support
WARNING: untranslated string: imei
WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming compression in bytes per second
WARNING: untranslated string: incoming firewall access
+WARNING: untranslated string: incoming overhead in bytes per second
WARNING: untranslated string: integrity
WARNING: untranslated string: invalid input for dpd delay
WARNING: untranslated string: invalid input for dpd timeout
WARNING: untranslated string: monitor interface
WARNING: untranslated string: most preferred
WARNING: untranslated string: nameserver
+WARNING: untranslated string: no data
WARNING: untranslated string: no hardware random number generator
WARNING: untranslated string: not a valid dh key
WARNING: untranslated string: notice
WARNING: untranslated string: openvpn prefix remote subnet
WARNING: untranslated string: openvpn subnet is used
WARNING: untranslated string: other
+WARNING: untranslated string: outgoing compression in bytes per second
WARNING: untranslated string: outgoing firewall access
WARNING: untranslated string: outgoing firewall p2p allow
WARNING: untranslated string: outgoing firewall p2p deny
+WARNING: untranslated string: outgoing overhead in bytes per second
WARNING: untranslated string: ovpn add conf
WARNING: untranslated string: ovpn crypt options
WARNING: untranslated string: ovpn dh
WARNING: untranslated string: hardware support
WARNING: untranslated string: imei
WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming compression in bytes per second
WARNING: untranslated string: incoming firewall access
+WARNING: untranslated string: incoming overhead in bytes per second
WARNING: untranslated string: integrity
WARNING: untranslated string: invalid input for dpd delay
WARNING: untranslated string: invalid input for dpd timeout
WARNING: untranslated string: monitor interface
WARNING: untranslated string: most preferred
WARNING: untranslated string: nameserver
+WARNING: untranslated string: no data
WARNING: untranslated string: no hardware random number generator
WARNING: untranslated string: not a valid dh key
WARNING: untranslated string: notice
WARNING: untranslated string: openvpn prefix remote subnet
WARNING: untranslated string: openvpn subnet is used
WARNING: untranslated string: other
+WARNING: untranslated string: outgoing compression in bytes per second
WARNING: untranslated string: outgoing firewall access
+WARNING: untranslated string: outgoing overhead in bytes per second
WARNING: untranslated string: ovpn add conf
WARNING: untranslated string: ovpn crypt options
WARNING: untranslated string: ovpn dh
WARNING: untranslated string: generate dh key
WARNING: untranslated string: imei
WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming compression in bytes per second
+WARNING: untranslated string: incoming overhead in bytes per second
WARNING: untranslated string: invalid input for valid till days
WARNING: untranslated string: masquerade blue
WARNING: untranslated string: masquerade green
WARNING: untranslated string: modem status
WARNING: untranslated string: monitor interface
WARNING: untranslated string: nameserver
+WARNING: untranslated string: no data
WARNING: untranslated string: not a valid dh key
+WARNING: untranslated string: outgoing compression in bytes per second
+WARNING: untranslated string: outgoing overhead in bytes per second
WARNING: untranslated string: ovpn add conf
WARNING: untranslated string: ovpn crypt options
WARNING: untranslated string: ovpn dh
WARNING: untranslated string: hardware support
WARNING: untranslated string: imei
WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming compression in bytes per second
WARNING: untranslated string: incoming firewall access
+WARNING: untranslated string: incoming overhead in bytes per second
WARNING: untranslated string: integrity
WARNING: untranslated string: invalid input for dpd delay
WARNING: untranslated string: invalid input for dpd timeout
WARNING: untranslated string: monitor interface
WARNING: untranslated string: most preferred
WARNING: untranslated string: nameserver
+WARNING: untranslated string: no data
WARNING: untranslated string: no hardware random number generator
WARNING: untranslated string: not a valid dh key
WARNING: untranslated string: notice
WARNING: untranslated string: openvpn prefix remote subnet
WARNING: untranslated string: openvpn subnet is used
WARNING: untranslated string: other
+WARNING: untranslated string: outgoing compression in bytes per second
WARNING: untranslated string: outgoing firewall access
WARNING: untranslated string: outgoing firewall p2p allow
WARNING: untranslated string: outgoing firewall p2p deny
+WARNING: untranslated string: outgoing overhead in bytes per second
WARNING: untranslated string: ovpn add conf
WARNING: untranslated string: ovpn crypt options
WARNING: untranslated string: ovpn dh
WARNING: untranslated string: hardware support
WARNING: untranslated string: imei
WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming compression in bytes per second
WARNING: untranslated string: incoming firewall access
+WARNING: untranslated string: incoming overhead in bytes per second
WARNING: untranslated string: incoming traffic in bytes per second
WARNING: untranslated string: integrity
WARNING: untranslated string: invalid input for dpd delay
WARNING: untranslated string: monitor interface
WARNING: untranslated string: most preferred
WARNING: untranslated string: nameserver
+WARNING: untranslated string: no data
WARNING: untranslated string: no hardware random number generator
WARNING: untranslated string: not a valid dh key
WARNING: untranslated string: notice
WARNING: untranslated string: openvpn prefix remote subnet
WARNING: untranslated string: openvpn subnet is used
WARNING: untranslated string: other
+WARNING: untranslated string: outgoing compression in bytes per second
WARNING: untranslated string: outgoing firewall access
+WARNING: untranslated string: outgoing overhead in bytes per second
WARNING: untranslated string: outgoing traffic in bytes per second
WARNING: untranslated string: ovpn add conf
WARNING: untranslated string: ovpn crypt options
WARNING: untranslated string: Scan for Songs
WARNING: untranslated string: bytes
WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: incoming compression in bytes per second
+WARNING: untranslated string: incoming overhead in bytes per second
WARNING: untranslated string: invalid input for valid till days
+WARNING: untranslated string: no data
+WARNING: untranslated string: outgoing compression in bytes per second
+WARNING: untranslated string: outgoing overhead in bytes per second
WARNING: untranslated string: ovpn add conf
WARNING: untranslated string: route config changed
WARNING: untranslated string: routing config added
< hardware support
< imei
< imsi
+< incoming compression in bytes per second
< incoming firewall access
+< incoming overhead in bytes per second
< integrity
< invalid input for dpd delay
< invalid input for dpd timeout
< openvpn subnet is used
< other
< our donors
+< outgoing compression in bytes per second
< outgoing firewall access
+< outgoing overhead in bytes per second
< ovpn add conf
< ovpn crypt options
< ovpn dh
< hardware support
< imei
< imsi
+< incoming compression in bytes per second
< incoming firewall access
+< incoming overhead in bytes per second
< integrity
< invalid input for dpd delay
< invalid input for dpd timeout
< openvpn subnet is used
< other
< our donors
+< outgoing compression in bytes per second
< outgoing firewall access
< outgoing firewall add ip group
< outgoing firewall add mac group
< outgoing firewall p2p description 2
< outgoing firewall p2p description 3
< outgoing firewall view group
+< outgoing overhead in bytes per second
< ovpn add conf
< ovpn crypt options
< ovpn dh
< hardware support
< imei
< imsi
+< incoming compression in bytes per second
< incoming firewall access
+< incoming overhead in bytes per second
< integrity
< invalid input for dpd delay
< invalid input for dpd timeout
< openvpn subnet is used
< other
< our donors
+< outgoing compression in bytes per second
< outgoing firewall access
+< outgoing overhead in bytes per second
< ovpn add conf
< ovpn crypt options
< ovpn dh
< hour-graph
< imei
< imsi
+< incoming compression in bytes per second
< incoming firewall access
+< incoming overhead in bytes per second
< incoming traffic in bytes per second
< integrity
< invalid input for dpd delay
< openvpn subnet is used
< other
< our donors
+< outgoing compression in bytes per second
< outgoing firewall access
+< outgoing overhead in bytes per second
< outgoing traffic in bytes per second
< ovpn add conf
< ovpn crypt options
my $use_token = 0;
# Handle token based auth for various providers.
- if ($provider ~~ ["dns.lightningwirelabs.com", "entrydns.net", "regfish.com"] && $username eq "token") {
+ if ($provider ~~ ["dns.lightningwirelabs.com", "entrydns.net", "regfish.com", "spdns.de"] && $username eq "token") {
$use_token = 1;
# Handle token auth for freedns.afraid.org and regfish.com.
$errormessage.=$Lang::tr{'fwdfw err remark'}."<br>";
}
#check if source and target identical
- if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ALL'){
+ if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{$fwdfwsettings{'grp1'}} ne 'ALL' && $fwdfwsettings{'grp2'} ne 'ipfire'){
$errormessage=$Lang::tr{'fwdfw err same'};
return $errormessage;
}
--- /dev/null
+#!/usr/bin/perl
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2014 Alexander Marx #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+require "${General::swroot}/graphs.pl";
+
+my %color = ();
+my %mainsettings = ();
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+
+my @vpns=();
+
+my @querry = split(/\?/,$ENV{'QUERY_STRING'});
+$querry[0] = '' unless defined $querry[0];
+$querry[1] = 'week' unless defined $querry[1];
+
+if ( $querry[0] ne "" && $querry[0] ne "UNDEF"){
+ print "Content-type: image/png\n\n";
+ binmode(STDOUT);
+ &Graphs::updatevpngraph($querry[0],$querry[1]);
+}else{
+ &Header::showhttpheaders();
+ &Header::openpage($Lang::tr{'host to net vpn'}, 1, '');
+ &Header::openbigbox('100%', 'left');
+
+ my @vpngraphs = `find /var/log/rrd/collectd/localhost/openvpn-*/ -not -path *openvpn-UNDEF* -not -path *openvpn-*n2n* -name *.rrd|sort`;
+ foreach (@vpngraphs){
+ if($_ =~ /(.*)\/openvpn-(.*)\/if_octets_derive.rrd/){
+ push(@vpns,$2);
+ }
+ }
+ if(@vpns){
+ foreach (@vpns) {
+ &Header::openbox('100%', 'center', "$_ $Lang::tr{'graph'}");
+ &Graphs::makegraphbox("netovpnrw.cgi",$_,"week");
+ &Header::closebox();
+ }
+ }else{
+ print "<center>".$Lang::tr{'no data'}."</center>";
+ }
+ my $output = '';
+
+ &Header::closebigbox();
+ &Header::closepage();
+}
--- /dev/null
+#!/usr/bin/perl
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2014 Alexnder Marx #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+require "${General::swroot}/graphs.pl";
+
+my %color = ();
+my %mainsettings = ();
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+
+my @vpns=();
+
+my @querry = split(/\?/,$ENV{'QUERY_STRING'});
+$querry[0] = '' unless defined $querry[0];
+$querry[1] = 'week' unless defined $querry[1];
+
+if ( $querry[0] ne ""){
+ print "Content-type: image/png\n\n";
+ binmode(STDOUT);
+ &Graphs::updatevpnn2ngraph($querry[0],$querry[1]);
+}else{
+ &Header::showhttpheaders();
+ &Header::openpage($Lang::tr{'openvpn server'}, 1, '');
+ &Header::openbigbox('100%', 'left');
+
+ my @vpngraphs = `find /var/log/rrd/collectd/localhost/openvpn-*-n2n/ -not -path *openvpn-UNDEF* -name *traffic.rrd|sort`;
+ foreach (@vpngraphs){
+ if($_ =~ /(.*)\/openvpn-(.*)\/if_octets_derive-traffic.rrd/){
+ push(@vpns,$2);
+ }
+ }
+ if (@vpns){
+ foreach (@vpns) {
+ &Header::openbox('100%', 'center', "$_ $Lang::tr{'graph'}");
+ &Graphs::makegraphbox("netovpnsrv.cgi",$_,"week");
+ &Header::closebox();
+ }
+ }else{
+ print "<center>".$Lang::tr{'no data'}."</center>";
+ }
+ my $output = '';
+
+ &Header::closebigbox();
+ &Header::closepage();
+}
print CONF "keepalive $sovpnsettings{'KEEPALIVE_1'} $sovpnsettings{'KEEPALIVE_2'}\n";
}
print CONF "status-version 1\n";
- print CONF "status /var/log/ovpnserver.log 30\n";
+ print CONF "status /var/run/ovpnserver.log 30\n";
print CONF "cipher $sovpnsettings{DCIPHER}\n";
if ($sovpnsettings{'DAUTH'} eq '') {
print CONF "";
}
sub emptyserverlog{
- if (open(FILE, ">/var/log/ovpnserver.log")) {
+ if (open(FILE, ">/var/run/ovpnserver.log")) {
flock FILE, 2;
print FILE "";
close FILE;
print SERVERCONF "route $remsubnet[0] $remsubnet[1]\n";
print SERVERCONF "# tun Device\n";
print SERVERCONF "dev tun\n";
+ print SERVERCONF "#Logfile for statistics\n";
+ print SERVERCONF "status-version 1\n";
+ print SERVERCONF "status /var/run/openvpn/$cgiparams{'NAME'}-n2n 10\n";
print SERVERCONF "# Port and Protokol\n";
print SERVERCONF "port $cgiparams{'DEST_PORT'}\n";
-
+
if ($cgiparams{'PROTOCOL'} eq 'tcp') {
print SERVERCONF "proto tcp-server\n";
print SERVERCONF "# Packet size\n";
while ($file = glob("${General::swroot}/ovpn/ccd/*")) {
unlink $file
}
+# Delete all RRD files for Roadwarrior connections
+ chdir('/var/ipfire/ovpn/ccd');
+ while ($file = glob("*")) {
+ system ("/usr/local/bin/openvpnctrl -drrd $file");
+ }
+ while ($file = glob("${General::swroot}/ovpn/ccd/*")) {
+ unlink $file
+ }
if (open(FILE, ">${General::swroot}/ovpn/ovpn-leases.db")) {
print FILE "";
close FILE;
# CCD end
-
+###
+### Delete all RRD's for client
+###
+ system ("/usr/local/bin/openvpnctrl -drrd $confighash{$cgiparams{'KEY'}}[1]");
delete $confighash{$cgiparams{'KEY'}};
my $temp2 = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`;
&General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
</tr>
END
;
- my $filename = "/var/log/ovpnserver.log";
+ my $filename = "/var/run/ovpnserver.log";
open(FILE, $filename) or die 'Unable to open config file.';
my @current = <FILE>;
close(FILE);
&General::readhasharray("${General::swroot}/ovpn/caconfig", \%cahash);
&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
- my @status = `/bin/cat /var/log/ovpnserver.log`;
+ my @status = `/bin/cat /var/run/ovpnserver.log`;
if ($cgiparams{'VPN_IP'} eq '' && -e "${General::swroot}/red/active") {
if (open(IPADDR, "${General::swroot}/red/local-ipaddress")) {
$errormessage = $Lang::tr{'invalid input for ike lifetime'};
goto ADVANCED_ERROR;
}
- if ($cgiparams{'IKE_LIFETIME'} < 1 || $cgiparams{'IKE_LIFETIME'} > 8) {
- $errormessage = $Lang::tr{'ike lifetime should be between 1 and 8 hours'};
+ if ($cgiparams{'IKE_LIFETIME'} < 1 || $cgiparams{'IKE_LIFETIME'} > 24) {
+ $errormessage = $Lang::tr{'ike lifetime should be between 1 and 24 hours'};
goto ADVANCED_ERROR;
}
@temp = split('\|', $cgiparams{'ESP_ENCRYPTION'});
'ike grouptype' => 'IKE Gruppentyp:',
'ike integrity' => 'IKE Integrität:',
'ike lifetime' => 'IKE Lebensdauer:',
-'ike lifetime should be between 1 and 8 hours' => 'IKE Lebensdauer sollte zwischen 1 und 8 Stunden betragen.',
+'ike lifetime should be between 1 and 24 hours' => 'IKE Lebensdauer sollte zwischen 1 und 24 Stunden betragen.',
'imei' => 'IMEI',
'import' => 'Import',
'importkey' => 'PSK importieren',
'inactive' => 'inaktiv',
'include logfiles' => 'mit Logdateien',
'incoming' => 'eingehend',
+'incoming compression in bytes per second' => 'Eingehende Kompression',
'incoming firewall access' => 'Eingehender Firewallzugang',
+'incoming overhead in bytes per second' => 'Eingehender Overhead',
'incoming traffic in bytes per second' => 'Eingehender Verkehr',
'incorrect password' => 'Fehlerhaftes Passwort',
'info' => 'Info',
'our donors' => 'Unsere Unterstützer',
'out' => 'Aus',
'outgoing' => 'ausgehend',
+'outgoing compression in bytes per second' => 'Abgehende Kompression',
'outgoing firewall' => 'Ausgehende Firewall',
'outgoing firewall access' => 'Ausgehender Firewallzugang',
'outgoing firewall add ip group' => 'IP Adressgruppen hinzufügen',
'outgoing firewall reset' => 'Alle Regeln löschen',
'outgoing firewall view group' => 'Gruppe anzeigen',
'outgoing firewall warning' => 'Nur die Auswahl Quell IP / MAC aktiviert diese',
+'outgoing overhead in bytes per second' => 'Abgehender Overhead',
'outgoing traffic in bytes per second' => 'Abgehender Verkehr',
'override mtu' => 'Überschreibe Standard MTU',
'ovpn' => 'OpenVPN',
'ike grouptype' => 'IKE Grouptype:',
'ike integrity' => 'IKE Integrity:',
'ike lifetime' => 'IKE Lifetime:',
-'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime should be between 1 and 8 hours.',
+'ike lifetime should be between 1 and 24 hours' => 'IKE lifetime should be between 1 and 24 hours.',
'imei' => 'IMEI',
'import' => 'Import',
'importkey' => 'Import PSK',
'inactive' => 'inactive',
'include logfiles' => 'Include logfiles',
'incoming' => 'incoming',
+'incoming compression in bytes per second' => 'Incoming Compression',
'incoming firewall access' => 'Incoming Firewall Access',
+'incoming overhead in bytes per second' => 'Incoming Overhead',
'incoming traffic in bytes per second' => 'Incoming Traffic',
'incorrect password' => 'Incorrect password',
'info' => 'Info',
'our donors' => 'Our donors',
'out' => 'Out',
'outgoing' => 'outgoing',
+'outgoing compression in bytes per second' => 'Outgoing compression',
'outgoing firewall' => 'Outgoing Firewall',
'outgoing firewall access' => 'Outgoing Firewall Access',
'outgoing firewall add ip group' => 'Add IP Address Group',
'outgoing firewall reset' => 'Reset all',
'outgoing firewall view group' => 'View group',
'outgoing firewall warning' => 'Not selecting source ip or mac ignores them',
+'outgoing overhead in bytes per second' => 'Outgoing Overhead',
'outgoing traffic in bytes per second' => 'Outgoing Traffic',
'override mtu' => 'Override default MTU',
'ovpn' => 'OpenVPN',
'ike grouptype' => 'Tipo de grupo IKE:',
'ike integrity' => 'Integridad IKE:',
'ike lifetime' => 'Tiempo de vida IKE:',
-'ike lifetime should be between 1 and 8 hours' => 'Tiempo de vida IKE entre 1 y 8 horas.',
+'ike lifetime should be between 1 and 24 hours' => 'Tiempo de vida IKE entre 1 y 24 horas.',
'import' => 'Importar',
'importkey' => 'Importar PSK',
'in' => 'En',
'ike grouptype' => 'Type de groupe IKE :',
'ike integrity' => 'Intégrité IKE :',
'ike lifetime' => 'Durée de vie IKE :',
-'ike lifetime should be between 1 and 8 hours' => 'La durée de vie IKE devrait être comprise entre 1 et 8 heures.',
+'ike lifetime should be between 1 and 24 hours' => 'La durée de vie IKE devrait être comprise entre 1 et 24 heures.',
'import' => 'Importer',
'importkey' => 'Importer PSK',
'in' => 'Dans',
'ike grouptype' => 'IKE Grouptype:',
'ike integrity' => 'IKE Integrity:',
'ike lifetime' => 'IKE Lifetime:',
-'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime should be between 1 and 8 hours.',
+'ike lifetime should be between 1 and 24 hours' => 'IKE lifetime should be between 1 and 24 hours.',
'imei' => 'IMEI',
'import' => 'Import',
'importkey' => 'Import PSK',
'ike grouptype' => 'IKE Groepstype:',
'ike integrity' => 'IKE Integriteit:',
'ike lifetime' => 'IKE Levensduur:',
-'ike lifetime should be between 1 and 8 hours' => 'IKE levensduur moet tussen 1 en 8 uur liggen.',
+'ike lifetime should be between 1 and 24 hours' => 'IKE levensduur moet tussen 1 en 24 uur liggen.',
'import' => 'Importeer',
'importkey' => 'Importeer PSK',
'in' => 'In',
'ike grouptype' => 'Typ grupy IKE:',
'ike integrity' => 'Spójność IKE:',
'ike lifetime' => 'Czas ważności IKE:',
-'ike lifetime should be between 1 and 8 hours' => 'Czas ważności IKE powinien wynosić od 1 do 8 godzin.',
+'ike lifetime should be between 1 and 24 hours' => 'Czas ważności IKE powinien wynosić od 1 do 24 godzin.',
'import' => 'Import',
'importkey' => 'Import PSK',
'in' => 'W',
'ike grouptype' => 'IKE Grouptype:',
'ike integrity' => 'IKE Integrity:',
'ike lifetime' => 'IKE Lifetime:',
-'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime should be between 1 and 8 hours.',
+'ike lifetime should be between 1 and 24 hours' => 'IKE lifetime should be between 1 and 24 hours.',
'import' => 'Import',
'importkey' => 'Import PSK',
'in' => 'In',
'ike grouptype' => 'IKE Grup Türü:',
'ike integrity' => 'IKE Bütünlüğü:',
'ike lifetime' => 'IKE Yaşam Süresi:',
-'ike lifetime should be between 1 and 8 hours' => 'IKE yaşam süresi 1 ila 8 saat arasında olmalıdır.',
+'ike lifetime should be between 1 and 24 hours' => 'IKE yaşam süresi 1 ila 24 saat arasında olmalıdır.',
'imei' => 'IMEI',
'import' => 'Al',
'importkey' => 'PSK Al',
include Config
-VER = 004
+VER = 005
THISAPP = ddns-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ff77cb72d0cb06c73bde70419b15bae8
+$(DL_FILE)_MD5 = 5fb0e7c8a775ae03074ad90d5a251a4c
install : $(TARGET)
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ddns/ddns-005-Add-changeip-com.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ddns/ddns-005-SPDNS-fix-auth.patch
+
cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh
cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/var/ipfire
cd $(DIR_APP) && make $(MAKETUNING)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = mediatomb
-PAK_VER = 4
+PAK_VER = 5
-DEPS = "ffmpeg-libs libexif sqlite taglib "
+DEPS = "ffmpeg-libs libexif taglib "
###############################################################################
# Top-level Rules
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = minidlna
-PAK_VER = 3
+PAK_VER = 4
-DEPS = "ffmpeg flac libexif libid3tag libogg sqlite"
+DEPS = "ffmpeg flac libexif libid3tag libogg"
###############################################################################
# Top-level Rules
cd $(DIR_APP) && make install
cd $(DIR_APP) && cp -Rvf $(DIR_SRC)/config/ovpn /var/ipfire
-mkdir -vp /usr/lib/openvpn/plugins
+ -mkdir -vp /var/log/openvpn
-mkdir -vp /var/ipfire/ovpn/ca
-mkdir -vp /var/ipfire/ovpn/ccd
-mkdir -vp /var/ipfire/ovpn/crls
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = pakfire3
-PAK_VER = 4
+PAK_VER = 5
-DEPS = "libsolv pycurl pygpgme python-progressbar python-xattr sqlite urlgrabber"
+DEPS = "libsolv pycurl pygpgme python-progressbar python-xattr urlgrabber"
###############################################################################
# Top-level Rules
include Config
-VER = 3070603
+VER = 3080704
THISAPP = sqlite-autoconf-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = sqlite
-PAK_VER = 2
-
-DEPS = ""
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7eb41eea5ffa5cbe359a48629084c425
+$(DL_FILE)_MD5 = 33bb8db0038317ce1b0480ca1185c7ba
install : $(TARGET)
$(subst %,%_MD5,$(objects)) :
@$(MD5)
-dist:
- @$(PAK)
-
###############################################################################
# Installation Details
###############################################################################
include Config
-VER = 5.2.1
+VER = 5.2.2
THISAPP = strongswan-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = dd3717c0aa59ab4591ca1812941ebb82
+$(DL_FILE)_MD5 = 7ee1a33060b2bde35be0f6d78a1d26d0
install : $(TARGET)
printf(" -kn2n --kill-net-2-net\n");
printf(" kills all net2net connections\n");
printf(" you may pass a connection name to the switch to only start a specific one\n");
+ printf(" -drrd --delete-rrd\n");
+ printf(" Deletes the RRD data for a specific client\n");
+ printf(" you need to pass a connection name (RW) to the switch to delete the directory (case sensitive)\n");
printf(" -d --display\n");
printf(" displays OpenVPN status to syslog\n");
printf(" -fwr --firewall-rules\n");
return 0;
}
+int deleterrd(char *name) {
+ connection *conn = getConnections();
+
+ char rrd_file[STRING_SIZE];
+ snprintf(rrd_file, STRING_SIZE - 1, "/var/log/rrd/collectd/localhost/openvpn-%s/if_octets.rrd", name);
+
+ char rrd_dir[STRING_SIZE];
+ snprintf(rrd_dir, STRING_SIZE - 1, "/var/log/rrd/collectd/localhost/openvpn-%s", name);
+
+ while(conn) {
+ /* Find only RW-Connections with the given name. */
+ if (((strcmp(conn->type, "host") == 0) && (strcmp(conn->name, name) == 0))) {
+ remove(rrd_file);
+ remove(rrd_dir);
+ return 0;
+ }
+ conn = conn->next;
+ }
+
+ return 1;
+}
+
void startAllNet2Net() {
int exitcode = 0, _exitcode = 0;
else if( (strcmp(argv[1], "-kn2n") == 0) || (strcmp(argv[1], "--kill-net-2-net") == 0) ) {
killNet2Net(argv[2]);
return 0;
+ }
+ else if( (strcmp(argv[1], "-drrd") == 0) || (strcmp(argv[1], "--delete-rrd") == 0) ) {
+ deleterrd(argv[2]);
+ return 0;
} else {
usage();
return 1;
--- /dev/null
+commit 78046ffe2187d91c61d6c2f910249b8a5be71b08
+Author: Stefan Schantl <stefan.schantl@ipfire.org>
+Date: Wed Oct 22 21:39:09 2014 +0200
+
+ Add changeip.com as new provider.
+
+ Fixes #10639.
+
+diff --git a/README b/README
+index 5944102..6a06f4b 100644
+--- a/README
++++ b/README
+@@ -49,6 +49,7 @@ INSTALLATION:
+
+ SUPPORTED PROVIDERS:
+ all-inkl.com
++ changeip.com
+ dhs.org
+ dns.lightningwirelabs.com
+ dnspark.com
+diff --git a/ddns.conf.sample b/ddns.conf.sample
+index d3ac53f..0048a46 100644
+--- a/ddns.conf.sample
++++ b/ddns.conf.sample
+@@ -30,6 +30,11 @@
+ # secret = XYZ
+ # ttl = 60
+
++# [test.changeip.com]
++# provider = changeip.com
++# username = user
++# password = pass
++
+ # [test.dhs.org]
+ # provider = dhs.org
+ # username = user
+diff --git a/src/ddns/providers.py b/src/ddns/providers.py
+index 1e88995..587d5ff 100644
+--- a/src/ddns/providers.py
++++ b/src/ddns/providers.py
+@@ -539,6 +539,44 @@ class DDNSProviderBindNsupdate(DDNSProvider):
+ return "\n".join(scriptlet)
+
+
++class DDNSProviderChangeIP(DDNSProvider):
++ handle = "changeip.com"
++ name = "ChangeIP.com"
++ website = "https://changeip.com"
++ protocols = ("ipv4",)
++
++ # Detailed information about the update api can be found here.
++ # http://www.changeip.com/accounts/knowledgebase.php?action=displayarticle&id=34
++
++ url = "https://nic.changeip.com/nic/update"
++ can_remove_records = False
++
++ def update_protocol(self, proto):
++ data = {
++ "hostname" : self.hostname,
++ "myip" : self.get_address(proto),
++ }
++
++ # Send update to the server.
++ try:
++ response = self.send_request(self.url, username=self.username, password=self.password,
++ data=data)
++
++ # Handle error codes.
++ except urllib2.HTTPError, e:
++ if e.code == 422:
++ raise DDNSRequestError(_("Domain not found."))
++
++ raise
++
++ # Handle success message.
++ if response.code == 200:
++ return
++
++ # If we got here, some other update error happened.
++ raise DDNSUpdateError(_("Server response: %s") % output)
++
++
+ class DDNSProviderDHS(DDNSProvider):
+ handle = "dhs.org"
+ name = "DHS International"
--- /dev/null
+commit 25f39b4e437627bd1a49393280271d59ad28b86e
+Author: Stefan Schantl <stefan.schantl@ipfire.org>
+Date: Mon Jan 5 21:37:55 2015 +0100
+
+ spdns.de: Fix authentication.
+
+ There was a simple copy and paste issue which prevents a
+ correct authentication with username and password against the
+ providers API.
+
+diff --git a/src/ddns/providers.py b/src/ddns/providers.py
+index 587d5ff..bcfb088 100644
+--- a/src/ddns/providers.py
++++ b/src/ddns/providers.py
+@@ -1271,7 +1271,7 @@ class DDNSProviderSPDNS(DDNSProtocolDynDNS2, DDNSProvider):
+
+ @property
+ def password(self):
+- return self.get("username") or self.token
++ return self.get("password") or self.token
+
+
+ class DDNSProviderStrato(DDNSProtocolDynDNS2, DDNSProvider):