#!/usr/bin/perl
#
# IPFire CGIs
#
# This code is distributed under the terms of the GPL
#
# (c) The IPFire Team
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";
my %tripwiresettings = ();
my %checked = ();
my %netsettings = ();
my $message = "";
my $errormessage = "";
my @Logs = qx(ls /var/ipfire/tripwire/report/);
my $Log =$Lang::tr{'no log selected'};
############################################################################################################################
################################################# Tripwire Default Variablen ################################################
$tripwiresettings{'ROOT'} = '/usr/sbin';
$tripwiresettings{'POLFILE'} = '/var/ipfire/tripwire/tw.pol';
$tripwiresettings{'DBFILE'} = '/var/ipfire/tripwire/$(HOSTNAME).twd';
$tripwiresettings{'REPORTFILE'} = '/var/ipfire/tripwire/report/$(HOSTNAME)-$(DATE).twr';
$tripwiresettings{'SITEKEYFILE'} = '/var/ipfire/tripwire/site.key';
$tripwiresettings{'LOCALKEYFILE'} = '/var/ipfire/tripwire/$(HOSTNAME)-local.key';
$tripwiresettings{'EDITOR'} = '/usr/bin/vi';
$tripwiresettings{'LATEPROMPTING'} = 'false';
$tripwiresettings{'LOOSEDIRECTORYCHECKING'} = 'false';
$tripwiresettings{'MAILNOVIOLATIONS'} = 'false';
$tripwiresettings{'EMAILREPORTLEVEL'} = '3';
$tripwiresettings{'REPORTLEVEL'} = '3';
$tripwiresettings{'MAILMETHOD'} = 'SENDMAIL';
$tripwiresettings{'SMTPHOST'} = 'ipfire.myipfire.de';
$tripwiresettings{'SMTPPORT'} = '25';
$tripwiresettings{'SYSLOGREPORTING'} = 'false';
$tripwiresettings{'MAILPROGRAM'} = '/usr/sbin/sendmail -oi -t';
$tripwiresettings{'SITEKEY'} = 'IPFire';
$tripwiresettings{'LOCALKEY'} = 'IPFire';
$tripwiresettings{'ACTION'} = '';
############################################################################################################################
######################################################### Tripwire HTML Part ###############################################
&Header::showhttpheaders();
&Header::getcgihash(\%tripwiresettings);
&Header::openpage('Tripwire', 1, '');
&Header::openbigbox('100%', 'left', '', $errormessage);
############################################################################################################################
############################################### Tripwire Config Datei erstellen ############################################
if ($tripwiresettings{'ACTION'} eq $Lang::tr{'save'})
{
system("/usr/local/bin/tripwirectrl readconfig");
open (FILE, ">${General::swroot}/tripwire/tw.cfg") or die "Can't save tripwire config: $!";
flock (FILE, 2);
print FILE <
$Lang::tr{'resetglobals'}
|
$Lang::tr{'defaultwarning'}
|
|
|
END
;
}
if ($tripwiresettings{'ACTION'} eq 'generatepolicypw')
{
print <
END
;
}
if ($tripwiresettings{'ACTION'} eq 'policyresetpw')
{
print <
END
;
}
if ($tripwiresettings{'ACTION'} eq 'updatedatabasepw')
{
print <
END
;
}
if ($tripwiresettings{'ACTION'} eq 'keyreset')
{
print <
$Lang::tr{'keyreset'}
|
$Lang::tr{'tripwirewarningkeys'}
|
|
|
END
;
}
if ($tripwiresettings{'ACTION'} eq 'generatekeys')
{
print <
$Lang::tr{'generatekeys'}
|
$Lang::tr{'tripwirewarningkeys'}
|
|
|
END
;
}
############################################################################################################################
######################################################## Tripwire Funktionen ###############################################
if ($tripwiresettings{'ACTION'} eq 'globalresetyes'){system("/usr/local/bin/tripwirectrl globalreset");}
if ($tripwiresettings{'ACTION'} eq 'generatekeysyes'){system("/usr/local/bin/tripwirectrl keys $tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'}");$tripwiresettings{'SITEKEY'} = 'IPFire';$tripwiresettings{'LOCALKEY'} = 'IPFire';}
if ($tripwiresettings{'ACTION'} eq 'keyresetyes'){system("/usr/local/bin/tripwirectrl keys IPFire IPFire");$tripwiresettings{'SITEKEY'} = 'IPFire';$tripwiresettings{'LOCALKEY'} = 'IPFire';}
if ($tripwiresettings{'ACTION'} eq 'resetpolicyyes'){system("/usr/local/bin/tripwirectrl resetpolicy tripwiresettings{'SITEKEY'}");$tripwiresettings{'SITEKEY'} = 'IPFire';}
if ($tripwiresettings{'ACTION'} eq 'generatepolicyyes'){system("/usr/local/bin/tripwirectrl generatepolicy $tripwiresettings{'SITEKEY'}");$tripwiresettings{'SITEKEY'} = 'IPFire';}
if ($tripwiresettings{'ACTION'} eq 'updatedatabaseyes'){system("/usr/local/bin/tripwirectrl updatedatabase $tripwiresettings{'LOCALKEY'}");$tripwiresettings{'LOCALKEY'} = 'IPFire';}
if ($tripwiresettings{'ACTION'} eq 'generatereport'){system("/usr/local/bin/tripwirectrl generatereport");}
############################################################################################################################
##################################################### Tripwire globale Optionen ############################################
&Header::openbox('100%', 'center', 'Tripwire');
print <
END
;
if ($tripwiresettings{'ACTION'} eq 'showlog')
{
$Log = qx(/usr/local/bin/tripwirectrl tripwirelog $tripwiresettings{'LOG'});
#$Log=~s/\n/
/g;
#$Log=~s/\t/.... /g;
print <
|
LOG - $Log |
|
$tripwiresettings{'LOG'} |
END
;
}
&Header::closebox();
&Header::closebigbox();
&Header::closepage();