diff --git a/lynis_report.pl b/lynis_report.pl
index 29520d7..710e396 100755
--- a/lynis_report.pl
+++ b/lynis_report.pl
@@ -16,7 +16,8 @@ GetOptions(
'o|output=s' => \$output,
);
-my %to_bool = ( 0 => 'false', 1 => 'true' );
+my %to_bool = ( 0 => 'false', 1 => 'true' );
+my %to_long_severity = ( 'C' => 'Critical', 'S' => 'Severe', 'H' => 'High', 'M' => 'Medium', 'L' => 'Low', 'I' => 'Informational' );
$output = "report.html" unless ((defined($output)) and ($output ne ""));
@@ -162,27 +163,62 @@ END
given ($lynis_report_data{'hardening_index'}) {
when (($lynis_report_data{'hardening_index'} < 100) and ($lynis_report_data{'hardening_index'} > 90)) {
# green
- print OUT "\t\t\t
$lynis_report_data{'hardening_index'} | \n";
+ print OUT "\t\t\t$lynis_report_data{'hardening_index'} | ";
}
when (($lynis_report_data{'hardening_index'} <= 90) and ($lynis_report_data{'hardening_index'} > 80)) {
# yellow
- print OUT "\t\t\t$lynis_report_data{'hardening_index'} | \n";
+ print OUT "\t\t\t$lynis_report_data{'hardening_index'} | ";
}
when (($lynis_report_data{'hardening_index'} <= 80) and ($lynis_report_data{'hardening_index'} > 65)) {
# orange
- print OUT "\t\t\t$lynis_report_data{'hardening_index'} | \n";
+ print OUT "\t\t\t$lynis_report_data{'hardening_index'} | ";
}
when ($lynis_report_data{'hardening_index'} <= 65) {
# red
- print OUT "\t\t\t$lynis_report_data{'hardening_index'} | \n";
+ print OUT "\t\t\t$lynis_report_data{'hardening_index'} | ";
}
default {
# error
}
}
+print OUT "\t\t\n";
+print OUT "warnings (".scalar(@{$lynis_report_data{'warning[]'}})."):
\n";
print OUT <
+
+ Warning ID | Description | Severity | F4 |
+END
+if (ref($lynis_report_data{'warning[]'}) eq 'ARRAY') {
+ # probably just 1 warning
+ my $warn_id = ${$lynis_report_data{'warning[]'}}[0];
+ my $warn_desc = ${$lynis_report_data{'warning[]'}}[1];
+ my $warn_sev = ${$lynis_report_data{'warning[]'}}[2];
+ my $warn_f4 = ${$lynis_report_data{'warning[]'}}[3];
+ print OUT "$warn_id | $warn_desc | $to_long_severity{$warn_sev} | $warn_f4 |
\n";
+} else {
+ die colored("warning[] not ARRAY ref!: ".ref($lynis_report_data{'warning[]'})."\n", "bold red");
+}
+print OUT <
+END
+print OUT "\t\tsuggestions (".scalar(@{$lynis_report_data{'suggestion[]'}})."):
\n";
+print OUT <
+ Suggestion ID | Description | Severity | F4 |
+END
+if ((ref($lynis_report_data{'suggestion[]'}) eq 'ARRAY') and
+ (${$lynis_report_data{'suggestion[]'}}[0] =~ /\|/)) {
+ foreach my $sug ( sort @{$lynis_report_data{'suggestion[]'}} ) {
+ my ($sug_id,$sug_desc,$sug_sev,$sug_f4,$sug_f5) = split(/\|/, $sug);
+ print OUT "\t\t\t$sug_id | $sug_desc | $sug_sev | $sug_f4 |
\n";
+ }
+}
+print OUT <
+ manual checks:
+
+ ID | Description | Severity | F4 |
+