120 lines
3.4 KiB
Perl
120 lines
3.4 KiB
Perl
|
|
require 'checks-lib.pl';
|
|
require 'jru-lib.pl';
|
|
|
|
require '../webmin/webmin-lib.pl'; #for OS detection
|
|
foreign_require('software', 'software-lib.pl');
|
|
|
|
sub install_firewalld {
|
|
software::update_system_install("firewalld", undef);
|
|
|
|
#allow webmin
|
|
exec_cmd('firewall-cmd --permanent --zone=public --add-port=10000/tcp');
|
|
|
|
exec_cmd('firewall-cmd --permanent --zone=public --add-port=80/tcp');
|
|
exec_cmd('firewall-cmd --permanent --zone=public --add-port=443/tcp');
|
|
|
|
exec_cmd('firewall-cmd --permanent --zone=public --add-port=8080/tcp');
|
|
|
|
exec_cmd('systemctl restart firewalld');
|
|
exec_cmd('firewall-cmd --list-all');
|
|
}
|
|
|
|
sub disable_info_page_is_enabled(){
|
|
my $prop_file = get_prop_file();
|
|
|
|
my $ln=0;
|
|
my $lref = &read_file_lines($prop_file);
|
|
foreach my $line (@$lref){
|
|
if($line =~ /infoPageIsEnabled=true/){
|
|
@{$lref}[$ln] = "infoPageIsEnabled=false";
|
|
print "Disabled infoPageIsEnabled in application.properties</br>";
|
|
last;
|
|
}
|
|
$ln=$ln+1;
|
|
}
|
|
flush_file_lines($prop_file);
|
|
print "infoPageIsEnabled disabled</br>";
|
|
}
|
|
|
|
sub remove_demodir(){
|
|
my $demo_dir = get_jasper_home().'/reports/demo';
|
|
|
|
&unlink_file($demo_dir);
|
|
print $demo_dir.' removed</br>';
|
|
}
|
|
|
|
sub encrypt_prop_passwords(){
|
|
#/home/tomcat/apache-tomcat-9.0.6/webapps/JasperReportsIntegration/WEB-INF/classes# java -cp ".:../lib/*" main/CommandLine encryptPasswords ../../../../jasper_reports/conf/application.properties
|
|
my $web_inf = get_catalina_home().'/webapps/JasperReportsIntegration/WEB-INF';
|
|
my $cmd = "cd $web_inf/classes; java -cp '.:../lib/*' main/CommandLine encryptPasswords ".get_jasper_home()."/conf/application.properties";
|
|
exec_cmd($cmd);
|
|
|
|
print "Password encrypted</br>";
|
|
}
|
|
|
|
sub enter_allowed_ips(){
|
|
|
|
print &ui_form_start("checks.cgi");
|
|
print ui_hidden('mode', 'update_allowed_ips');
|
|
print "$text{'checks_enter_ips_desc'}: 127.0.0.1,10.10.10.10,192.168.178.31</br>";
|
|
|
|
|
|
print $text{'checks_ip_list'}.&ui_textbox("ip_list", '', 40);
|
|
|
|
print &ui_submit('save');
|
|
print &ui_form_end();
|
|
}
|
|
|
|
sub update_allowed_ips(){
|
|
my $prop_file = get_prop_file();
|
|
|
|
#validate the input
|
|
my @ips = split(/,/, $in{'ip_list'});
|
|
foreach my $ip (@ips){
|
|
if( (check_ipaddress($ip) == 1) ||
|
|
(check_ip6address($ip) == 0)){
|
|
next;
|
|
}else{
|
|
print "IP $ip is invalid</br>";
|
|
return;
|
|
}
|
|
}
|
|
|
|
my $ln=0;
|
|
my $lref = &read_file_lines($prop_file);
|
|
foreach my $line (@$lref){
|
|
if($line =~ /(?:# )ipAddressListAllowed=/){
|
|
@{$lref}[$ln] = "ipAddressListAllowed=".$in{'ip_list'};
|
|
last;
|
|
}
|
|
$ln=$ln+1;
|
|
}
|
|
flush_file_lines($prop_file);
|
|
print "ipAddressListAllowed updated to ".$in{'ip_list'}."</br>";
|
|
}
|
|
|
|
&ui_print_header(undef, $text{'checks_title'}, "");
|
|
|
|
if($ENV{'CONTENT_TYPE'} =~ /boundary=(.*)$/) {
|
|
&ReadParseMime();
|
|
}else {
|
|
&ReadParse(); $no_upload = 1;
|
|
}
|
|
|
|
%osinfo = &detect_operating_system();
|
|
|
|
my $mode = $in{'mode'} || "checks";
|
|
|
|
if($mode eq "install_firewalld"){ install_firewalld();
|
|
}elsif($mode eq "disable_infopage"){ disable_info_page_is_enabled();
|
|
}elsif($mode eq "remove_demodir"){ remove_demodir();
|
|
}elsif($mode eq "enc_prop_pwd"){ encrypt_prop_passwords();
|
|
}elsif($mode eq "enter_allowed_ips"){ enter_allowed_ips();
|
|
}elsif($mode eq "update_allowed_ips"){ update_allowed_ips();
|
|
}else{
|
|
print "Error: Invalid checks mode\n";
|
|
}
|
|
|
|
&ui_print_footer("", $text{'index_return'}, 'security.cgi', $text{'security_return'});
|