X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Ftripwire.cgi;h=696a52e1ee1f343f467f16ab007933a2c5d0780e;hb=62fc8511664c6646d706aa42927bac53ac6a5b5f;hp=aa87806f3c232cc121b0fba3e779e57d95cc743e;hpb=71dfc4b7a2acd048324566be129ad79c941bbbf3;p=people%2Fteissler%2Fipfire-2.x.git diff --git a/html/cgi-bin/tripwire.cgi b/html/cgi-bin/tripwire.cgi old mode 100755 new mode 100644 index aa87806f3..696a52e1e --- a/html/cgi-bin/tripwire.cgi +++ b/html/cgi-bin/tripwire.cgi @@ -1,15 +1,28 @@ #!/usr/bin/perl -# -# IPFire CGIs -# -# This code is distributed under the terms of the GPL -# -# (c) The IPFire Team +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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'; +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; @@ -20,10 +33,16 @@ my %checked = (); my %netsettings = (); my $message = ""; my $errormessage = ""; -my @Logs = qx(ls -r /var/ipfire/tripwire/report/); -my $file = `ls -tr /var/ipfire/tripwire/report/ | tail -1`; +my @Logs = `ls -r /var/ipfire/tripwire/report/ 2>/dev/null`; +my $file = `ls -tr /var/ipfire/tripwire/report/ | tail -1 2>/dev/null`; +my @cronjobs = `ls /etc/fcron.daily/tripwire* 2>/dev/null`; my $Log =$Lang::tr{'no log selected'}; +my %color = (); +my %mainsettings = (); +&General::readhash("${General::swroot}/main/settings", \%mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); + ############################################################################################################################ ################################################# Tripwire Default Variablen ################################################ @@ -54,8 +73,9 @@ $tripwiresettings{'ACTION'} = ''; ######################################################### Tripwire HTML Part ############################################### &Header::showhttpheaders(); + &Header::getcgihash(\%tripwiresettings); -&Header::openpage('Tripwire', 1, ''); +&Header::openpage('Tripwire', 1,); &Header::openbigbox('100%', 'left', '', $errormessage); ############################################################################################################################ @@ -63,7 +83,7 @@ $tripwiresettings{'ACTION'} = ''; if ($tripwiresettings{'ACTION'} eq $Lang::tr{'save'}) { -system("/usr/local/bin/tripwirectrl readconfig"); +system("/usr/local/bin/tripwirectrl readconfig >/dev/null 2>&1"); open (FILE, ">${General::swroot}/tripwire/twcfg.txt") or die "Can't save tripwire config: $!"; flock (FILE, 2); @@ -92,24 +112,44 @@ END close FILE; &General::writehash("${General::swroot}/tripwire/settings", \%tripwiresettings); -system("/usr/local/bin/tripwirectrl lockconfig"); +system("/usr/local/bin/tripwirectrl lockconfig >/dev/null 2>&1"); } ############################################################################################################################ ################################################## Sicherheitsabfrage für CGI ############################################## +if ($tripwiresettings{'ACTION'} eq 'addcron') + { + print < + + + + + +
$Lang::tr{'add cron'} +
+
HHMM

