]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Korrekturen im IDS System
authormaniacikarus <maniacikarus@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Mon, 9 Jul 2007 16:51:43 +0000 (16:51 +0000)
committermaniacikarus <maniacikarus@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Mon, 9 Jul 2007 16:51:43 +0000 (16:51 +0000)
Division by 0 in den grafischen Firewallogs unterbunden
Backup Loesung fuer IPFire angefangen
fehlende Perl Module ins MPFire Paket eingebunden
Writeipac auf neue Config Types angepasst

git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@666 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

17 files changed:
config/backup/backup.pl [new file with mode: 0644]
config/backup/exclude [new file with mode: 0644]
config/backup/include [new file with mode: 0644]
config/rootfiles/common/apache2
config/rootfiles/packages/mpfire
doc/language_issues.de
doc/language_issues.en
html/cgi-bin/backup.cgi [new file with mode: 0644]
html/cgi-bin/ids.cgi
html/cgi-bin/logs.cgi/firewalllogip.dat
html/cgi-bin/logs.cgi/firewalllogport.dat
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
lfs/backup [new file with mode: 0644]
make.sh
src/initscripts/helper/writeipac.pl
src/initscripts/init.d/snort

diff --git a/config/backup/backup.pl b/config/backup/backup.pl
new file mode 100644 (file)
index 0000000..ae9fec0
--- /dev/null
@@ -0,0 +1,49 @@
+#!/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,$_);}
+  }
+}
diff --git a/config/backup/exclude b/config/backup/exclude
new file mode 100644 (file)
index 0000000..1944fd6
--- /dev/null
@@ -0,0 +1 @@
+*.tmp
diff --git a/config/backup/include b/config/backup/include
new file mode 100644 (file)
index 0000000..49fce8f
--- /dev/null
@@ -0,0 +1,3 @@
+/var/ipfire/*/settings
+/var/ipfire/*/*.conf
+/var/ipfire/*/*.pem
index a6abb6f7341d6d6f323883bf03e7502edded7fe2..38667021603b3fc5f1b62f6517da986bfff1ae34 100644 (file)
@@ -1259,6 +1259,7 @@ srv/web/ipfire/cgi-bin/aliases.cgi
 #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
index e5c798816ac4baafd9e915125dbfacde979c77d7..258cd6d9d78535a550b2ed5633f9e1ad5f8c6fc4 100644 (file)
@@ -7,3 +7,8 @@ var/ipfire/mpfire/db
 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
index 11216b3cc250c95489dc139ac707f6c7a3811528..12244c8bc88b7e68d8d5d01d51d07f0c3182f62f 100644 (file)
@@ -41,7 +41,6 @@ WARNING: translation string unused: apply
 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
index a91d08f974e925f01467fa49c31958b422169ca1..36afc0c1678371d1b571320e89cf3f53b005a92d 100644 (file)
@@ -43,7 +43,6 @@ WARNING: translation string unused: apply
 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
diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi
new file mode 100644 (file)
index 0000000..372d908
--- /dev/null
@@ -0,0 +1,82 @@
+#!/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();
index 59148884512286674965fadbc3a71c8170358a43..30589567bda6b3f84786d196ef9da0ce7cb61bd2 100644 (file)
@@ -52,7 +52,7 @@ $snortsettings{'INSTALLMD5'} = '';
 &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;
@@ -75,9 +75,14 @@ if (-e "/etc/snort/snort.conf") {
 
        # 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
@@ -448,155 +453,156 @@ if ($results ne '') {
 
 &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%'>&nbsp;</td>
+#      <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+#      <td width='33%'>
+#              &nbsp; <!-- 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%'>&nbsp;</td>
-       <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
-       <td width='33%'>
-               &nbsp; <!-- space for future online help link -->
-       </td>
-</tr>
-</table>
-</form>
-END
-;
-       &Header::closebox();
-}
 #######################  End added for snort rules control  #################################
 &Header::closebigbox();
 &Header::closepage();
index 6090472d9b82aaa2ce335753add6938533cb32d7..b3f5535191d480cf325281f74b246975fd1bc01a 100644 (file)
@@ -423,6 +423,7 @@ my $show=0;
 
 my $s;
 my $percent;
+
 for($s=0;$s<$lines;$s++)
 {
   $show++;
@@ -466,6 +467,8 @@ if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";}
 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;
@@ -480,6 +483,7 @@ print <<END
 END
 ;
 }
+}
 print <<END
 </TABLE>
 END
index 3ecc26b2148a22507b74d56c8fcb09a9e482417f..92c620beb889122a7c6cb4e9c5bb0a39d5e4faf9 100644 (file)
@@ -459,6 +459,8 @@ if ( ($color % 10) == 8 ){print "<TR BGCOLOR='$color{'color8'}'>\n";}
 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;
@@ -472,6 +474,7 @@ print <<END
 END
 ;
 }
+}
 print <<END
 </TABLE>
 END
index 2d9bc39e7b54c32d10de745384ff76f98a1c27e2..4dcea18dcb7e6d242e012179c5b0b4c6a84d145c 100644 (file)
 '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',
index 63f61f5bfdd83d749963fafff940923f72ab6cca..7cbafd5ad46aed6b54693daf5bb73f0c57a8c6ec 100644 (file)
 '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',
diff --git a/lfs/backup b/lfs/backup
new file mode 100644 (file)
index 0000000..30db794
--- /dev/null
@@ -0,0 +1,68 @@
+###############################################################################
+# 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)
diff --git a/make.sh b/make.sh
index 5b24fbdcf0fb5ef60d27018dba239b419cb907f5..e45b28a20e944f3575af0e5161021bba2b06cf71 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -504,6 +504,7 @@ buildipfire() {
   ipfiremake asterisk
   ipfiremake mpg123
   ipfiremake mpfire
+  ipfiremake backup
   ipfiremake libmad
   ipfiremake libogg
   ipfiremake libvorbis
index ff6792f46528c190d016a69359d5f8050d28f791..7312a0e3e42b10c33c62e533e5273636a8dbc71a 100644 (file)
@@ -30,7 +30,7 @@ print FILE "outgoing GREEN ($settings{'GREEN_DEV'})|ipac~i|$settings{'GREEN_DEV'
 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";
@@ -38,7 +38,7 @@ if ($settings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/ )
         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";
index 60b937835b878682da07573bbe96bafba947a349..e0d93c6ec5169caed8a91b6255c634f1fdd0cde1 100755 (executable)
@@ -40,7 +40,7 @@ if [ "$ENABLE_SNORT" == "on" ]; then
        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`
@@ -62,7 +62,7 @@ case "$1" in
        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
@@ -79,14 +79,18 @@ case "$1" in
             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)