diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl
index 19c0546da..a0df5c07d 100644
--- a/config/cfgroot/graphs.pl
+++ b/config/cfgroot/graphs.pl
@@ -1114,3 +1114,38 @@ sub getprocesses {
my @processesgraph = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/processes-*/ 2>/dev/null`;
return @processesgraph;
}
+
+sub updateentropygraph {
+ my $period = $_[0];
+ my @command = (
+ "-",
+ "--start",
+ "-1".$period,
+ "-aPNG",
+ "-i",
+ "-z",
+ "-W www.ipfire.org",
+ "--alt-y-grid",
+ "-w 600",
+ "-h 225",
+ "-r",
+ "--lower-limit","0",
+ "-t $Lang::tr{'entropy'}",
+ "-v $Lang::tr{'bit'}",
+ "DEF:entropy=$mainsettings{'RRDLOG'}/collectd/localhost/entropy/entropy.rrd:entropy:AVERAGE",
+ "CDEF:entropytrend=entropy,43200,TREND",
+ "LINE3:entropy#ff0000:" . sprintf("%-15s", $Lang::tr{'entropy'}),
+ "VDEF:entrmin=entropy,MINIMUM",
+ "VDEF:entrmax=entropy,MAXIMUM",
+ "VDEF:entravg=entropy,AVERAGE",
+ "GPRINT:entrmax:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'maximum'}),
+ "GPRINT:entrmin:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'minimum'}),
+ "GPRINT:entravg:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'average'}) . "\\n",
+ "LINE3:entropytrend#000000",
+ );
+
+ RRDs::graph (@command);
+ $ERROR = RRDs::error;
+
+ print "Error in RRD::graph for entropy: ".$ERROR."\n" if $ERROR;
+}
diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf
index 14dd568c2..61327bf6c 100644
--- a/config/collectd/collectd.conf
+++ b/config/collectd/collectd.conf
@@ -15,6 +15,7 @@ ReadThreads 1
LoadPlugin cpu
#LoadPlugin cpufreq
LoadPlugin disk
+LoadPlugin entropy
LoadPlugin interface
LoadPlugin iptables
LoadPlugin load
diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2
index c2be59bf8..2076fc30b 100644
--- a/config/rootfiles/common/apache2
+++ b/config/rootfiles/common/apache2
@@ -1391,6 +1391,7 @@ srv/web/ipfire/cgi-bin/dns.cgi
srv/web/ipfire/cgi-bin/dnsforward.cgi
srv/web/ipfire/cgi-bin/ddns.cgi
srv/web/ipfire/cgi-bin/dhcp.cgi
+srv/web/ipfire/cgi-bin/entropy.cgi
srv/web/ipfire/cgi-bin/extrahd.cgi
srv/web/ipfire/cgi-bin/fireinfo.cgi
srv/web/ipfire/cgi-bin/firewall.cgi
diff --git a/config/rootfiles/core/76/filelists/files b/config/rootfiles/core/76/filelists/files
index ed5b7575a..a6f5e7c41 100644
--- a/config/rootfiles/core/76/filelists/files
+++ b/config/rootfiles/core/76/filelists/files
@@ -5,6 +5,7 @@ etc/rc.d/init.d/network
run
srv/web/ipfire/cgi-bin/credits.cgi
srv/web/ipfire/cgi-bin/gui.cgi
+srv/web/ipfire/cgi-bin/entropy.cgi
srv/web/ipfire/cgi-bin/index.cgi
srv/web/ipfire/cgi-bin/netinternal.cgi
srv/web/ipfire/cgi-bin/ovpnmain.cgi
diff --git a/config/xen-image/xen-image-maker.sh b/config/xen-image/xen-image-maker.sh
index 2a985c4b0..c08045037 100644
--- a/config/xen-image/xen-image-maker.sh
+++ b/config/xen-image/xen-image-maker.sh
@@ -166,7 +166,7 @@ echo xvc0 >> $MNThdd/etc/securetty
#Add getty for xvc0
echo "#Enable login for XEN" >> $MNThdd/etc/inittab
-echo "8:2345:respawn:/sbin/agetty xvc0 9600 -noclear" >> $MNThdd/etc/inittab
+echo "8:2345:respawn:/sbin/agetty xvc0 9600 --noclear" >> $MNThdd/etc/inittab
#Disable some initskripts
echo "#!/bin/sh" > $MNThdd/etc/rc.d/init.d/setclock
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 066ea500f..d0cd3a876 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -577,6 +577,7 @@ WARNING: untranslated string: advproxy errmsg invalid upstream proxy
WARNING: untranslated string: advproxy errmsg proxy ports equal
WARNING: untranslated string: advproxy proxy port transparent
WARNING: untranslated string: attention
+WARNING: untranslated string: bit
WARNING: untranslated string: bytes
WARNING: untranslated string: ccd add
WARNING: untranslated string: ccd choose net
@@ -633,6 +634,7 @@ WARNING: untranslated string: drop forward
WARNING: untranslated string: drop outgoing
WARNING: untranslated string: emerging rules
WARNING: untranslated string: encryption
+WARNING: untranslated string: entropy
WARNING: untranslated string: fireinfo ipfire version
WARNING: untranslated string: fireinfo is disabled
WARNING: untranslated string: fireinfo is enabled
@@ -804,6 +806,8 @@ WARNING: untranslated string: ipsec network
WARNING: untranslated string: least preferred
WARNING: untranslated string: lifetime
WARNING: untranslated string: mac filter
+WARNING: untranslated string: maximum
+WARNING: untranslated string: minimum
WARNING: untranslated string: minute
WARNING: untranslated string: most preferred
WARNING: untranslated string: notice
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 42e147945..1dca032da 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -587,6 +587,7 @@ WARNING: untranslated string: advproxy errmsg invalid upstream proxy
WARNING: untranslated string: advproxy errmsg proxy ports equal
WARNING: untranslated string: advproxy proxy port transparent
WARNING: untranslated string: attention
+WARNING: untranslated string: bit
WARNING: untranslated string: bytes
WARNING: untranslated string: ccd add
WARNING: untranslated string: ccd choose net
@@ -644,6 +645,7 @@ WARNING: untranslated string: drop forward
WARNING: untranslated string: drop outgoing
WARNING: untranslated string: emerging rules
WARNING: untranslated string: encryption
+WARNING: untranslated string: entropy
WARNING: untranslated string: fireinfo ipfire version
WARNING: untranslated string: fireinfo is disabled
WARNING: untranslated string: fireinfo is enabled
@@ -815,6 +817,8 @@ WARNING: untranslated string: ipsec network
WARNING: untranslated string: least preferred
WARNING: untranslated string: lifetime
WARNING: untranslated string: mac filter
+WARNING: untranslated string: maximum
+WARNING: untranslated string: minimum
WARNING: untranslated string: minute
WARNING: untranslated string: most preferred
WARNING: untranslated string: notice
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index aa8c5b6ed..75623b569 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -588,6 +588,7 @@ WARNING: untranslated string: addons
WARNING: untranslated string: advproxy cache-digest
WARNING: untranslated string: advproxy errmsg proxy ports equal
WARNING: untranslated string: advproxy proxy port transparent
+WARNING: untranslated string: bit
WARNING: untranslated string: bytes
WARNING: untranslated string: ccd iroute2
WARNING: untranslated string: dead peer detection
@@ -608,6 +609,7 @@ WARNING: untranslated string: drop action2
WARNING: untranslated string: drop forward
WARNING: untranslated string: drop outgoing
WARNING: untranslated string: encryption
+WARNING: untranslated string: entropy
WARNING: untranslated string: firewall rules
WARNING: untranslated string: fw default drop
WARNING: untranslated string: fw settings
@@ -762,6 +764,8 @@ WARNING: untranslated string: ipsec network
WARNING: untranslated string: least preferred
WARNING: untranslated string: lifetime
WARNING: untranslated string: mac filter
+WARNING: untranslated string: maximum
+WARNING: untranslated string: minimum
WARNING: untranslated string: most preferred
WARNING: untranslated string: notice
WARNING: untranslated string: openvpn network
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index 066ea500f..d0cd3a876 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -577,6 +577,7 @@ WARNING: untranslated string: advproxy errmsg invalid upstream proxy
WARNING: untranslated string: advproxy errmsg proxy ports equal
WARNING: untranslated string: advproxy proxy port transparent
WARNING: untranslated string: attention
+WARNING: untranslated string: bit
WARNING: untranslated string: bytes
WARNING: untranslated string: ccd add
WARNING: untranslated string: ccd choose net
@@ -633,6 +634,7 @@ WARNING: untranslated string: drop forward
WARNING: untranslated string: drop outgoing
WARNING: untranslated string: emerging rules
WARNING: untranslated string: encryption
+WARNING: untranslated string: entropy
WARNING: untranslated string: fireinfo ipfire version
WARNING: untranslated string: fireinfo is disabled
WARNING: untranslated string: fireinfo is enabled
@@ -804,6 +806,8 @@ WARNING: untranslated string: ipsec network
WARNING: untranslated string: least preferred
WARNING: untranslated string: lifetime
WARNING: untranslated string: mac filter
+WARNING: untranslated string: maximum
+WARNING: untranslated string: minimum
WARNING: untranslated string: minute
WARNING: untranslated string: most preferred
WARNING: untranslated string: notice
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index 0e00e5e8f..c2b7bf3c6 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -580,6 +580,7 @@ WARNING: untranslated string: advproxy errmsg invalid upstream proxy
WARNING: untranslated string: advproxy errmsg proxy ports equal
WARNING: untranslated string: advproxy proxy port transparent
WARNING: untranslated string: attention
+WARNING: untranslated string: bit
WARNING: untranslated string: bytes
WARNING: untranslated string: ccd add
WARNING: untranslated string: ccd choose net
@@ -638,6 +639,7 @@ WARNING: untranslated string: drop forward
WARNING: untranslated string: drop outgoing
WARNING: untranslated string: emerging rules
WARNING: untranslated string: encryption
+WARNING: untranslated string: entropy
WARNING: untranslated string: extrahd because there is already a device mounted
WARNING: untranslated string: extrahd cant umount
WARNING: untranslated string: extrahd install or load driver
@@ -800,6 +802,8 @@ WARNING: untranslated string: ipsec network
WARNING: untranslated string: least preferred
WARNING: untranslated string: lifetime
WARNING: untranslated string: mac filter
+WARNING: untranslated string: maximum
+WARNING: untranslated string: minimum
WARNING: untranslated string: minute
WARNING: untranslated string: most preferred
WARNING: untranslated string: notice
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index a21d7351c..9711f14ef 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -602,6 +602,7 @@ WARNING: untranslated string: Scan for Songs
WARNING: untranslated string: addons
WARNING: untranslated string: advproxy errmsg proxy ports equal
WARNING: untranslated string: advproxy proxy port transparent
+WARNING: untranslated string: bit
WARNING: untranslated string: bytes
WARNING: untranslated string: dead peer detection
WARNING: untranslated string: default ip
@@ -614,6 +615,7 @@ WARNING: untranslated string: drop action2
WARNING: untranslated string: drop forward
WARNING: untranslated string: drop outgoing
WARNING: untranslated string: encryption
+WARNING: untranslated string: entropy
WARNING: untranslated string: firewall rules
WARNING: untranslated string: fw default drop
WARNING: untranslated string: fw settings
@@ -768,6 +770,8 @@ WARNING: untranslated string: ipsec network
WARNING: untranslated string: least preferred
WARNING: untranslated string: lifetime
WARNING: untranslated string: mac filter
+WARNING: untranslated string: maximum
+WARNING: untranslated string: minimum
WARNING: untranslated string: most preferred
WARNING: untranslated string: notice
WARNING: untranslated string: openvpn network
diff --git a/doc/language_missings b/doc/language_missings
index b588cae4d..02de34a20 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -23,6 +23,7 @@
< age sminute
< age ssecond
< attention
+< bit
< ccd add
< ccd choose net
< ccd clientip
@@ -80,6 +81,7 @@
< drop forward
< drop outgoing
< encryption
+< entropy
< fireinfo ipfire version
< fireinfo is disabled
< fireinfo is enabled
@@ -282,6 +284,8 @@
< least preferred
< lifetime
< mac filter
+< maximum
+< minimum
< minute
< most preferred
< notice
@@ -459,6 +463,7 @@
< age ssecond
< Async logging enabled
< attention
+< bit
< ccd add
< ccd choose net
< ccd clientip
@@ -515,6 +520,7 @@
< drop forward
< drop outgoing
< encryption
+< entropy
< fireinfo ipfire version
< fireinfo is disabled
< fireinfo is enabled
@@ -717,6 +723,8 @@
< least preferred
< lifetime
< mac filter
+< maximum
+< minimum
< minute
< most preferred
< notice
@@ -886,6 +894,7 @@
< age sminute
< age ssecond
< attention
+< bit
< ccd add
< ccd choose net
< ccd clientip
@@ -942,6 +951,7 @@
< drop forward
< drop outgoing
< encryption
+< entropy
< extrahd because there is already a device mounted
< extrahd cant umount
< extrahd install or load driver
@@ -1136,6 +1146,8 @@
< least preferred
< lifetime
< mac filter
+< maximum
+< minimum
< minute
< most preferred
< notice
@@ -1290,6 +1302,7 @@
< age sminute
< age ssecond
< attention
+< bit
< ccd add
< ccd choose net
< ccd clientip
@@ -1349,6 +1362,7 @@
< drop outgoing
< Edit an existing route
< encryption
+< entropy
< extrahd because there is already a device mounted
< extrahd cant umount
< extrahd install or load driver
@@ -1546,6 +1560,8 @@
< least preferred
< lifetime
< mac filter
+< maximum
+< minimum
< minute
< month-graph
< most preferred
diff --git a/html/cgi-bin/entropy.cgi b/html/cgi-bin/entropy.cgi
new file mode 100755
index 000000000..9362e78be
--- /dev/null
+++ b/html/cgi-bin/entropy.cgi
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2005-2010 IPFire Team #
+# #
+# 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 . #
+# #
+###############################################################################
+
+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 @querry = split(/\?/,$ENV{'QUERY_STRING'});
+$querry[0] = '' unless defined $querry[0];
+$querry[1] = 'hour' unless defined $querry[1];
+
+if ( $querry[0] ne~ "") {
+ print "Content-type: image/png\n\n";
+ binmode(STDOUT);
+ &Graphs::updateentropygraph($querry[1]);
+
+} else {
+ &Header::showhttpheaders();
+ &Header::openpage($Lang::tr{'entropy'}, 1, '');
+ &Header::openbigbox('100%', 'left');
+
+ &Header::openbox('100%', 'center', $Lang::tr{'entropy'});
+ &Graphs::makegraphbox("entropy.cgi", "day", '', 350);
+ &Header::closebox();
+
+ &Header::closebigbox();
+ &Header::closepage();
+}
diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi
index 84e08474c..b7c839329 100644
--- a/html/cgi-bin/remote.cgi
+++ b/html/cgi-bin/remote.cgi
@@ -2,7 +2,7 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2011 IPFire Team #
+# Copyright (C) 2007-2014 IPFire Team #
# #
# 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 #
@@ -181,6 +181,7 @@ END
&viewkey("/etc/ssh/ssh_host_rsa_key.pub","RSA2");
&viewkey("/etc/ssh/ssh_host_dsa_key.pub","DSA");
&viewkey("/etc/ssh/ssh_host_ecdsa_key.pub","ECDSA");
+&viewkey("/etc/ssh/ssh_host_ed25519_key.pub","ED25519");
print "\n";
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 9da517e06..e32ee9448 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -397,6 +397,7 @@
'basic options' => 'Basisoptionen',
'beep when ppp connects or disconnects' => 'Piepen, wenn IPFire verbindet oder trennt',
'behind a proxy' => 'Hinter einem Proxy:',
+'bit' => 'Bit',
'bitrate' => 'Bitrate',
'bleeding rules' => 'Bleeding Edge Snort Rules',
'blue' => 'BLAU',
@@ -808,6 +809,7 @@
'end address' => 'Endadresse:',
'enter ack class' => 'Legen Sie hier die ACK-Klasse fest
und klicken Sie danach auf Speichern.',
'enter data' => 'Geben Sie die Daten ein
und klicken Sie danach auf Speichern.',
+'entropy' => 'Entropie',
'err bk 1' => 'Fehler beim Erzeugen des Archivs',
'err bk 10 password' => 'Fehler beim Datensicherungs-Passwort',
'err bk 2 key' => 'Fehler beim Erzeugen der Schlüsseldatei',
@@ -1388,6 +1390,7 @@
'max size' => 'Max. Objektgröße (kB):',
'max throughput' => 'Maximaler Durchsatz',
'maximal' => 'Maximal',
+'maximum' => 'Maximum',
'maximum retries' => 'Maximale Wiederholversuche:',
'may' => 'Mai',
'mbmon display' => 'Anzeigen',
@@ -1413,6 +1416,7 @@
'min delay' => 'Minimale Verzögerung',
'min size' => 'Min. Objektgröße (kB):',
'minimal' => 'Minimal',
+'minimum' => 'Minimum',
'minute' => 'Minute',
'minutes' => 'Minuten',
'misc-options' => 'Sonstige Optionen',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 3957b8557..d3c87743d 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -416,6 +416,7 @@
'behind a proxy' => 'Behind a proxy:',
'bewan adsl pci st' => 'TO BE REMOVED',
'bewan adsl usb' => 'TO BE REMOVED',
+'bit' => 'Bit',
'bitrate' => 'Bitrate',
'bleeding rules' => 'Bleeding Edge Snort Rules',
'blue' => 'BLUE',
@@ -834,6 +835,7 @@
'end address' => 'End address:',
'enter ack class' => 'Enter the ACK- Class
and then press Save.',
'enter data' => 'Enter your settings
and then press Save.',
+'entropy' => 'Entropy',
'err bk 1' => 'Error creating archive',
'err bk 10 password' => 'Error with backup password',
'err bk 2 key' => 'Error creating key file',
@@ -1417,6 +1419,7 @@
'max size' => 'Max object size (KB):',
'max throughput' => 'Maximum throughput',
'maximal' => 'Maximal',
+'maximum' => 'Maximum',
'maximum retries' => 'Maximum retries:',
'may' => 'May',
'mbmon display' => 'Display',
@@ -1442,6 +1445,7 @@
'min delay' => 'Minimum delay',
'min size' => 'Min object size (KB):',
'minimal' => 'Minimal',
+'minimum' => 'Minimum',
'minute' => 'Minute',
'minutes' => 'Minutes',
'misc-options' => 'Miscellaneous options',
diff --git a/src/initscripts/init.d/random b/src/initscripts/init.d/random
index 26c64e3b3..7159b5386 100644
--- a/src/initscripts/init.d/random
+++ b/src/initscripts/init.d/random
@@ -13,6 +13,9 @@ case "$1" in
boot_mesg "Initializing kernel random number generator..."
if [ -f /var/tmp/random-seed ]; then
/bin/cat /var/tmp/random-seed >/dev/urandom
+ else
+ /bin/dd if=/dev/random of=/dev/urandom \
+ count=1 &>/dev/null
fi
/bin/dd if=/dev/urandom of=/var/tmp/random-seed \
count=1 &>/dev/null