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