+ $Lang::tr{'ok'} +
+ $Lang::tr{'cancel'} +
+END +; +} + if ($tripwiresettings{'ACTION'} eq 'globalreset') { print < -
$Lang::tr{'resetglobals'} +
$Lang::tr{'resetglobals'}
$Lang::tr{'defaultwarning'}

- $Lang::tr{'yes'} + $Lang::tr{'ok'}
- $Lang::tr{'no'} + $Lang::tr{'cancel'}
@@ -122,15 +162,15 @@ if ($tripwiresettings{'ACTION'} eq 'generatepolicypw') print < - - +
$Lang::tr{'generatepolicy'} +
$Lang::tr{'generatepolicy'}
$Lang::tr{'tripwirewarningpolicy'}

$Lang::tr{'sitekey'}
$Lang::tr{'localkey'}
$Lang::tr{'localkey'}

- $Lang::tr{'yes'} + $Lang::tr{'ok'}
- $Lang::tr{'no'} + $Lang::tr{'cancel'}
@@ -143,15 +183,15 @@ if ($tripwiresettings{'ACTION'} eq 'policyresetpw') print < - - +
$Lang::tr{'resetpolicy'} +
$Lang::tr{'resetpolicy'}
$Lang::tr{'tripwirewarningpolicy'}

$Lang::tr{'sitekey'}
$Lang::tr{'localkey'}
$Lang::tr{'localkey'}

- $Lang::tr{'yes'} + $Lang::tr{'ok'}
- $Lang::tr{'no'} + $Lang::tr{'cancel'}
@@ -164,14 +204,14 @@ if ($tripwiresettings{'ACTION'} eq 'updatedatabasepw') print < - - +
$Lang::tr{'updatedatabase'} +
$Lang::tr{'updatedatabase'}
$Lang::tr{'tripwirewarningdatabase'}

$Lang::tr{'localkey'}
$Lang::tr{'localkey'}

- $Lang::tr{'yes'} + $Lang::tr{'ok'}
- $Lang::tr{'no'} + $Lang::tr{'cancel'}
@@ -183,13 +223,13 @@ if ($tripwiresettings{'ACTION'} eq 'keyreset') print < -
$Lang::tr{'keyreset'} +
$Lang::tr{'keyreset'}
$Lang::tr{'tripwirewarningkeys'}

- $Lang::tr{'yes'} + $Lang::tr{'ok'}
- $Lang::tr{'no'} + $Lang::tr{'cancel'}
@@ -202,13 +242,13 @@ if ($tripwiresettings{'ACTION'} eq 'generatekeys') print < -
$Lang::tr{'generatekeys'} +
$Lang::tr{'generatekeys'}
$Lang::tr{'tripwirewarningkeys'}

- $Lang::tr{'yes'} + $Lang::tr{'ok'}
- $Lang::tr{'no'} + $Lang::tr{'cancel'}
@@ -221,6 +261,7 @@ END if ($tripwiresettings{'ACTION'} eq 'globalresetyes') { +&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";&Header::closebox(); $tripwiresettings{'ROOT'} = '/usr/sbin'; $tripwiresettings{'POLFILE'} = '/var/ipfire/tripwire/tw.pol'; $tripwiresettings{'DBFILE'} = '/var/ipfire/tripwire/$(HOSTNAME).twd'; @@ -241,7 +282,7 @@ $tripwiresettings{'MAILPROGRAM'} = '/usr/sbin/sendmail -oi -t'; $tripwiresettings{'SITEKEY'} = 'ipfire'; $tripwiresettings{'LOCALKEY'} = 'ipfire'; $tripwiresettings{'ACTION'} = ''; -system("/usr/local/bin/tripwirectrl readconfig"); +system("/usr/local/bin/tripwirectrl readconfig >/dev/null 2>&1"); open (FILE, ">${General::swroot}/tripwire/twcfg.txt") or die "Can't save tripwire config: $!"; flock (FILE, 2); print FILE </dev/null 2>&1l"); +system("/usr/local/bin/tripwirectrl keys ipfire ipfire >/dev/null 2>&1");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire'; } -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{'LOCALKEY'}");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';} -if ($tripwiresettings{'ACTION'} eq 'generatepolicyyes'){system("/usr/local/bin/tripwirectrl generatepolicy $tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'}");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';} -if ($tripwiresettings{'ACTION'} eq 'updatedatabaseyes'){system("/usr/local/bin/tripwirectrl updatedatabase $tripwiresettings{'LOCALKEY'} /var/ipfire/tripwire/report/$file");$tripwiresettings{'LOCALKEY'} = 'ipfire';} -if ($tripwiresettings{'ACTION'} eq 'generatereport'){system("/usr/local/bin/tripwirectrl generatereport");} +if ($tripwiresettings{'ACTION'} eq 'generatekeysyes'){&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";system("/usr/local/bin/tripwirectrl keys $tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'} >/dev/null 2>&1");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';} +if ($tripwiresettings{'ACTION'} eq 'keyresetyes'){&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";system("/usr/local/bin/tripwirectrl keys ipfire ipfire >/dev/null 2>&1");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';} +if ($tripwiresettings{'ACTION'} eq 'resetpolicyyes'){&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";system("/usr/local/bin/tripwirectrl resetpolicy tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'} >/dev/null 2>&1");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';} +if ($tripwiresettings{'ACTION'} eq 'generatepolicyyes'){&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";system("/usr/local/bin/tripwirectrl generatepolicy $tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'} >/dev/null 2>&1");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';} +if ($tripwiresettings{'ACTION'} eq 'updatedatabaseyes'){&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";system("/usr/local/bin/tripwirectrl updatedatabase $tripwiresettings{'LOCALKEY'} /var/ipfire/tripwire/report/$file >/dev/null 2>&1");$tripwiresettings{'LOCALKEY'} = 'ipfire';} +if ($tripwiresettings{'ACTION'} eq 'generatereport'){&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'tripwireoperating'}
";system("/usr/local/bin/tripwirectrl generatereport >/dev/null 2>&1");} +if ($tripwiresettings{'ACTION'} eq 'addcronyes'){system("/usr/local/bin/tripwirectrl addcron $tripwiresettings{'HOUR'} $tripwiresettings{'MINUTE'} >/dev/null 2>&1");} +if ($tripwiresettings{'ACTION'} eq 'deletecron'){system("/usr/local/bin/tripwirectrl disablecron $tripwiresettings{'CRON'} >/dev/null 2>&1");@cronjobs = `ls /etc/fcron.daily/tripwire* 2>/dev/null`;} ############################################################################################################################ ##################################################### Tripwire globale Optionen ############################################ &Header::openbox('100%', 'center', 'Tripwire'); print <
- + @@ -300,13 +342,13 @@ print < + + +
$Lang::tr{'basic options'}
$Lang::tr{'basic options'}
$Lang::tr{'emailreportlevel'}
$Lang::tr{'reportlevel'}
$Lang::tr{'mailmethod'}
-
-
-
END @@ -317,8 +359,8 @@ print < - - + +
$Lang::tr{'caption'}
$Lang::tr{'save settings'}
$Lang::tr{'restore settings'}
$Lang::tr{$Lang::tr{'save settings'}
$Lang::tr{$Lang::tr{'restore settings'}
END ; @@ -332,12 +374,11 @@ END &Header::openbox('100%', 'center', $Lang::tr{'generate tripwire keys and init'}); print <
- +
$Lang::tr{'keys'}
$Lang::tr{'keys'}
$Lang::tr{'sitekey'}
$Lang::tr{'localkey'}
@@ -345,13 +386,13 @@ print < - +
-
+
-
+ END @@ -362,13 +403,14 @@ print < - - + +
$Lang::tr{'caption'}
$Lang::tr{'generatekeys'}
$Lang::tr{'keyreset'}
$Lang::tr{$Lang::tr{'generatekeys'}
$Lang::tr{$Lang::tr{'keyreset'}
END ; } + &Header::closebox(); ############################################################################################################################ @@ -376,25 +418,24 @@ END &Header::openbox('100%', 'center', $Lang::tr{'tripwire functions'}); print <
+ + + + +
-
-
-
-
-
END ; @@ -404,10 +445,10 @@ print < - - - - + + + +
$Lang::tr{'caption'}
$Lang::tr{'generatepolicy'}
$Lang::tr{'resetpolicy'}
$Lang::tr{'generatereport'}
$Lang::tr{'updatedatabase'}
$Lang::tr{$Lang::tr{'generatepolicy'}
$Lang::tr{$Lang::tr{'resetpolicy'}
$Lang::tr{$Lang::tr{'generatereport'}
$Lang::tr{$Lang::tr{'updatedatabase'}
END ; @@ -420,11 +461,11 @@ END &Header::openbox('100%', 'center', $Lang::tr{'tripwire reports'}); print < +
-
+ - + +
$Lang::tr{'log view'}
$Lang::tr{'log view'}

END @@ -455,5 +496,45 @@ END &Header::closebox(); +############################################################################################################################ +####################################################### Tripwire Cronjob ################################################## +# +#&Header::openbox('100%', 'center', $Lang::tr{'tripwire cronjob'}); +#print < +# +# +#END +#; +#foreach my $cronjob (@cronjobs) {chomp $cronjob;my $time=$cronjob; $time=~s/\/etc\/fcron.daily\/tripwire//g;print"";} +#print < +#
+#

$cronjob at $time daily
+# +# +#
+# +#
+# +#
+#END +#; + +#if ($tripwiresettings{'ACTION'} eq 'croncaption') +#{ +#print < +# +# +# +# +#
$Lang::tr{'caption'}
$Lang::tr{'add cron'}
$Lang::tr{'delete cron'}
+#END +#; +#} +# +#&Header::closebox(); + &Header::closebigbox(); -&Header::closepage(); \ No newline at end of file +&Header::closepage();