fix uninitilized scan danger level for IP block renewals when FLUSH_IPT_AT_INIT=N...
authorMichael Rash <mbr@cipherdyne.org>
Mon, 29 Jul 2013 03:52:41 +0000 (23:52 -0400)
committerMichael Rash <mbr@cipherdyne.org>
Mon, 29 Jul 2013 03:52:41 +0000 (23:52 -0400)
CREDITS
psad

diff --git a/CREDITS b/CREDITS
index 62a0175..587cc22 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -498,3 +498,8 @@ Naji Mouawad
 Nicholas Ritter
     - Reported a bug in psad-2.2.1 where the protocols file is not bundled with
       the psad RPM's or included in the psad RPM .spec files.
+
+Gusta-BH
+    - Reported a bug in the auto-blocking mode where the danger level for IP
+      block renewals was not being initialized properly for FLUSH_IPT_AT_INIT
+      set to N.
diff --git a/psad b/psad
index 9c94735..2c9bdb6 100755 (executable)
--- a/psad
+++ b/psad
@@ -673,7 +673,7 @@ unless ($no_daemon or $debug) {
 ### we're at it, start psadwatchd as well.  Note that this is the best
 ### place to start the other daemons since we just wrote the psad pid
 ### to PID_FILE above.
-my $cmd;
+my $cmd = '';
 unless ($config{'ENABLE_SYSLOG_FILE'} eq 'Y'
         or $no_kmsgsd
         or $config{'SYSLOG_DAEMON'} =~ /ulog/i
@@ -6043,6 +6043,10 @@ sub renew_auto_blocked_ips() {
                 my $orig_block_time = $2;
 
                 if ($config{'AUTO_BLOCK_TIMEOUT'} == 0) {
+
+                    ### set the DL here to the minimum currently required
+                    $scan_dl{$ip} = $config{'AUTO_IDS_DANGER_LEVEL'};
+
                     ### block the IP address (note that checks are built
                     ### into this function to not add a duplicate rule)
                     &ipt_block($ip, 'renew');
@@ -6059,6 +6063,10 @@ sub renew_auto_blocked_ips() {
                         &ipt_rm_block($ip);
 
                     } else {
+
+                        ### set the DL here to the minimum currently required
+                        $scan_dl{$ip} = $config{'AUTO_IDS_DANGER_LEVEL'};
+
                         ### block the IP address (note that checks are built
                         ### into this function to not add a duplicate rule)
                         &ipt_block($ip, 'renew');
@@ -6081,6 +6089,10 @@ sub renew_auto_blocked_ips() {
                 my $orig_block_time = $2;
 
                 if ($config{'AUTO_BLOCK_TIMEOUT'} == 0) {
+
+                    ### set the DL here to the minimum currently required
+                    $scan_dl{$ip} = $config{'AUTO_IDS_DANGER_LEVEL'};
+
                     ### block the IP address (note that checks are built
                     ### into this function to not add a duplicate rule)
                     if (&tcpwr_test_block($ip)) {
@@ -6105,6 +6117,10 @@ sub renew_auto_blocked_ips() {
                         &tcpwr_rm_block($ip);
 
                     } else {
+
+                        ### set the DL here to the minimum currently required
+                        $scan_dl{$ip} = $config{'AUTO_IDS_DANGER_LEVEL'};
+
                         ### block the IP address (note that checks are built
                         ### into this function to not add a duplicate rule)
                         if (&tcpwr_test_block($ip)) {