]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - html/cgi-bin/tripwire.cgi
Tripwire fertig fuer die BETA
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / tripwire.cgi
1 #!/usr/bin/perl
2 #
3 # IPFire CGIs
4 #
5 # This code is distributed under the terms of the GPL
6 #
7 # (c) The IPFire Team
8
9 use strict;
10 # enable only the following on debugging purpose
11 use warnings;
12 use CGI::Carp 'fatalsToBrowser';
13
14 require '/var/ipfire/general-functions.pl';
15 require "${General::swroot}/lang.pl";
16 require "${General::swroot}/header.pl";
17
18 my %tripwiresettings = ();
19 my %checked = ();
20 my %netsettings = ();
21 my $message = "";
22 my $errormessage = "";
23 my @Logs = qx(ls -r /var/ipfire/tripwire/report/);
24 my $file = `ls -tr /var/ipfire/tripwire/report/ | tail -1`;
25 my @cronjobs = `ls /etc/fcron.daily/tripwire*`;
26 my $Log =$Lang::tr{'no log selected'};
27
28 ############################################################################################################################
29 ################################################# Tripwire Default Variablen ################################################
30
31 $tripwiresettings{'ROOT'} = '/usr/sbin';
32 $tripwiresettings{'POLFILE'} = '/var/ipfire/tripwire/tw.pol';
33 $tripwiresettings{'DBFILE'} = '/var/ipfire/tripwire/$(HOSTNAME).twd';
34 $tripwiresettings{'REPORTFILE'} = '/var/ipfire/tripwire/report/$(DATE).twr';
35 $tripwiresettings{'SITEKEYFILE'} = '/var/ipfire/tripwire/site.key';
36 $tripwiresettings{'LOCALKEYFILE'} = '/var/ipfire/tripwire/local.key';
37 $tripwiresettings{'EDITOR'} = '/usr/bin/vi';
38 $tripwiresettings{'LATEPROMPTING'} = 'false';
39 $tripwiresettings{'LOOSEDIRECTORYCHECKING'} = 'false';
40 $tripwiresettings{'MAILNOVIOLATIONS'} = 'false';
41 $tripwiresettings{'EMAILREPORTLEVEL'} = '3';
42 $tripwiresettings{'REPORTLEVEL'} = '3';
43 $tripwiresettings{'MAILMETHOD'} = 'SENDMAIL';
44 $tripwiresettings{'SMTPHOST'} = 'ipfire.myipfire.de';
45 $tripwiresettings{'SMTPPORT'} = '25';
46 $tripwiresettings{'SYSLOGREPORTING'} = 'false';
47 $tripwiresettings{'MAILPROGRAM'} = '/usr/sbin/sendmail -oi -t';
48 $tripwiresettings{'SITEKEY'} = 'ipfire';
49 $tripwiresettings{'LOCALKEY'} = 'ipfire';
50 $tripwiresettings{'ACTION'} = '';
51
52 &General::readhash("${General::swroot}/tripwire/settings", \%tripwiresettings);
53
54 ############################################################################################################################
55 ######################################################### Tripwire HTML Part ###############################################
56
57 &Header::showhttpheaders();
58
59 &Header::getcgihash(\%tripwiresettings);
60 &Header::openpage('Tripwire', 1,);
61 &Header::openbigbox('100%', 'left', '', $errormessage);
62
63 ############################################################################################################################
64 ############################################### Tripwire Config Datei erstellen ############################################
65
66 if ($tripwiresettings{'ACTION'} eq $Lang::tr{'save'})
67 {
68 system("/usr/local/bin/tripwirectrl readconfig >& /dev/null");
69 open (FILE, ">${General::swroot}/tripwire/twcfg.txt") or die "Can't save tripwire config: $!";
70 flock (FILE, 2);
71
72 print FILE <<END
73
74 ROOT =$tripwiresettings{'ROOT'}
75 POLFILE =$tripwiresettings{'POLFILE'}
76 DBFILE =$tripwiresettings{'DBFILE'}
77 REPORTFILE =$tripwiresettings{'REPORTFILE'}
78 SITEKEYFILE =$tripwiresettings{'SITEKEYFILE'}
79 LOCALKEYFILE =$tripwiresettings{'LOCALKEYFILE'}
80 EDITOR =$tripwiresettings{'EDITOR'}
81 LATEPROMPTING =$tripwiresettings{'LATEPROMPTING'}
82 LOOSEDIRECTORYCHECKING =$tripwiresettings{'LOOSEDIRECTORYCHECKING'}
83 MAILNOVIOLATIONS =$tripwiresettings{'MAILNOVIOLATIONS'}
84 EMAILREPORTLEVEL =$tripwiresettings{'EMAILREPORTLEVEL'}
85 REPORTLEVEL =$tripwiresettings{'REPORTLEVEL'}
86 MAILMETHOD =$tripwiresettings{'MAILMETHOD'}
87 SMTPHOST =$tripwiresettings{'SMTPHOST'}
88 SMTPPORT =$tripwiresettings{'SMTPPORT'}
89 SYSLOGREPORTING =$tripwiresettings{'SYSLOGREPORTING'}
90 MAILPROGRAM =$tripwiresettings{'MAILPROGRAM'}
91
92 END
93 ;
94 close FILE;
95
96 &General::writehash("${General::swroot}/tripwire/settings", \%tripwiresettings);
97 system("/usr/local/bin/tripwirectrl lockconfig >& /dev/null");
98 }
99
100 ############################################################################################################################
101 ################################################## Sicherheitsabfrage für CGI ##############################################
102
103 if ($tripwiresettings{'ACTION'} eq 'addcron')
104 {
105 print <<END
106 <br />
107 <table width='95%' cellspacing='0'>
108 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'add cron'}</b>
109 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
110 <tr><td align='center' colspan='2'>HH<input type='text' size='2' name='HOUR' value='08'/>MM<input type='text' size='2' name='MINUTE' value='00'/><br /><br /></td></tr>
111 <tr><td align='right' width='50%'>
112 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
113 <input type='hidden' name='ACTION' value='addcronyes' /></form></td>
114 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
115 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
116 <input type='hidden' name='ACTION' value='cancel' /></form></td>
117 </tr>
118 </table>
119 END
120 ;
121 }
122
123 if ($tripwiresettings{'ACTION'} eq 'globalreset')
124 {
125 print <<END
126 <br />
127 <table width='95%' cellspacing='0'>
128 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'resetglobals'}</b>
129 <tr><td colspan='2' align='center'><font color=red>$Lang::tr{'defaultwarning'}<br /><br /></font></td></tr>
130 <tr><td align='right' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
131 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
132 <input type='hidden' name='ACTION' value='globalresetyes' /></form></td>
133 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
134 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
135 <input type='hidden' name='ACTION' value='cancel' /></form></td>
136 </tr>
137 </table>
138 END
139 ;
140 }
141
142 if ($tripwiresettings{'ACTION'} eq 'generatepolicypw')
143 {
144 print <<END
145 <br />
146 <table width='95%' cellspacing='0'>
147 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'generatepolicy'}</b>
148 <tr><td colspan='2' align='center'><font color=red>$Lang::tr{'tripwirewarningpolicy'}<br /><br /></font></td></tr>
149 <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'sitekey'}</td><td align='left'><input type='password' name='SITEKEY' value='$tripwiresettings{'SITEKEY'}' size="30" /></td></tr>
150 <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'localkey'}</td><td align='left'><input type='password' name='LOCALKEY' value='$tripwiresettings{'LOCALKEY'}' size="30" /><br /><br /></td></tr>
151 <tr><td align='right' width='50%'>
152 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
153 <input type='hidden' name='ACTION' value='generatepolicyyes' /></form></td>
154 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
155 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
156 <input type='hidden' name='ACTION' value='cancel' /></form></td>
157 </tr>
158 </table>
159 END
160 ;
161 }
162
163 if ($tripwiresettings{'ACTION'} eq 'policyresetpw')
164 {
165 print <<END
166 <br />
167 <table width='95%' cellspacing='0'>
168 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'resetpolicy'}</b>
169 <tr><td colspan='2' align='center'><font color=red>$Lang::tr{'tripwirewarningpolicy'}<br /><br /></font></td></tr>
170 <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'sitekey'}</td><td align='left'><input type='password' name='SITEKEY' value='$tripwiresettings{'SITEKEY'}' size="30" /></td></tr>
171 <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'localkey'}</td><td align='left'><input type='password' name='LOCALKEY' value='$tripwiresettings{'LOCALKEY'}' size="30" /><br /><br /></td></tr>
172 <tr><td align='right' width='50%'>
173 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
174 <input type='hidden' name='ACTION' value='resetpolicyyes' /></form></td>
175 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
176 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
177 <input type='hidden' name='ACTION' value='cancel' /></form></td>
178 </tr>
179 </table>
180 END
181 ;
182 }
183
184 if ($tripwiresettings{'ACTION'} eq 'updatedatabasepw')
185 {
186 print <<END
187 <br />
188 <table width='95%' cellspacing='0'>
189 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'updatedatabase'}</b>
190 <tr><td colspan='2' align='center'><font color=red>$Lang::tr{'tripwirewarningdatabase'}<br /><br /></font></td></tr>
191 <tr><td align='left' width='40%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'localkey'}</td><td align='left'><input type='password' name='LOCALKEY' value='$tripwiresettings{'LOCALKEY'}' size="30" /><br /><br /></td></tr>
192 <tr><td align='right' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
193 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
194 <input type='hidden' name='ACTION' value='updatedatabaseyes' /></form></td>
195 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
196 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
197 <input type='hidden' name='ACTION' value='cancel' /></form></td>
198 </tr>
199 </table>
200 END
201 ;
202 }
203 if ($tripwiresettings{'ACTION'} eq 'keyreset')
204 {
205 print <<END
206 <br />
207 <table width='95%' cellspacing='0'>
208 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'keyreset'}</b>
209 <tr><td colspan='2' align='center'><font color=red>$Lang::tr{'tripwirewarningkeys'}<br /><br /></font></td></tr>
210 <tr><td align='right' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
211 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
212 <input type='hidden' name='ACTION' value='keyresetyes' /></form></td>
213 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
214 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
215 <input type='hidden' name='ACTION' value='cancel' /></form></td>
216 </tr>
217 </table>
218 END
219 ;
220 }
221
222 if ($tripwiresettings{'ACTION'} eq 'generatekeys')
223 {
224 print <<END
225 <br />
226 <table width='95%' cellspacing='0'>
227 <tr><td bgcolor='${Header::table1colour}' colspan='2' align='center'><b>$Lang::tr{'generatekeys'}</b>
228 <tr><td colspan='2' align='center'><font color=red>$Lang::tr{'tripwirewarningkeys'}<br /><br /></font></td></tr>
229 <tr><td align='right' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
230 $Lang::tr{'ok'} <input type='image' alt='$Lang::tr{'ok'}' src='/images/edit-redo.png' />
231 <input type='hidden' name='ACTION' value='generatekeysyes' /></form></td>
232 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
233 <input type='image' alt='$Lang::tr{'cancel'}' src='/images/dialog-error.png' /> $Lang::tr{'cancel'}
234 <input type='hidden' name='ACTION' value='cancel' /></form></td>
235 </tr>
236 </table>
237 END
238 ;
239 }
240
241 ############################################################################################################################
242 ######################################################## Tripwire Funktionen ###############################################
243
244 if ($tripwiresettings{'ACTION'} eq 'globalresetyes')
245 {
246 &Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";
247 $tripwiresettings{'ROOT'} = '/usr/sbin';
248 $tripwiresettings{'POLFILE'} = '/var/ipfire/tripwire/tw.pol';
249 $tripwiresettings{'DBFILE'} = '/var/ipfire/tripwire/$(HOSTNAME).twd';
250 $tripwiresettings{'REPORTFILE'} = '/var/ipfire/tripwire/report/$(DATE).twr';
251 $tripwiresettings{'SITEKEYFILE'} = '/var/ipfire/tripwire/site.key';
252 $tripwiresettings{'LOCALKEYFILE'} = '/var/ipfire/tripwire/local.key';
253 $tripwiresettings{'EDITOR'} = '/usr/bin/vi';
254 $tripwiresettings{'LATEPROMPTING'} = 'false';
255 $tripwiresettings{'LOOSEDIRECTORYCHECKING'} = 'false';
256 $tripwiresettings{'MAILNOVIOLATIONS'} = 'false';
257 $tripwiresettings{'EMAILREPORTLEVEL'} = '3';
258 $tripwiresettings{'REPORTLEVEL'} = '3';
259 $tripwiresettings{'MAILMETHOD'} = 'SENDMAIL';
260 $tripwiresettings{'SMTPHOST'} = 'ipfire.myipfire.de';
261 $tripwiresettings{'SMTPPORT'} = '25';
262 $tripwiresettings{'SYSLOGREPORTING'} = 'false';
263 $tripwiresettings{'MAILPROGRAM'} = '/usr/sbin/sendmail -oi -t';
264 $tripwiresettings{'SITEKEY'} = 'ipfire';
265 $tripwiresettings{'LOCALKEY'} = 'ipfire';
266 $tripwiresettings{'ACTION'} = '';
267 system("/usr/local/bin/tripwirectrl readconfig >& /dev/null");
268 open (FILE, ">${General::swroot}/tripwire/twcfg.txt") or die "Can't save tripwire config: $!";
269 flock (FILE, 2);
270 print FILE <<END
271
272 ROOT =$tripwiresettings{'ROOT'}
273 POLFILE =$tripwiresettings{'POLFILE'}
274 DBFILE =$tripwiresettings{'DBFILE'}
275 REPORTFILE =$tripwiresettings{'REPORTFILE'}
276 SITEKEYFILE =$tripwiresettings{'SITEKEYFILE'}
277 LOCALKEYFILE =$tripwiresettings{'LOCALKEYFILE'}
278 EDITOR =$tripwiresettings{'EDITOR'}
279 LATEPROMPTING =$tripwiresettings{'LATEPROMPTING'}
280 LOOSEDIRECTORYCHECKING =$tripwiresettings{'LOOSEDIRECTORYCHECKING'}
281 MAILNOVIOLATIONS =$tripwiresettings{'MAILNOVIOLATIONS'}
282 EMAILREPORTLEVEL =$tripwiresettings{'EMAILREPORTLEVEL'}
283 REPORTLEVEL =$tripwiresettings{'REPORTLEVEL'}
284 MAILMETHOD =$tripwiresettings{'MAILMETHOD'}
285 SMTPHOST =$tripwiresettings{'SMTPHOST'}
286 SMTPPORT =$tripwiresettings{'SMTPPORT'}
287 SYSLOGREPORTING =$tripwiresettings{'SYSLOGREPORTING'}
288 MAILPROGRAM =$tripwiresettings{'MAILPROGRAM'}
289
290 END
291 ;
292 close FILE;
293 &General::writehash("${General::swroot}/tripwire/settings", \%tripwiresettings);
294 system("/usr/local/bin/tripwirectrl lockconfig >& /dev/null");
295 system("/usr/local/bin/tripwirectrl keys ipfire ipfire >& /dev/null");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';
296 }
297 if ($tripwiresettings{'ACTION'} eq 'generatekeysyes'){&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";system("/usr/local/bin/tripwirectrl keys $tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'} >& /dev/null");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';}
298 if ($tripwiresettings{'ACTION'} eq 'keyresetyes'){&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";system("/usr/local/bin/tripwirectrl keys ipfire ipfire >& /dev/null");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';}
299 if ($tripwiresettings{'ACTION'} eq 'resetpolicyyes'){&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";system("/usr/local/bin/tripwirectrl resetpolicy tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'} >& /dev/null");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';}
300 if ($tripwiresettings{'ACTION'} eq 'generatepolicyyes'){&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";system("/usr/local/bin/tripwirectrl generatepolicy $tripwiresettings{'SITEKEY'} $tripwiresettings{'LOCALKEY'} >& /dev/null");$tripwiresettings{'SITEKEY'} = 'ipfire';$tripwiresettings{'LOCALKEY'} = 'ipfire';}
301 if ($tripwiresettings{'ACTION'} eq 'updatedatabaseyes'){&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";system("/usr/local/bin/tripwirectrl updatedatabase $tripwiresettings{'LOCALKEY'} /var/ipfire/tripwire/report/$file >& /dev/null");$tripwiresettings{'LOCALKEY'} = 'ipfire';}
302 if ($tripwiresettings{'ACTION'} eq 'generatereport'){&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'tripwireoperating'}</font></center>";system("/usr/local/bin/tripwirectrl generatereport >& /dev/null");}
303 if ($tripwiresettings{'ACTION'} eq 'addcronyes'){system("/usr/local/bin/tripwirectrl addcron $tripwiresettings{'HOUR'} $tripwiresettings{'MINUTE'} >& /dev/null");}
304 if ($tripwiresettings{'ACTION'} eq 'deletecron'){system("/usr/local/bin/tripwirectrl disablecron $tripwiresettings{'CRON'} >& /dev/null");@cronjobs = `ls /etc/fcron.daily/tripwire*`;}
305
306 ############################################################################################################################
307 ##################################################### Tripwire globale Optionen ############################################
308
309 &Header::openbox('100%', 'center', 'Tripwire');
310 print <<END
311 <hr />
312 <br />
313
314 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
315 <table width='95%' cellspacing='0'>
316 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>$Lang::tr{'basic options'}</b></td></tr>
317 <tr><td align='left' width='40%'>$Lang::tr{'emailreportlevel'}</td><td align='left'><input type='text' name='EMAILREPORTLEVEL' value='$tripwiresettings{'EMAILREPORTLEVEL'}' size="30" /></td></tr>
318 <tr><td align='left' width='40%'>$Lang::tr{'reportlevel'}</td><td align='left'><input type='text' name='REPORTLEVEL' value='$tripwiresettings{'REPORTLEVEL'}' size="30" /></td></tr>
319 <tr><td align='left' width='40%'>$Lang::tr{'mailmethod'}</td><td align='left'><input type='text' name='MAILMETHOD' value='$tripwiresettings{'MAILMETHOD'}' size="30" /></td></tr>
320 <tr><td align='left' width='40%'>$Lang::tr{'smtphost'}</td><td align='left'><input type='text' name='SMTPHOST' value='$tripwiresettings{'SMTPHOST'}' size="30" /></td></tr>
321 <tr><td align='left' width='40%'>$Lang::tr{'smtpport'}</td><td align='left'><input type='text' name='SMTPPORT' value='$tripwiresettings{'SMTPPORT'}' size="30" /></td></tr>
322 <tr><td align='left' width='40%'>$Lang::tr{'mailprogramm'}</td><td align='left'><input type='text' name='MAILPROGRAM' value='$tripwiresettings{'MAILPROGRAM'}' size="30" /></td></tr>
323 </table>
324 <br />
325 <table width='10%' cellspacing='0'>
326 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
327 <input type='hidden' name='ACTION' value=$Lang::tr{'save'} />
328 <input type='image' alt='$Lang::tr{'save'}' src='/images/media-floppy.png' /></form></td>
329 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
330 <input type='hidden' name='ACTION' value='globalreset' />
331 <input type='image' alt='$Lang::tr{'reset'}' src='/images/reload.gif' /></form></td>
332 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
333 <input type='hidden' name='ACTION' value='globalcaption' />
334 <input type='image' alt='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr>
335 </table>
336 </from>
337 END
338 ;
339 if ($tripwiresettings{'ACTION'} eq 'globalcaption')
340 {
341 print <<END
342 <br />
343 <table width='95%' cellspacing='0'>
344 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
345 <tr><td align='right' width='33%'><img src='/images/media-floppy.png' /></td><td align='left'>$Lang::tr{'save settings'}</td></tr>
346 <tr><td align='right' width='33%'><img src='/images/reload.gif' /></td><td align='left'>$Lang::tr{'restore settings'}</td></tr>
347 </table>
348 END
349 ;
350
351 }
352
353 &Header::closebox();
354
355 ############################################################################################################################
356 ################################################### Tripwire Init Policy and keygen ########################################
357
358 &Header::openbox('100%', 'center', $Lang::tr{'generate tripwire keys and init'});
359 print <<END
360 <hr />
361 <br />
362
363 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
364 <table width='95%' cellspacing='0'>
365 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>$Lang::tr{'keys'}</b></td></tr>
366 <tr><td align='left' width='40%'>$Lang::tr{'sitekey'}</td><td align='left'><input type='password' name='SITEKEY' value='$tripwiresettings{'SITEKEY'}' size="30" /></td></tr>
367 <tr><td align='left' width='40%'>$Lang::tr{'localkey'}</td><td align='left'><input type='password' name='LOCALKEY' value='$tripwiresettings{'LOCALKEY'}' size="30" /></td></tr>
368 </table>
369 <br />
370 <table width='10%' cellspacing='0'>
371 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
372 <input type='hidden' name='ACTION' value='generatekeys'/>
373 <input type='image' alt='$Lang::tr{'generatekeys'}' src='/images/system-lock-screen.png' /></form></td>
374 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
375 <input type='hidden' name='ACTION' value='keyreset' />
376 <input type='image' alt='$Lang::tr{'reset'}' src='/images/reload.gif' /></form></td>
377 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
378 <input type='hidden' name='ACTION' value='keycaption' />
379 <input type='image' alt='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr>
380 </table>
381 </from>
382 END
383 ;
384 if ($tripwiresettings{'ACTION'} eq 'keycaption')
385 {
386 print <<END
387 <br />
388 <table width='95%' cellspacing='0'>
389 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
390 <tr><td align='right' width='33%'><img src='/images/system-lock-screen.png' /></td><td align='left'>$Lang::tr{'generatekeys'}</td></tr>
391 <tr><td align='right' width='33%'><img src='/images/reload.gif' /></td><td align='left'>$Lang::tr{'keyreset'}</td></tr>
392 </table>
393 END
394 ;
395
396 }
397
398 &Header::closebox();
399
400 ############################################################################################################################
401 ################################################# Tripwire general functions ###############################################
402
403 &Header::openbox('100%', 'center', $Lang::tr{'tripwire functions'});
404 print <<END
405 <hr />
406 <br />
407
408 <table width='95%' cellspacing='0'>
409 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
410 <input type='hidden' name='ACTION' value='generatepolicypw'/>
411 <input type='image' alt='$Lang::tr{'generatepolicy'}' src='/images/document-new.png' /></form></td>
412 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
413 <input type='hidden' name='ACTION' value='policyresetpw' />
414 <input type='image' alt='$Lang::tr{'resetpolicy'}' src='/images/reload.gif' /></form></td>
415 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
416 <input type='hidden' name='ACTION' value='generatereport' />
417 <input type='image' alt='$Lang::tr{'generatereport'}' src='/images/document-properties.png' /></form></td>
418 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
419 <input type='hidden' name='ACTION' value='updatedatabasepw' />
420 <input type='image' alt='$Lang::tr{'updatedatabase'}' src='/images/network-server.png' /></form></td>
421 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
422 <input type='hidden' name='ACTION' value='policycaption' />
423 <input type='image' alt='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr>
424 </table>
425 END
426 ;
427 if ($tripwiresettings{'ACTION'} eq 'policycaption')
428 {
429 print <<END
430 <br />
431 <table width='95%' cellspacing='0'>
432 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
433 <tr><td align='right' width='33%'><img src='/images/document-new.png' /></td><td align='left'>$Lang::tr{'generatepolicy'}</td></tr>
434 <tr><td align='right' width='33%'><img src='/images/reload.gif' /></td><td align='left'>$Lang::tr{'resetpolicy'}</td></tr>
435 <tr><td align='right' width='33%'><img src='/images/document-properties.png' /></td><td align='left'>$Lang::tr{'generatereport'}</td></tr>
436 <tr><td align='right' width='33%'><img src='/images/network-server.png' /></td><td align='left'>$Lang::tr{'updatedatabase'}</td></tr>
437 </table>
438 END
439 ;
440
441 }
442 &Header::closebox();
443
444 ############################################################################################################################
445 ####################################################### Tripwire Log View ##################################################
446
447 &Header::openbox('100%', 'center', $Lang::tr{'tripwire reports'});
448 print <<END
449 <hr />
450 <br />
451 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
452 <table width='95%' cellspacing='0'>
453 <tr><td bgcolor='${Header::table1colour}' colspan='3' align='left'><b>$Lang::tr{'log view'}</b></td></tr>
454 <tr><td colspan='3' align='left'><br /></td></tr>
455 <tr><td align='left'><select name='LOG' style="width: 500px">
456 END
457 ;
458 foreach my $log (@Logs) {chomp $log;print"<option value='$log'>$log</option>";}
459 print <<END
460
461 </select></td><td align='left'><input type='hidden' name='ACTION' value='showlog' /><input type='image' alt='view Log' src='/images/format-justify-fill.png' /></td></tr>
462 </table>
463 </form>
464 END
465 ;
466 if ($tripwiresettings{'ACTION'} eq 'showlog')
467 {
468 $Log = qx(/usr/local/bin/tripwirectrl tripwirelog $tripwiresettings{'LOG'});
469 $Log=~s/--cfgfile \/var\/ipfire\/tripwire\/tw.cfg --polfile \/var\/ipfire\/tripwire\/tw.pol//g;
470 print <<END
471 <table width='95%' cellspacing='0'>
472 <tr><td><br /></td></tr>
473 <tr><td><pre>$Log</pre></td></tr>
474 <tr><td><br /></td></tr>
475 <tr><td align=center>$tripwiresettings{'LOG'}</td></tr>
476 </table>
477 END
478 ;
479
480 }
481
482 &Header::closebox();
483
484 ############################################################################################################################
485 ####################################################### Tripwire Cronjob ##################################################
486
487 &Header::openbox('100%', 'center', $Lang::tr{'tripwire cronjobs'});
488 print <<END
489 <hr />
490 <br />
491 <table width='95%' cellspacing='0'>
492 <tr><td colspan='3' align='left'><br /></td></tr>
493 END
494 ;
495 foreach my $cronjob (@cronjobs) {chomp $cronjob;my $time=$cronjob; $time=~s/\/etc\/fcron.daily\/tripwire//g;print"<form method='post' action='$ENV{'SCRIPT_NAME'}'><tr><td align='left' colspan='2'>$cronjob at $time daily</td><td><input type='hidden' name='ACTION' value='deletecron' /><input type='hidden' name='CRON' value='$time' /><input type='image' alt='delete cron' src='/images/user-trash.png' /></td></tr></form>";}
496 print <<END
497 </table>
498 <br />
499 <table width='10%' cellspacing='0'>
500 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
501 <input type='hidden' name='ACTION' value='addcron'/>
502 <input type='image' alt='$Lang::tr{'add cron'}' src='/images/appointment-new.png' /></form></td>
503 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
504 <input type='hidden' name='ACTION' value='croncaption' />
505 <input type='image' alt='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr>
506 </table>
507 END
508 ;
509
510 if ($tripwiresettings{'ACTION'} eq 'croncaption')
511 {
512 print <<END
513 <br />
514 <table width='95%' cellspacing='0'>
515 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
516 <tr><td align='right' width='33%'><img src='/images/appointment-new.png' /></td><td align='left'>$Lang::tr{'add cron'}</td></tr>
517 <tr><td align='right' width='33%'><img src='/images/user-trash.png' /></td><td align='left'>$Lang::tr{'delete cron'}</td></tr>
518 </table>
519 END
520 ;
521 }
522
523 &Header::closebox();
524
525 &Header::closebigbox();
526 &Header::closepage();