}
}
+#
+## Function to generate the rules file with whitelisted addresses.
+#
+sub generate_ignore_file() {
+ my %ignored = ();
+
+ # SID range 1000000-1999999 Reserved for Local Use
+ # Put your custom rules in this range to avoid conflicts
+ my $sid = 1500000;
+
+ # Read-in ignoredfile.
+ &General::readhasharray($IDS::ignored_file, \%ignored);
+
+ # Open ignorefile for writing.
+ open(FILE, ">$IDS::whitelist_file") or die "Could not write to $IDS::whitelist_file. $!\n";
+
+ # Config file header.
+ print FILE "# Autogenerated file.\n";
+ print FILE "# All user modifications will be overwritten.\n\n";
+
+ # Add all user defined addresses to the whitelist.
+ #
+ # Check if the hash contains any elements.
+ if (keys (%ignored)) {
+ # Loop through the entire hash and write the host/network
+ # and remark to the ignore file.
+ while ( (my $key) = each %ignored) {
+ my $address = $ignored{$key}[0];
+ my $remark = $ignored{$key}[1];
+ my $status = $ignored{$key}[2];
+
+ # Check if the status of the entry is "enabled".
+ if ($status eq "enabled") {
+ # Check if the address/network is valid.
+ if ((&General::validip($address)) || (&General::validipandmask($address))) {
+ # Write rule line to the file to pass any traffic from this IP
+ print FILE "pass ip $address any -> any any (msg:\"pass all traffic from/to $address\"\; sid:$sid\;)\n";
+
+ # Increment sid.
+ $sid++;
+ }
+ }
+ }
+ }
+
+ close(FILE);
+}
+
1;
&General::writehasharray($IDS::ignored_file, \%ignored);
# Regenerate the ignore file.
- &GenerateIgnoreFile();
+ &IDS::generate_ignore_file();
}
# Check if the IDS is running.
&General::writehasharray($IDS::ignored_file, \%ignored);
# Regenerate the ignore file.
- &GenerateIgnoreFile();
+ &IDS::generate_ignore_file();
# Check if the IDS is running.
if(&IDS::ids_is_running()) {
&General::writehasharray($IDS::ignored_file, \%ignored);
# Regenerate the ignore file.
- &GenerateIgnoreFile();
+ &IDS::generate_ignore_file();
# Check if the IDS is running.
if(&IDS::ids_is_running()) {
return;
}
-#
-## Function to generate the rules file with whitelisted addresses.
-#
-sub GenerateIgnoreFile() {
- my %ignored = ();
-
- # SID range 1000000-1999999 Reserved for Local Use
- # Put your custom rules in this range to avoid conflicts
- my $sid = 1500000;
-
- # Read-in ignoredfile.
- &General::readhasharray($IDS::ignored_file, \%ignored);
-
- # Open ignorefile for writing.
- open(FILE, ">$IDS::whitelist_file") or die "Could not write to $IDS::whitelist_file. $!\n";
-
- # Config file header.
- print FILE "# Autogenerated file.\n";
- print FILE "# All user modifications will be overwritten.\n\n";
-
- # Add all user defined addresses to the whitelist.
- #
- # Check if the hash contains any elements.
- if (keys (%ignored)) {
- # Loop through the entire hash and write the host/network
- # and remark to the ignore file.
- while ( (my $key) = each %ignored) {
- my $address = $ignored{$key}[0];
- my $remark = $ignored{$key}[1];
- my $status = $ignored{$key}[2];
-
- # Check if the status of the entry is "enabled".
- if ($status eq "enabled") {
- # Check if the address/network is valid.
- if ((&General::validip($address)) || (&General::validipandmask($address))) {
- # Write rule line to the file to pass any traffic from this IP
- print FILE "pass ip $address any -> any any (msg:\"pass all traffic from/to $address\"\; sid:$sid\;)\n";
-
- # Increment sid.
- $sid++;
- }
- }
- }
- }
-
- close(FILE);
-}
-
#
## Function to read-in the given enabled or disables sids file.
#