return "Error in RRD::Graph for conntrack: " . $ERROR . "\n" if $ERROR;
}
+
+sub updateipsthroughputgraph {
+ my $period = $_[0];
+
+ my @command = (
+ @GRAPH_ARGS,
+ "-",
+ "--start",
+ "-1" . $period,
+ "-r",
+ "--lower-limit","0",
+ "-v $Lang::tr{'bytes per second'}",
+ "--color=BACK" . $color{"color21"},
+
+ # Read bypassed packets
+ "DEF:bypassed_bytes=$mainsettings{'RRDLOG'}/collectd/localhost/iptables-mangle-IPS/ipt_bytes-BYPASSED.rrd:value:AVERAGE",
+ #"DEF:bypassed_packets=$mainsettings{'RRDLOG'}/collectd/localhost/iptables-mangle-IPS/ipt_packets-BYPASSED.rrd:value:AVERAGE",
+
+ "VDEF:bypassed_bytes_avg=bypassed_bytes,AVERAGE",
+ "VDEF:bypassed_bytes_min=bypassed_bytes,MINIMUM",
+ "VDEF:bypassed_bytes_max=bypassed_bytes,MAXIMUM",
+
+ # Read scanned packets
+ "DEF:scanned_bytes=$mainsettings{'RRDLOG'}/collectd/localhost/iptables-mangle-IPS/ipt_bytes-SCANNED.rrd:value:AVERAGE",
+ #"DEF:scanned_packets=$mainsettings{'RRDLOG'}/collectd/localhost/iptables-mangle-IPS/ipt_packets-SCANNED.rrd:value:AVERAGE",
+
+ "VDEF:scanned_bytes_avg=scanned_bytes,AVERAGE",
+ "VDEF:scanned_bytes_min=scanned_bytes,MINIMUM",
+ "VDEF:scanned_bytes_max=scanned_bytes,MAXIMUM",
+
+ # Total
+ "CDEF:total_bytes=bypassed_bytes,scanned_bytes,+",
+ #"CDEF:total_packets=bypassed_packets,scanned_packets,+",
+
+ "VDEF:total_bytes_avg=total_bytes,AVERAGE",
+ "VDEF:total_bytes_min=total_bytes,MINIMUM",
+ "VDEF:total_bytes_max=total_bytes,MAXIMUM",
+
+ # Add some space below the graph
+ "COMMENT: \\n",
+
+ # Headline
+ "COMMENT:" . sprintf("%32s", ""),
+ "COMMENT:" . sprintf("%16s", $Lang::tr{'average'}),
+ "COMMENT:" . sprintf("%16s", $Lang::tr{'minimum'}),
+ "COMMENT:" . sprintf("%16s", $Lang::tr{'maximum'}) . "\\j",
+
+ # Bypassed Packets
+ "AREA:bypassed_bytes$color{'color12'}A0:" . sprintf("%-30s", $Lang::tr{'bypassed'}),
+ "GPRINT:bypassed_bytes_avg:%9.2lf %sbps",
+ "GPRINT:bypassed_bytes_min:%9.2lf %sbps",
+ "GPRINT:bypassed_bytes_max:%9.2lf %sbps\\j",
+
+ # Scanned Packets
+ "STACK:scanned_bytes$color{'color13'}A0:" . sprintf("%-30s", $Lang::tr{'scanned'}),
+ "GPRINT:scanned_bytes_avg:%9.2lf %sbps",
+ "GPRINT:scanned_bytes_min:%9.2lf %sbps",
+ "GPRINT:scanned_bytes_max:%9.2lf %sbps\\j",
+
+ "COMMENT: \\n",
+
+ # Total Packets
+ "COMMENT:" . sprintf("%-32s", $Lang::tr{'total'}),
+ "GPRINT:total_bytes_avg:%9.2lf %sbps",
+ "GPRINT:total_bytes_min:%9.2lf %sbps",
+ "GPRINT:total_bytes_max:%9.2lf %sbps\\j",
+ );
+
+ RRDs::graph(@command);
+ $ERROR = RRDs::error;
+
+ return "Error in RRD::Graph for conntrack: " . $ERROR . "\n" if $ERROR;
+}
WARNING: untranslated string: broken pipe = Broken pipe
WARNING: untranslated string: buffered memory = Buffered Memory
WARNING: untranslated string: buffers = buffers
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: bytes per second = Bytes per Second
WARNING: untranslated string: bytes received = Bytes Received
WARNING: untranslated string: bytes sent = Bytes Sent
WARNING: untranslated string: ipfire side is invalid = IPFire side is invalid.
WARNING: untranslated string: ipfires hostname = IPFire's Hostname
WARNING: untranslated string: ipinfo = IP info
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: saturday = Saturday
WARNING: untranslated string: save = Save
WARNING: untranslated string: save-adv-options = Save advanced options
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: script name = Script name:
WARNING: untranslated string: search = Search
WARNING: untranslated string: secondary dns = Secondary DNS:
WARNING: untranslated string: tor traffic read written = Total traffic (read/written)
WARNING: untranslated string: tor use exit nodes = Use only these exit nodes (one fingerprint per line)
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
+WARNING: untranslated string: total = Total
WARNING: untranslated string: total connection time = Total Connection Time
WARNING: untranslated string: total hits for log section = Total hits for log section
WARNING: untranslated string: traffic stat in = In
WARNING: untranslated string: access point name = Access Point Name
WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
WARNING: untranslated string: access point name is required = Access Point Name is required
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: cpu frequency = CPU frequency
WARNING: untranslated string: data transfer = Data Transfer
WARNING: untranslated string: dhcp fixed ip address in dynamic range = Fixed IP Address in dynamic range
WARNING: untranslated string: ids rulesets = Rulesets
WARNING: untranslated string: info messages = unknown string
WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: last updated = Last Updated
WARNING: untranslated string: load average = Load Average
WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hostile networks
WARNING: untranslated string: routing config added = unknown string
WARNING: untranslated string: routing config changed = unknown string
WARNING: untranslated string: routing table = unknown string
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: service boot setting unavailable = No valid runlevel symlink was found for the initscript of this service.
WARNING: untranslated string: spec rstack overflow = Speculative Return Stack Overflow
WARNING: untranslated string: system time = System Time (as of last page load)
WARNING: untranslated string: timeformat = %Y-%m-%d at %H:%M:%S %Z
+WARNING: untranslated string: total = Total
WARNING: untranslated string: transport mode does not support vti = VTI is not support in transport mode
WARNING: untranslated string: warning = Warning
WARNING: untranslated string: wio = unknown string
WARNING: translation string unused: zoneconf val vlan tag assignment error
WARNING: translation string unused: zoneconf val vlan tag range error
WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: core notice 3 = available.
WARNING: untranslated string: data transfer = Data Transfer
WARNING: untranslated string: enable disable client = unknown string
WARNING: untranslated string: hostile networks total = Total Hostile Networks
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: last updated = Last Updated
WARNING: untranslated string: load average = Load Average
WARNING: untranslated string: oops something went wrong = Oops, something went wrong...
WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
WARNING: untranslated string: routing config added = unknown string
WARNING: untranslated string: routing config changed = unknown string
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: system time = System Time (as of last page load)
WARNING: untranslated string: timeformat = %Y-%m-%d at %H:%M:%S %Z
+WARNING: untranslated string: total = Total
WARNING: untranslated string: warning = Warning
WARNING: untranslated string: wio = unknown string
WARNING: untranslated string: wio checked = unknown string
WARNING: untranslated string: available = available
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
WARNING: untranslated string: ipblocklist name = Name
WARNING: untranslated string: ipblocklist output = Packets dropped (OUT)
WARNING: untranslated string: ipblocklist use ipblocklists = Enable IP Blocklists
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: ipsec connection = IPsec Connection
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: samba join domain = Join domain
WARNING: untranslated string: samba server role member = Domain Member
WARNING: untranslated string: samba server role standalone = Standalone
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: search = Search
WARNING: untranslated string: secret = Secret
WARNING: untranslated string: sent = Sent
WARNING: untranslated string: tor guard country any = Any country
WARNING: untranslated string: tor guard nodes = Guard Nodes
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
+WARNING: untranslated string: total = Total
WARNING: untranslated string: traffic stat in = In
WARNING: untranslated string: traffic stat out = Out
WARNING: untranslated string: traffic stat title = RED Traffic
WARNING: untranslated string: available = available
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
WARNING: untranslated string: ipblocklist name = Name
WARNING: untranslated string: ipblocklist output = Packets dropped (OUT)
WARNING: untranslated string: ipblocklist use ipblocklists = Enable IP Blocklists
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: ipsec connection = IPsec Connection
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: samba join domain = Join domain
WARNING: untranslated string: samba server role member = Domain Member
WARNING: untranslated string: samba server role standalone = Standalone
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: search = Search
WARNING: untranslated string: secret = Secret
WARNING: untranslated string: sent = Sent
WARNING: untranslated string: tor guard country any = Any country
WARNING: untranslated string: tor guard nodes = Guard Nodes
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
+WARNING: untranslated string: total = Total
WARNING: untranslated string: transfers = Transfers
WARNING: untranslated string: transport mode does not support vti = VTI is not support in transport mode
WARNING: untranslated string: twelve hours = 12 Hours
WARNING: untranslated string: bit = bit
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
WARNING: untranslated string: ipblocklist name = Name
WARNING: untranslated string: ipblocklist output = Packets dropped (OUT)
WARNING: untranslated string: ipblocklist use ipblocklists = Enable IP Blocklists
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: samba join domain = Join domain
WARNING: untranslated string: samba server role member = Domain Member
WARNING: untranslated string: samba server role standalone = Standalone
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: search = Search
WARNING: untranslated string: secret = Secret
WARNING: untranslated string: sent = Sent
WARNING: untranslated string: tor traffic read written = Total traffic (read/written)
WARNING: untranslated string: tor use exit nodes = Use only these exit nodes (one fingerprint per line)
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
+WARNING: untranslated string: total = Total
WARNING: untranslated string: traffic stat in = In
WARNING: untranslated string: traffic stat out = Out
WARNING: untranslated string: traffic stat title = RED Traffic
WARNING: untranslated string: bit = bit
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
WARNING: untranslated string: ipblocklist name = Name
WARNING: untranslated string: ipblocklist output = Packets dropped (OUT)
WARNING: untranslated string: ipblocklist use ipblocklists = Enable IP Blocklists
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: samba join domain = Join domain
WARNING: untranslated string: samba server role member = Domain Member
WARNING: untranslated string: samba server role standalone = Standalone
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: search = Search
WARNING: untranslated string: secret = Secret
WARNING: untranslated string: sent = Sent
WARNING: untranslated string: tor traffic read written = Total traffic (read/written)
WARNING: untranslated string: tor use exit nodes = Use only these exit nodes (one fingerprint per line)
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
+WARNING: untranslated string: total = Total
WARNING: untranslated string: traffic stat in = In
WARNING: untranslated string: traffic stat out = Out
WARNING: untranslated string: traffic stat title = RED Traffic
WARNING: untranslated string: autonomous system = Autonomous System
WARNING: untranslated string: available = available
WARNING: untranslated string: broken = Broken
+WARNING: untranslated string: bypassed = Bypassed
WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
WARNING: untranslated string: ipblocklist name = Name
WARNING: untranslated string: ipblocklist output = Packets dropped (OUT)
WARNING: untranslated string: ipblocklist use ipblocklists = Enable IP Blocklists
+WARNING: untranslated string: ips throughput = Throughput
WARNING: untranslated string: ipsec connection = IPsec Connection
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: routing table = unknown string
WARNING: untranslated string: samba server role member = Domain Member
WARNING: untranslated string: samba server role standalone = Standalone
+WARNING: untranslated string: scanned = Scanned
WARNING: untranslated string: secret = Secret
WARNING: untranslated string: sent = Sent
WARNING: untranslated string: service boot setting unavailable = No valid runlevel symlink was found for the initscript of this service.
WARNING: untranslated string: tor guard country any = Any country
WARNING: untranslated string: tor guard nodes = Guard Nodes
WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
+WARNING: untranslated string: total = Total
WARNING: untranslated string: traffic stat in = In
WARNING: untranslated string: traffic stat out = Out
WARNING: untranslated string: traffic stat title = RED Traffic
< access point name is invalid
< access point name is required
< addon
+< bypassed
< cpu frequency
< data transfer
< dhcp fixed ip address in dynamic range
< ids rulesets
< ids unsupported provider
< invalid ip or hostname
+< ips throughput
< last updated
< load average
< log drop hostile in
< reg_file_data_sampling
< reiserfs warning1
< reiserfs warning2
+< scanned
< service boot setting unavailable
< spec rstack overflow
< system time
< timeformat
+< total
< transport mode does not support vti
< warning
< wg
< ansi t1.483
< bewan adsl pci st
< bewan adsl usb
+< bypassed
< data transfer
< extrahd because it it outside the allowed mount path
< fwdfw syn flood protection
< ids provider eol
< ids rulesets
< ids unsupported provider
+< ips throughput
< last updated
< load average
< oops something went wrong
< ovpn roadwarrior server
< processors
< reg_file_data_sampling
+< scanned
< system time
< timeformat
+< total
< upload fcdsl.o
< warning
< wg
< available
< block
< broken
+< bypassed
< cake profile bridged-llcsnap 32
< cake profile bridged-ptm 19
< cake profile bridged-vcmux 24
< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
+< ips throughput
< itlb multihit
< last updated
< legacy architecture warning
< samba join domain
< samba server role member
< samba server role standalone
+< scanned
< search
< secret
< sent
< tor guard country any
< tor guard nodes
< tor use guard nodes
+< total
< traffic stat in
< traffic stat out
< traffic stat title
< available
< block
< broken
+< bypassed
< cake profile bridged-llcsnap 32
< cake profile bridged-ptm 19
< cake profile bridged-vcmux 24
< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
+< ips throughput
< itlb multihit
< last updated
< legacy architecture warning
< samba join domain
< samba server role member
< samba server role standalone
+< scanned
< search
< secret
< sent
< tor guard country any
< tor guard nodes
< tor use guard nodes
+< total
< transfers
< transport mode does not support vti
< twelve hours
< bit
< block
< broken
+< bypassed
< cake profile bridged-llcsnap 32
< cake profile bridged-ptm 19
< cake profile bridged-vcmux 24
< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
+< ips throughput
< itlb multihit
< last
< last updated
< samba join domain
< samba server role member
< samba server role standalone
+< scanned
< search
< secret
< sent
< tor traffic read written
< tor use exit nodes
< tor use guard nodes
+< total
< traffic stat in
< traffic stat out
< traffic stat title
< bit
< block
< broken
+< bypassed
< cake profile bridged-llcsnap 32
< cake profile bridged-ptm 19
< cake profile bridged-vcmux 24
< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
+< ips throughput
< itlb multihit
< last
< last updated
< samba join domain
< samba server role member
< samba server role standalone
+< scanned
< search
< secret
< sent
< tor traffic read written
< tor use exit nodes
< tor use guard nodes
+< total
< traffic stat in
< traffic stat out
< traffic stat title
< autonomous system
< available
< broken
+< bypassed
< cake profile bridged-llcsnap 32
< cake profile bridged-ptm 19
< cake profile bridged-vcmux 24
< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
+< ips throughput
< itlb multihit
< last updated
< legacy architecture warning
< runmode
< samba server role member
< samba server role standalone
+< scanned
< secret
< sent
< service boot setting unavailable
< tor guard country any
< tor guard nodes
< tor use guard nodes
+< total
< traffic stat in
< traffic stat out
< traffic stat title
# List of graph origins that getrrdimage.cgi can process directly
# (unknown origins are forwarded to ensure compatibility)
-my @supported_origins = ("hardwaregraphs.cgi", "media.cgi",
+my @supported_origins = ("ids.cgi", "hardwaregraphs.cgi", "media.cgi",
"memory.cgi", "netexternal.cgi", "netinternal.cgi", "netother.cgi",
"netovpnrw.cgi", "netovpnsrv.cgi", "qos.cgi", "services.cgi", "system.cgi");
# Graphs are first grouped by their origin.
# This is because some graph categories require special parameter handling.
my $graphstatus = '';
-if($origin eq "hardwaregraphs.cgi") { ## hardwaregraphs.cgi
+if ($origin eq "ids.cgi") { ## ids.cgi
+ if ($graph eq "ips-throughput") {
+ $graphstatus = Graphs::updateipsthroughputgraph($range);
+ } else {
+ $graphstatus = "Unknown graph name.";
+ }
+} elsif($origin eq "hardwaregraphs.cgi") { ## hardwaregraphs.cgi
if($graph eq "hwtemp") {
$graphstatus = Graphs::updatehwtempgraph($range);
} elsif($graph eq "hwfan") {
&Header::closesection();
+ # Throughput Graph
+ &Header::graph("$Lang::tr{'ips throughput'}", "ids.cgi", "ips-throughput", "day");
+
#
# Used Ruleset Providers section.
#
'broken pipe' => 'Zerbrochene Pipe',
'buffered memory' => 'Pufferspeicher ',
'buffers' => 'Puffer',
+'bypassed' => 'Übersprungen',
'bytes' => 'Bytes',
'bytes per second' => 'Bytes pro Sekunde',
'bytes received' => 'Bytes empfangen',
'ipfire side is invalid' => 'IPFire Seite ist ungültig.',
'ipfires hostname' => 'IPFire\'s Hostname',
'ipinfo' => 'IP-Info',
+'ips throughput' => 'Durchsatz',
'ipsec' => 'IPsec',
'ipsec connection' => 'IPsec-Verbindung',
'ipsec interface mode gre' => 'GRE',
'save error' => 'Konfigurationsarchiv-Datei konnte nicht gespeichert werden',
'save settings' => 'Einstellungen speichern',
'save-adv-options' => 'Erweiterte Optionen speichern',
+'scanned' => 'Gescannt',
'script name' => 'Skriptname:',
'search' => 'Suchen',
'secondary dns' => 'Sekundärer DNS-Server:',
'tor traffic read written' => 'Gesamter Traffic (empfangen/gesendet)',
'tor use exit nodes' => 'Nur diese Exitknoten benutzen (ein Fingerabdruck pro Zeile)',
'tor use guard nodes' => 'Nur diese Guardknoten benutzen (ein Fingerabdruck pro Zeile)',
+'total' => 'Gesamt',
'total connection time' => 'Gesamte Verbindungszeit',
'total hits for log section' => 'Gesamte Treffer für Protokollsektion',
'traffic back' => 'Zurück',
'broken pipe' => 'Broken pipe',
'buffered memory' => 'Buffered Memory',
'buffers' => 'buffers',
+'bypassed' => 'Bypassed',
'bytes per second' => 'Bytes per Second',
'bytes received' => 'Bytes Received',
'bytes sent' => 'Bytes Sent',
'ipfire side is invalid' => 'IPFire side is invalid.',
'ipfires hostname' => 'IPFire\'s Hostname',
'ipinfo' => 'IP info',
+'ips throughput' => 'Throughput',
'ipsec' => 'IPsec',
'ipsec connection' => 'IPsec Connection',
'ipsec dns server address is invalid' => 'Invalid DNS server IP address(es)',
'save error' => 'Unable to save configuration archive file',
'save settings' => 'Save settings',
'save-adv-options' => 'Save advanced options',
+'scanned' => 'Scanned',
'script name' => 'Script name:',
'search' => 'Search',
'secondary dns' => 'Secondary DNS:',
'tor traffic read written' => 'Total traffic (read/written)',
'tor use exit nodes' => 'Use only these exit nodes (one fingerprint per line)',
'tor use guard nodes' => 'Use only these guard nodes (one fingerprint per line)',
+'total' => 'Total',
'total connection time' => 'Total Connection Time',
'total hits for log section' => 'Total hits for log section',
'traffic back' => 'Back',