-} elsif ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} eq "guardian" ){
- foreach my $key (keys %snortsettings){
- if ( $key !~ /^GUARDIAN/ ){
- delete $snortsettings{$key};
- }
- }
- &General::writehashpart("${General::swroot}/snort/settings", \%snortsettings);
- open(IGNOREFILE, ">$snortsettings{'GUARDIAN_IGNOREFILE'}") or die "Unable to write guardian ignore file $snortsettings{'GUARDIAN_IGNOREFILE'}";
- print IGNOREFILE $snortsettings{'GUARDIAN_IGNOREFILE_CONTENT'};
- close(IGNOREFILE);
- open(GUARDIAN, ">/var/ipfire/guardian/guardian.conf") or die "Unable to write guardian conf /var/ipfire/guardian/guardian.conf";
- print GUARDIAN <<END
-Interface $snortsettings{'GUARDIAN_INTERFACE'}
-HostGatewayByte $snortsettings{'GUARDIAN_HOSTGATEWAYBYTE'}
-LogFile $snortsettings{'GUARDIAN_LOGFILE'}
-AlertFile $snortsettings{'GUARDIAN_ALERTFILE'}
-IgnoreFile $snortsettings{'GUARDIAN_IGNOREFILE'}
-TargetFile $snortsettings{'GUARDIAN_TARGETFILE'}
-TimeLimit $snortsettings{'GUARDIAN_TIMELIMIT'}
-END
-;
- close(GUARDIAN);
- system('/usr/local/bin/snortctrl restart >/dev/null');
-}
- # INSTALLMD5 is not in the form, so not retrieved by getcgihash
- &General::readhash("${General::swroot}/snort/settings", \%snortsettings);
-
-if ($snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} || $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'}) {
-
- my @df = `/bin/df -B M /var`;
- foreach my $line (@df) {
- next if $line =~ m/^Filesystem/;
- my $return;
-
- if ($line =~ m/dev/ ) {
- $line =~ m/^.* (\d+)M.*$/;
- my @temp = split(/ +/,$line);
- if ($1<300) {
- $errormessage = "$Lang::tr{'not enough disk space'} < 300MB, /var $1MB";
- } else {
+ if ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} eq "snort" ) {
+ &General::writehash("${General::swroot}/snort/settings", \%snortsettings);
+ if ($snortsettings{'ENABLE_SNORT'} eq 'on')
+ {
+ system ('/usr/bin/touch', "${General::swroot}/snort/enable");
+ } else {
+ unlink "${General::swroot}/snort/enable";
+ }
+ if ($snortsettings{'ENABLE_SNORT_GREEN'} eq 'on')
+ {
+ system ('/usr/bin/touch', "${General::swroot}/snort/enable_green");
+ } else {
+ unlink "${General::swroot}/snort/enable_green";
+ }
+ if ($snortsettings{'ENABLE_SNORT_BLUE'} eq 'on')
+ {
+ system ('/usr/bin/touch', "${General::swroot}/snort/enable_blue");
+ } else {
+ unlink "${General::swroot}/snort/enable_blue";
+ }
+ if ($snortsettings{'ENABLE_SNORT_ORANGE'} eq 'on')
+ {
+ system ('/usr/bin/touch', "${General::swroot}/snort/enable_orange");
+ } else {
+ unlink "${General::swroot}/snort/enable_orange";
+ }
+ if ($snortsettings{'ENABLE_PREPROCESSOR_HTTP_INSPECT'} eq 'on')
+ {
+ system ('/usr/bin/touch', "${General::swroot}/snort/enable_preprocessor_http_inspect");
+ } else {
+ unlink "${General::swroot}/snort/enable_preprocessor_http_inspect";
+ }