mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 08:40:24 +00:00
Re-factor function to detect external firewall
This commit is contained in:
@@ -659,5 +659,24 @@ my $out = &backquote_logged("$cmd 2>&1 </dev/null");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# external_firewall_list(&tables)
|
||||
# Returns a list of all external firewalls detected
|
||||
sub external_firewall_list
|
||||
{
|
||||
my ($tables) = @_;
|
||||
my @fwname;
|
||||
my ($filter) = grep { $_->{'name'} eq 'filter' } @$tables;
|
||||
if ($filter->{'defaults'}->{'shorewall'}) {
|
||||
push(@fwname, 'shorewall');
|
||||
}
|
||||
if ($filter->{'defaults'}->{'INPUT_ZONES'}) {
|
||||
push(@fwname, firewalld');
|
||||
}
|
||||
if ($filter->{'defaults'} =~ /^f2b-|^fail2ban-/ && !$config{'filter_chain'} ) {
|
||||
push(@fwname, 'fail2ban');
|
||||
}
|
||||
return @fwname;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
@@ -530,30 +530,22 @@ else {
|
||||
|
||||
&ui_print_footer("/", $text{'index'});
|
||||
|
||||
# external_firewall_message(&tables)
|
||||
sub external_firewall_message
|
||||
{
|
||||
my $fwname = "";
|
||||
my $fwconfig="@{[&get_webprefix()]}/config.cgi?firewall";
|
||||
my ($tables) = @_;
|
||||
my $fwconfig = "@{[&get_webprefix()]}/config.cgi?firewall";
|
||||
my @fwname = &external_firewall_list($tables);
|
||||
|
||||
# detect external firewalls
|
||||
local ($filter) = grep { $_->{'name'} eq 'filter' } @{$_[0]};
|
||||
if ($filter->{'defaults'}->{'shorewall'}) {
|
||||
$fwname.='shorewall ';
|
||||
}
|
||||
if ($filter->{'defaults'}->{'INPUT_ZONES'}) {
|
||||
$fwname.='firewalld ';
|
||||
}
|
||||
if ($filter->{'defaults'} =~ /^f2b-|^fail2ban-/ && !$config{'filter_chain'} ) {
|
||||
$fwname.='fail2ban ';
|
||||
}
|
||||
# warning about not using direct
|
||||
if($fwname && !$config{"direct${ipvx}"}) {
|
||||
# Warning about not using direct
|
||||
if(@fwname && !$config{"direct${ipvx}"}) {
|
||||
print "<b><center>",
|
||||
&text('index_filter_nodirect', $fwconfig),
|
||||
"</b></center><p>\n";
|
||||
}
|
||||
# alert about the detected firewall modules
|
||||
foreach my $word (split ' ', $fwname) {
|
||||
|
||||
# Alert about the detected firewall modules
|
||||
foreach my $word (@fwname) {
|
||||
print ui_alert_box(&text("index_$word", "@{[&get_webprefix()]}/$word/", $fwconfig), 'warn');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user