--- /dev/null
+#!/usr/bin/perl
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+my $debug = 1;
+my @include = "";
+my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
+$Jahr = $Jahr + 1900;$Monat = $Monat + 1;
+$Monat = sprintf("%02d", $Monat);
+$Monatstag = sprintf("%02d", $Monatstag);
+$Stunden = sprintf("%02d", $Stunden);
+$Minuten = sprintf("%02d", $Minuten);
+
+if ($ARGV[0] eq 'include') {
+ &createinclude;
+ open(DATEI, ">/tmp/include") || die "Could not save temp include file";
+ print DATEI @include;
+ close(DATEI);
+ system("tar -cvzf /var/ipfire/backup/$Jahr$Monat$Monatstag-$Stunden:$Minuten.ipf --files-from=/tmp/include --exclude-from=/var/ipfire/backup/exclude");
+ system("rm /tmp/include");
+}
+
+if ($ARGV[0] eq 'exclude') {
+ &createinclude;
+ open(DATEI, ">/tmp/include") || die "Could not save temp include file";
+ print DATEI @include;
+ close(DATEI);
+ system("tar -cvzf /var/ipfire/backup/$Jahr$Monat$Monatstag-$Stunden:$Minuten.ipf --files-from='/tmp/include' --exclude-from='/var/ipfire/backup/exclude'");
+ system("rm /tmp/include");
+}
+
+sub createinclude(){
+
+ open(DATEI, "<${General::swroot}/backup/include") || die "Can not open include file";
+ my @Zeilen = <DATEI>;
+ close(DATEI);
+
+ foreach (@Zeilen){
+ if ( $_ =~ /\*/){
+ my @files = `ls $_`;
+ foreach (@files){
+ push(@include,$_);
+ }
+ }
+ else {push(@include,$_);}
+ }
+}
--- /dev/null
+/var/ipfire/*/settings
+/var/ipfire/*/*.conf
+/var/ipfire/*/*.pem
#srv/web/ipfire/cgi-bin/asterisk.cgi/calls
#srv/web/ipfire/cgi-bin/asterisk.cgi/conf
#srv/web/ipfire/cgi-bin/asterisk.cgi/status
+srv/web/ipfire/cgi-bin/backup.cgi
srv/web/ipfire/cgi-bin/chpasswd.cgi
srv/web/ipfire/cgi-bin/connections.cgi
srv/web/ipfire/cgi-bin/connscheduler.cgi
var/ipfire/mpfire/db/songs.db
var/ipfire/mpfire/playlist
var/ipfire/mpfire/settings
+usr/lib/perl5/site_perl/5.8.8/MP3/Info.pm
+usr/lib/perl5/site_perl/5.8.8/MP3/Tag.pm
+usr/lib/perl5/site_perl/5.8.8/MP3/Tag/File.pm
+usr/lib/perl5/site_perl/5.8.8/MP3/Tag/ID3v1.pm
+usr/lib/perl5/site_perl/5.8.8/MP3/Tag/ID3v2.pm
WARNING: translation string unused: archive not exist
WARNING: translation string unused: available updates
WARNING: translation string unused: average
-WARNING: translation string unused: backup
WARNING: translation string unused: backup config floppy
WARNING: translation string unused: backup configuration
WARNING: translation string unused: backup export key
WARNING: translation string unused: archive not exist
WARNING: translation string unused: available updates
WARNING: translation string unused: average
-WARNING: translation string unused: backup
WARNING: translation string unused: backup archive
WARNING: translation string unused: backup clear archive
WARNING: translation string unused: backup config floppy
--- /dev/null
+#!/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 %color = ();
+my %mainsettings = ();
+my %backupsettings = ();
+my %checked = ();
+my $message = "";
+my $errormessage = "";
+my @backups = `cd /var/ipfire/backup/ && ls *.ipf`;
+
+
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+
+&Header::showhttpheaders();
+&Header::getcgihash(\%backupsettings);
+
+&Header::openpage($Lang::tr{'backup'}, 1, "");
+&Header::openbigbox('100%', 'left', '', $errormessage);
+
+############################################################################################################################
+######################################## Scanne Verzeichnisse nach Mp3 Dateien #############################################
+
+if ( $backupsettings{'ACTION'} eq "backup" )
+{
+ if ( $backupsettings{'BACKUPLOGS'} eq "include" ){system("/usr/local/bin/backupctrl include");}
+ else {system("/usr/local/bin/backupctrl exclude");}
+}
+
+############################################################################################################################
+########################################### rekursiv nach neuen Mp3s Scannen ##############################################ä
+
+if ( $message ne "" ) { print "<font color='red'>$message</font>"; }
+
+&Header::openbox('100%', 'center', $Lang::tr{'backup'});
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='95%' cellspacing='0'>
+<tr><td align='left' width='40%'>$Lang::tr{'logs'}</td><td align='left'>include Logfiles <input type='radio' name='BACKUPLOGS' value='include' checked='checked'/>/
+ <input type='radio' name='BACKUPLOGS' value='exclude'/> exclude Logfiles</td></tr>
+<tr><td align='center' colspan='2'><input type='hidden' name='ACTION' value='backup' />
+ <input type='image' alt='$Lang::tr{'Scan for Files'}' title='$Lang::tr{'Scan for Files'}' src='/images/edit-find.png' /></td></tr>
+</table>
+</form>
+END
+;
+&Header::closebox();
+
+&Header::openbox('100%', 'center', $Lang::tr{'backups'});
+
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<table width='95%' cellspacing='0'>
+END
+;
+foreach (@backups){
+print "<tr><td align='left' width='40%'>$Lang::tr{'backup from'}</td><td align='left'>$_</td></tr>";
+}
+print <<END
+</table>
+</form>
+END
+;
+&Header::closebox();
+&Header::closebigbox();
+&Header::closepage();
&Header::getcgihash(\%snortsettings, {'wantfile' => 1, 'filevar' => 'FH'});
####################### Added for snort rules control #################################
-my $snortrulepath;
+my $snortrulepath; # change to "/etc/snort/rules" - maniac
my @snortconfig;
my $restartsnortrequired = 0;
my %snortrules;
# Loop over each line
foreach my $line (@snortconfig) {
- # Trim the line
+ # Trim the line
chomp $line;
+ # my @rules = `ls $snortrulepath`; With this loop the rule might be display with correct rulepath set
+ # foreach my $line (@rules) {
+ # # Trim the line
+ # chomp $line;
+
# Check for a line with .rules
if ($line =~ /\.rules$/) {
# Parse out rule file name
&Header::closebox();
####################### Added for snort rules control #################################
-if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable_green" || -e "${General::swroot}/snort/enable_blue" || -e "${General::swroot}/snort/enable_orange" ) {
- &Header::openbox('100%', 'LEFT', $Lang::tr{'intrusion detection system rules'});
- # Output display table for rule files
- print "<TABLE width='100%'><TR><TD VALIGN='TOP'><TABLE>";
-
- print "<form method='post'>";
-
- # Local vars
- my $ruledisplaycnt = 1;
- my $rulecnt = keys %snortrules;
- $rulecnt++;
- $rulecnt = $rulecnt / 2;
-
- # Loop over each rule file
- foreach my $rulefile (sort keys(%snortrules)) {
- my $rulechecked = '';
-
- # Check if reached half-way through rule file rules to start new column
- if ($ruledisplaycnt > $rulecnt) {
- print "</TABLE></TD><TD VALIGN='TOP'><TABLE>";
- $ruledisplaycnt = 0;
- }
-
- # Check if rule file is enabled
- if ($snortrules{$rulefile}{"State"} eq 'Enabled') {
- $rulechecked = 'CHECKED';
- }
-
- # Create rule file link, vars array, and display flag
- my $rulefilelink = "?RULEFILE=$rulefile";
- my $rulefiletoclose = '';
- my @queryvars = ();
- my $displayrulefilerules = 0;
-
- # Check for passed in query string
- if ($ENV{'QUERY_STRING'}) {
- # Split out vars
- @queryvars = split(/\&/, $ENV{'QUERY_STRING'});
-
- # Loop over values
- foreach $value (@queryvars) {
- # Split out var pairs
- ($var, $linkedrulefile) = split(/=/, $value);
-
- # Check if var is 'RULEFILE'
- if ($var eq 'RULEFILE') {
- # Check if rulefile equals linkedrulefile
- if ($rulefile eq $linkedrulefile) {
- # Set display flag
- $displayrulefilerules = 1;
-
- # Strip out rulefile from rulefilelink
- $rulefilelink =~ s/RULEFILE=$linkedrulefile//g;
- } else {
- # Add linked rule file to rulefilelink
- $rulefilelink .= "&RULEFILE=$linkedrulefile";
- }
- }
- }
- }
-
- # Strip out extra & & ? from rulefilelink
- $rulefilelink =~ s/^\?\&/\?/i;
-
- # Check for a single '?' and replace with page for proper link display
- if ($rulefilelink eq '?') {
- $rulefilelink = "ids.cgi";
- }
-
- # Output rule file name and checkbox
- print "<TR><TD CLASS='base' VALIGN='TOP'><INPUT TYPE='checkbox' NAME='SNORT_RULE_$rulefile' $rulechecked> <A HREF='$rulefilelink'>$rulefile</A></TD></TR>";
- print "<TR><TD CLASS='base' VALIGN='TOP'>";
-
- # Check for empty 'Description'
- if ($snortrules{$rulefile}{'Description'} eq '') {
- print "<TABLE WIDTH='100%'><TR><TD CLASS='base'>No description available</TD></TR>";
- } else {
- # Output rule file 'Description'
- print "<TABLE WIDTH='100%'><TR><TD CLASS='base'>$snortrules{$rulefile}{'Description'}</TD></TR>";
- }
-
- # Check for display flag
- if ($displayrulefilerules) {
- # Rule file definition rule display
- print "<TR><TD CLASS='base' VALIGN='TOP'><TABLE border=1><TR>";
-
- # Local vars
- my $ruledefdisplaycnt = 0;
- my $ruledefcnt = keys %{$snortrules{$rulefile}{"Definition"}};
- $ruledefcnt++;
- $ruledefcnt = $ruledefcnt / 2;
-
- # Loop over rule file rules
- foreach my $ruledef (sort {$a <=> $b} keys(%{$snortrules{$rulefile}{"Definition"}})) {
- # Local vars
- my $ruledefchecked = '';
-
- # If have display 2 rules, start new row
- if (($ruledefdisplaycnt % 2) == 0) {
- print "</TR><TR>";
- $ruledefdisplaycnt = 0;
- }
-
- # Check for rules state
- if ($snortrules{$rulefile}{'Definition'}{$ruledef}{'State'} eq 'Enabled') {
- $ruledefchecked = 'CHECKED';
- }
-
- # Create rule file rule's checkbox
- $checkboxname = "SNORT_RULE_$rulefile";
- $checkboxname .= "_$ruledef";
- print "<TD CLASS='base'><INPUT TYPE='checkbox' NAME='$checkboxname' $ruledefchecked> $snortrules{$rulefile}{'Definition'}{$ruledef}{'Description'}</TD>";
-
- # Increment count
- $ruledefdisplaycnt++;
- }
-
- # If do not have second rule for row, create empty cell
- if (($ruledefdisplaycnt % 2) != 0) {
- print "<TD CLASS='base'></TD>";
- }
-
- # Close display table
- print "</TR></TABLE></TD></TR>";
- }
-
- # Close display table
- print "</TABLE>";
-
- # Increment ruledisplaycnt
- $ruledisplaycnt++;
- }
+#if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable_green" || -e "${General::swroot}/snort/enable_blue" || -e "${General::swroot}/snort/enable_orange" ) {
+# &Header::openbox('100%', 'LEFT', $Lang::tr{'intrusion detection system rules'});
+# # Output display table for rule files
+# print "<TABLE width='100%'><TR><TD VALIGN='TOP'><TABLE>";
+#
+# print "<form method='post'>";
+#
+# # Local vars
+# my $ruledisplaycnt = 1;
+# my $rulecnt = keys %snortrules;
+# $rulecnt++;
+# $rulecnt = $rulecnt / 2;
+#
+# # Loop over each rule file
+# foreach my $rulefile (sort keys(%snortrules)) {
+# my $rulechecked = '';
+#
+# # Check if reached half-way through rule file rules to start new column
+# if ($ruledisplaycnt > $rulecnt) {
+# print "</TABLE></TD><TD VALIGN='TOP'><TABLE>";
+# $ruledisplaycnt = 0;
+# }
+#
+# # Check if rule file is enabled
+# if ($snortrules{$rulefile}{"State"} eq 'Enabled') {
+# $rulechecked = 'CHECKED';
+# }
+#
+# # Create rule file link, vars array, and display flag
+# my $rulefilelink = "?RULEFILE=$rulefile";
+# my $rulefiletoclose = '';
+# my @queryvars = ();
+# my $displayrulefilerules = 0;
+#
+# # Check for passed in query string
+# if ($ENV{'QUERY_STRING'}) {
+# # Split out vars
+# @queryvars = split(/\&/, $ENV{'QUERY_STRING'});
+#
+# # Loop over values
+# foreach $value (@queryvars) {
+# # Split out var pairs
+# ($var, $linkedrulefile) = split(/=/, $value);
+#
+# # Check if var is 'RULEFILE'
+# if ($var eq 'RULEFILE') {
+# # Check if rulefile equals linkedrulefile
+# if ($rulefile eq $linkedrulefile) {
+# # Set display flag
+# $displayrulefilerules = 1;
+#
+# # Strip out rulefile from rulefilelink
+# $rulefilelink =~ s/RULEFILE=$linkedrulefile//g;
+# } else {
+# # Add linked rule file to rulefilelink
+# $rulefilelink .= "&RULEFILE=$linkedrulefile";
+# }
+# }
+# }
+# }
+#
+# # Strip out extra & & ? from rulefilelink
+# $rulefilelink =~ s/^\?\&/\?/i;
+#
+# # Check for a single '?' and replace with page for proper link display
+# if ($rulefilelink eq '?') {
+# $rulefilelink = "ids.cgi";
+# }
+#
+# # Output rule file name and checkbox
+# print "<TR><TD CLASS='base' VALIGN='TOP'><INPUT TYPE='checkbox' NAME='SNORT_RULE_$rulefile' $rulechecked> <A HREF='$rulefilelink'>$rulefile</A></TD></TR>";
+# print "<TR><TD CLASS='base' VALIGN='TOP'>";
+#
+# # Check for empty 'Description'
+# if ($snortrules{$rulefile}{'Description'} eq '') {
+# print "<TABLE WIDTH='100%'><TR><TD CLASS='base'>No description available</TD></TR>";
+# } else {
+# # Output rule file 'Description'
+# print "<TABLE WIDTH='100%'><TR><TD CLASS='base'>$snortrules{$rulefile}{'Description'}</TD></TR>";
+# }
+#
+# # Check for display flag
+# if ($displayrulefilerules) {
+# # Rule file definition rule display
+# print "<TR><TD CLASS='base' VALIGN='TOP'><TABLE border=1><TR>";
+#
+# # Local vars
+# my $ruledefdisplaycnt = 0;
+# my $ruledefcnt = keys %{$snortrules{$rulefile}{"Definition"}};
+# $ruledefcnt++;
+# $ruledefcnt = $ruledefcnt / 2;
+#
+# # Loop over rule file rules
+# foreach my $ruledef (sort {$a <=> $b} keys(%{$snortrules{$rulefile}{"Definition"}})) {
+# # Local vars
+# my $ruledefchecked = '';
+#
+# # If have display 2 rules, start new row
+# if (($ruledefdisplaycnt % 2) == 0) {
+# print "</TR><TR>";
+# $ruledefdisplaycnt = 0;
+# }
+#
+# # Check for rules state
+# if ($snortrules{$rulefile}{'Definition'}{$ruledef}{'State'} eq 'Enabled') {
+# $ruledefchecked = 'CHECKED';
+# }
+#
+# # Create rule file rule's checkbox
+# $checkboxname = "SNORT_RULE_$rulefile";
+# $checkboxname .= "_$ruledef";
+# print "<TD CLASS='base'><INPUT TYPE='checkbox' NAME='$checkboxname' $ruledefchecked> $snortrules{$rulefile}{'Definition'}{$ruledef}{'Description'}</TD>";
+#
+# # Increment count
+# $ruledefdisplaycnt++;
+# }
+#
+# # If do not have second rule for row, create empty cell
+# if (($ruledefdisplaycnt % 2) != 0) {
+# print "<TD CLASS='base'></TD>";
+# }
+#
+# # Close display table
+# print "</TR></TABLE></TD></TR>";
+# }
+#
+# # Close display table
+# print "</TABLE>";
+#
+# # Increment ruledisplaycnt
+# $ruledisplaycnt++;
+# }
+#
+# print "</TD></TR></TABLE></TD></TR></TABLE>";
+# print <<END
+#<table width='100%'>
+#<tr>
+# <td width='33%'> </td>
+# <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+# <td width='33%'>
+# <!-- space for future online help link -->
+# </td>
+#</tr>
+#</table>
+#</form>
+#END
+#;
+# &Header::closebox();
+#}
- print "</TD></TR></TABLE></TD></TR></TABLE>";
- print <<END
-<table width='100%'>
-<tr>
- <td width='33%'> </td>
- <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
- <td width='33%'>
- <!-- space for future online help link -->
- </td>
-</tr>
-</table>
-</form>
-END
-;
- &Header::closebox();
-}
####################### End added for snort rules control #################################
&Header::closebigbox();
&Header::closepage();
my $s;
my $percent;
+
for($s=0;$s<$lines;$s++)
{
$show++;
if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";}
if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";}
+if ( $linesjc ne "0")
+{
my $dif;
$dif = $linesjc - $total;
$percent = $dif * 100 / $linesjc;
END
;
}
+}
print <<END
</TABLE>
END
if ( ($color % 10) == 9 ){print "<TR BGCOLOR='$color{'color9'}'>\n";}
if ( ($color % 10) == 0 ){print "<TR BGCOLOR='$color{'color10'}'>\n";}
+if ( $linesjc ne "0")
+{
my $dif;
$dif = $linesjc - $total;
$percent = $dif * 100 / $linesjc;
END
;
}
+}
print <<END
</TABLE>
END
'backup config floppy' => 'Backup-Konfiguration - Diskette',
'backup configuration' => 'Backup-Konfiguration:',
'backup export key' => 'Exportiere Backup Schlüssel',
+'backup from' => 'Backup von',
'backup generate key' => 'Erzeuge Schlüssel',
'backup import dat file' => 'Importiere eine Backup- (.dat) Datei',
'backup key' => 'Chriffrierungs-Schlüssel sichern',
'backup sets' => 'Datensicherungssätze',
'backup to floppy' => 'Datensicherung auf Diskette',
'backupprofile' => 'Falls die Wiederverbindung scheitert, auf Profil umschalten',
+'backups' => 'Sicherungen',
'bad characters in' => 'Ungültige Zeichen in ',
'bad characters in script field' => 'Nicht erlaubte Zeichen im Skriptnamen',
'bad characters in the telephone number field' => 'Nicht erlaubte(s) Zeichen im Feld Telefonnummer.',
'logging' => 'Logging',
'logging server' => 'Protokollierungs-Server',
'loginlogout' => 'Login/Logout',
+'logs' => 'Logdateien',
'lookup failed' => 'Reverse Lookup gescheitert',
'loosedirectorychecking' => 'Loose directorychecking',
'low' => 'Niedrig',
'backup explain key no2' => 'legacy floppy backups are not concerned with this key.',
'backup export key' => 'Export key',
'backup extract key' => 'Extract key',
+'backup from' => 'backup from',
'backup generate key' => 'Generate key',
'backup import dat file' => 'Import a backup (.dat) file',
'backup import key' => 'Import key',
'backup sets' => 'Backup Sets',
'backup to floppy' => 'Backup to floppy',
'backupprofile' => 'In case reconnection fails, switch to profile',
+'backups' => 'backups',
'bad characters in script field' => 'Bad characters in script field',
'bad characters in the telephone number field' => 'Bad characters in the telephone number field.',
'bad destination range' => 'The Destination port range has a first value that is greater than or equal to the second value.',
'logging' => 'Logging',
'logging server' => 'Logging server',
'loginlogout' => 'Login/Logout',
+'logs' => 'logs',
'lookup failed' => 'Reverse lookup failed',
'loosedirectorychecking' => 'Loosedirectorychecking',
'low' => 'Low',
--- /dev/null
+###############################################################################
+# This file is part of the IPCop Firewall. #
+# #
+# IPCop 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 2 of the License, or #
+# (at your option) any later version. #
+# #
+# IPCop 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 IPCop; if not, write to the Free Software #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+# #
+# Makefiles are based on LFSMake, which is #
+# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com> #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = ipfire
+
+THISAPP = backup-$(VER)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = backup
+PAK_VER = 1
+
+DESCDE = "In Backup sind alle notwendigen Dateien für das Backup des IPFire enthalten"
+DESCEN = "Backup contains all Files necessary for backup the IPFire"
+DEPS = "backup"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects =
+
+install : $(TARGET)
+
+check :
+
+download :
+
+md5 :
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ -mkdir -p /var/ipfire/backup/bin
+ install -v -m 755 $(DIR_SRC)/config/backup/backup.pl /var/ipfire/backup/bin
+ install -v -m 644 $(DIR_SRC)/config/backup/include /var/ipfire/backup/
+ install -v -m 644 $(DIR_SRC)/config/backup/exclude /var/ipfire/backup/
+ @$(POSTBUILD)
ipfiremake asterisk
ipfiremake mpg123
ipfiremake mpfire
+ ipfiremake backup
ipfiremake libmad
ipfiremake libogg
ipfiremake libvorbis
print FILE "forwarded incoming GREEN ($settings{'GREEN_DEV'})|ipac~fi|$settings{'GREEN_DEV'}|all|||\n";
print FILE "forwarded outgoing GREEN ($settings{'GREEN_DEV'})|ipac~fo|$settings{'GREEN_DEV'}|all|||\n";
-if ($settings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/ )
+if ($settings{'CONFIG_TYPE'} =~ /^(2|4)$/ )
{
print FILE "incoming ORANGE ($settings{'ORANGE_DEV'})|ipac~o|$settings{'ORANGE_DEV'}|all|||\n";
print FILE "outgoing ORANGE ($settings{'ORANGE_DEV'})|ipac~i|$settings{'ORANGE_DEV'}|all|||\n";
print FILE "forwarded outgoing ORANGE ($settings{'ORANGE_DEV'})|ipac~fo|$settings{'ORANGE_DEV'}|all|||\n";
}
-if ($settings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/ )
+if ($settings{'CONFIG_TYPE'} =~ /^(3|4)$/ )
{
print FILE "incoming BLUE ($settings{'BLUE_DEV'})|ipac~o|$settings{'BLUE_DEV'}|all|||\n";
print FILE "outgoing BLUE ($settings{'BLUE_DEV'})|ipac~i|$settings{'BLUE_DEV'}|all|||\n";
else
exit 1 ## Add error handling here
fi
- DEVICES+="`cat /var/ipfire/red/iface` "
+ DEVICES+=`cat /var/ipfire/red/iface`
fi
COUNT=`echo $HOME_NET | wc -m`
start)
for DEVICE in $DEVICES; do
boot_mesg "Starting Intrusion Detection System on $DEVICE..."
- /usr/sbin/snort -c /etc/snort/snort.conf -i $DEVICE -D -l /var/log/snort --pid-path /var/run/snort_$DEVICE.pid
+ /usr/sbin/snort -c /etc/snort/snort.conf -i $DEVICE -D -l /var/log/snort --pid-path /var/run/
evaluate_retval
chmod 644 /var/run/snort_$DEVICE.pid
done
if [ -r /var/run/snort_$ORANGE_DEV.pid ]; then
DEVICES+="$ORANGE_DEV "
fi
- if [ "$ENABLE_SNORT" == "on" ]; then
- DEVICES+="`cat /var/ipfire/red/iface` "
+
+ RED=`cat /var/ipfire/red/iface`
+ if [ -r /var/run/snort_$RED.pid ]; then
+ DEVICES+=`cat /var/ipfire/red/iface`
fi
- for DEVICE in $DEVICES; do
+ for DEVICE in $DEVICES; do
boot_mesg "Stopping Intrusion Detection System on $DEVICE..."
killproc -p /var/run/snort_$DEVICE.pid /var/run
done
+
+ rm /var/run/snort_*
;;
status)