| 1 | psad-2.1.3 (06/07/2008): |
|---|
| 2 | - Updated to enable IPT_SYSLOG_FILE by default. This is a relatively |
|---|
| 3 | important change since it changes the method of acquiring iptables log |
|---|
| 4 | data from reading it out of named pipe from syslog to just parsing the |
|---|
| 5 | /var/log/messages file. This implies that kmsgsd does not have to run, |
|---|
| 6 | and that it is much easier to ensure that psad actually receives |
|---|
| 7 | iptables log messages. The most complex and error prone aspect of psad |
|---|
| 8 | in the past has been the reconfiguration of the various syslog daemons |
|---|
| 9 | out there (which have very different configuration syntax and features) |
|---|
| 10 | to write kern.info messages to the /var/lib/psad/psadfifo named pipe. |
|---|
| 11 | - Updated to version 4.7.26 of the whois client from Marco d'Itri. This |
|---|
| 12 | allows whois records for some addresses (such as 116.125.35.98, which |
|---|
| 13 | which was scanning a system running psad but could not be identified |
|---|
| 14 | under the older whois client) to be properly queried. |
|---|
| 15 | - Updated to Bit::Vector 6.4 from 6.3. |
|---|
| 16 | - Updated to Date::Calc 5.4 from 5.3. |
|---|
| 17 | - Updated to Storable 2.18 from 2.16. |
|---|
| 18 | |
|---|
| 19 | psad-2.1.2 (04/03/2008): |
|---|
| 20 | - Bugfix to not include kernel timestamps in iptables log prefixes that |
|---|
| 21 | contain spaces like "[ 65.026008] DROP" (bug reported by Erik Heidt). |
|---|
| 22 | - Bugfix to skip non-resolved IP addresses (bug reported by Albert Whale) |
|---|
| 23 | - Better p0f output in --debug mode to display when a passive OS |
|---|
| 24 | fingerprint cannot be calculated based on iptables log messages that |
|---|
| 25 | include tcp options (i.e., with --log-tcp-options when building a LOG |
|---|
| 26 | rule on the iptables command line). |
|---|
| 27 | |
|---|
| 28 | psad-2.1.1 (01/25/2008): |
|---|
| 29 | - Added a new feature whereby psad can acquire iptables log data just by |
|---|
| 30 | parsing an existing file (/var/log/messages by default) that is written |
|---|
| 31 | to by syslog. By default, psad acquires iptables log data from the |
|---|
| 32 | /var/log/psad/fwdata file which is written to by kmsgsd, but on some |
|---|
| 33 | systems, having syslog communicate log data to kmsgsd can be problematic |
|---|
| 34 | since syslog configs and external factors such as Apparmor and SELinux |
|---|
| 35 | can play a role here. This new feature is controled by two new |
|---|
| 36 | configuration variables "ENABLE_SYSLOG_FILE" (to enable/disable the |
|---|
| 37 | feature) and "IPT_SYSLOG_FILE" to specifiy the path to the file to |
|---|
| 38 | parse. |
|---|
| 39 | - Better installation support for various Linux distributions including |
|---|
| 40 | Fedora 8 and Ubuntu. The current runlevel is now acquired via the |
|---|
| 41 | "runlevel" command instead of attempting to read /etc/inittab (which |
|---|
| 42 | does not even exist on Ubuntu 7.10), and there are new command line |
|---|
| 43 | arguments --init-dir, --init-name, and --runlevel to allow the init |
|---|
| 44 | directory, init script name, and the runlevel to be manually specified |
|---|
| 45 | on the install.pl command line. |
|---|
| 46 | - Updated psad to automatically handle situations where the either the |
|---|
| 47 | /var/log/psad/fwdata file or the /var/log/messages file (whichever |
|---|
| 48 | syslog is writing iptables log messages to) gets rotated. The |
|---|
| 49 | filehandle is closed and reopened if the file shrinks or if the inode |
|---|
| 50 | changes. This strategy is borrowed from how the fwknop project deals |
|---|
| 51 | with the filesystem packet capture file. |
|---|
| 52 | - Minor bugfix to generate syslog message when restarting a psad process. |
|---|
| 53 | - Updated install.pl to set the LC_ALL environmental variable to "C" |
|---|
| 54 | This should address some issues with installing psad on non-English |
|---|
| 55 | locale systems. |
|---|
| 56 | - Updated install.pl to be compatible with the rsyslog daemon, which is |
|---|
| 57 | commonly installed on Fedora 8 systems. |
|---|
| 58 | |
|---|
| 59 | psad-2.1 (10/19/2007): |
|---|
| 60 | - Changed EMAIL_LIMIT model to apply to scanning source addresses only |
|---|
| 61 | instead of also factoring in the destination address. The original |
|---|
| 62 | src/dst email limit behavior can be restored by setting a new variable |
|---|
| 63 | "ENABLE_EMAIL_LIMIT_PER_DST" to "Y". |
|---|
| 64 | - Added the patches/iptables-1.3.8_LOG_prefix_space.patch file which can |
|---|
| 65 | be applied to the iptables-1.3.8 code to enforce a trailing space |
|---|
| 66 | character before any log prefix when a LOG rule is added. This ensures |
|---|
| 67 | that the user cannot break the iptables syslog format just by forgetting |
|---|
| 68 | to include a space at the end of a logging prefix. |
|---|
| 69 | - Bugfix to ensure that parsing TCP options does not descend into an |
|---|
| 70 | infinite loop in some some circumstances with obscure or maliciously |
|---|
| 71 | constructed options. Also added syslog reporting for broken options |
|---|
| 72 | lengths of zero or one byte (the minimum option length is two bytes to |
|---|
| 73 | accomodate the TLV encoding). |
|---|
| 74 | - Bugfix to enforce the usage of --CSV-fields in --gnuplot mode. |
|---|
| 75 | - Implemented --get-next-rule-id so that it is easy to assign a new rule |
|---|
| 76 | ID to a new signature in the /etc/psad/signatures file. |
|---|
| 77 | - Updated to just call die() if GetOpt fails; this allows erroneous usage |
|---|
| 78 | of the command line to display informative error messages more clearly. |
|---|
| 79 | |
|---|
| 80 | psad-2.0.8 (07/27/2007): |
|---|
| 81 | - Added --gnuplot mode so that psad can output data that is suitable for |
|---|
| 82 | plotting with gnuplot. All output produced in this mode is integer data |
|---|
| 83 | with the exception of date stamps that are derived from iptables syslog |
|---|
| 84 | messages. |
|---|
| 85 | - Added the ability to negate match conditions on fields specified with |
|---|
| 86 | the --CSV-fields argument by prepending the string "not" (which plays |
|---|
| 87 | more nicely with shells like bash than a character like "!"). For |
|---|
| 88 | example, to graph all packet data in --gnuplot or --CSV modes that |
|---|
| 89 | originates from the 11.11.0.0/16 subnet and is not destined for port |
|---|
| 90 | 80, the following argument does the trick: |
|---|
| 91 | |
|---|
| 92 | --CSV-fields "src:11.11.0.0/16 dp:not80" |
|---|
| 93 | |
|---|
| 94 | - In --gnuplot mode, added the ability to generate the count for a CSV |
|---|
| 95 | field instead of the field itself. Supported modes are an absolute |
|---|
| 96 | count (<field>:count) , and a unique count (<field>:uniqcount). This |
|---|
| 97 | is useful to plot graphs of source IP vs. the number unique ports for |
|---|
| 98 | example. Also added the ability to count iptables log fields over |
|---|
| 99 | various time scales (minutes, hours, and days) with the following |
|---|
| 100 | switches: <field>:countday, <field>:counthour, <field>:countmin. |
|---|
| 101 | - In --gnuplot mode, added the ability to specify the view coordinates |
|---|
| 102 | for 3D graph viewing with --gnuplot-view. |
|---|
| 103 | - Added the Storable-2.16 module along with the --use-store-file argument |
|---|
| 104 | so that in --gnuplot mode the Gnuplot data can be stored on disk and |
|---|
| 105 | retrieve quickly. This eliminates a large performance bottleneck when |
|---|
| 106 | Gnuplot configuration directives are tweaked while the same graph is |
|---|
| 107 | generated multiple times. |
|---|
| 108 | - Added --gnuplot-template so that a template file can be used for all |
|---|
| 109 | Gnuplot directives (usually psad creates the .gnu file based on the |
|---|
| 110 | --gnuplot command line arguments). |
|---|
| 111 | - Added --gnuplot-grayscale to generate graphs without the default red |
|---|
| 112 | color for graph points. |
|---|
| 113 | - Bugfix for regular expressions not being imported correctly from within |
|---|
| 114 | the --CSV-fields argument. |
|---|
| 115 | - Added --analysis-fields so the iptables log messages that are parsed in |
|---|
| 116 | -A mode can be restricted to those that meet certain criteria. For |
|---|
| 117 | example, to restrict the analyze mode to process packets with a source |
|---|
| 118 | address of 192.168.10.1, use this command: |
|---|
| 119 | |
|---|
| 120 | psad -A --analysis-fields "src:192.168.10.1" |
|---|
| 121 | |
|---|
| 122 | - Added --plot-separator to allow the format of plot data (either in |
|---|
| 123 | --gnuplot or --CSV modes) to be influenced by the user. |
|---|
| 124 | - Added the ability to configure the syslog facility and priority via the |
|---|
| 125 | psad.conf file (see the SYSLOG_FACILITY and SYSLOG_PRIORITY variables). |
|---|
| 126 | - Updated psad.spec file to respect the %_initrddir RPM macro. |
|---|
| 127 | |
|---|
| 128 | psad-2.0.7 (05/28/2007): |
|---|
| 129 | - Bugfix to define a custom 'source' definition for syslog-ng daemons - |
|---|
| 130 | this fixes a problem on SuSE systems where the existing syslog-ng |
|---|
| 131 | reconfig caused the daemon to not start. |
|---|
| 132 | - Bugfix to allow specific signatures to be ignored by setting SID values |
|---|
| 133 | of zero in /etc/psad/snort_rule_dl. |
|---|
| 134 | - Added -X command line argument to allow the user to delete any psad |
|---|
| 135 | chains (in auto-response mode). This is a synonym for the iptables -X |
|---|
| 136 | command line argument. |
|---|
| 137 | |
|---|
| 138 | psad-2.0.6 (03/24/2007): |
|---|
| 139 | - Better integration with fwsnort; psad signature match syslog messages |
|---|
| 140 | and email alerts now include the fwsnort rule number (for fwsnort |
|---|
| 141 | version 0.9.0 and greater) and chain information. |
|---|
| 142 | - Added the Snort bleeding-all.rules signature file from the Bleeding |
|---|
| 143 | Snort project (see http://www.bleedingsnort.com). |
|---|
| 144 | - Bugfix to allow interfaces that have IP aliases. |
|---|
| 145 | - Added uname, ifconfig, and syslog process information to --Dump-conf |
|---|
| 146 | output (this can help diagnose various runtime issues). |
|---|
| 147 | - Changed the --Lib-dir command line argument to --lib-dir, and added |
|---|
| 148 | --List (similar to iptables) to list the psad auto-blocking chain rules. |
|---|
| 149 | - Added psad.SlackBuild script contributed by pyllyukko for building psad |
|---|
| 150 | on Slackware systems. It uses the Cipherdyne cd_rpmbuilder script to |
|---|
| 151 | first build and RPM, and then uses it to build a Slackware package. |
|---|
| 152 | |
|---|
| 153 | psad-2.0.5 (03/01/2007): |
|---|
| 154 | - Consolidated all configuration variables into the /etc/psad/psad.conf |
|---|
| 155 | file. The kmsgsd.conf, psadwatchd.conf, alert.conf, and fw_search.conf |
|---|
| 156 | files were all removed since the daemons just reference the psad.conf |
|---|
| 157 | now. Updated install.pl to archive and remove these files if they |
|---|
| 158 | exist from a previous psad installation. |
|---|
| 159 | - Bugfix to account for iptables -nL output where the protocol may be |
|---|
| 160 | reported as "0" instead of "all". |
|---|
| 161 | - Added a function safe_malloc() for kmsgsd.c and psadwatchd.c to ensure |
|---|
| 162 | that a single API is used to perform a NULL check on heap-allocated |
|---|
| 163 | memory. |
|---|
| 164 | - Bugfix to ensure that the psad_ip_len signature matching keyword is |
|---|
| 165 | checked withing match_snort_ip_keywords() so that it applies to all |
|---|
| 166 | protocol packets. This fixes a bug that would cause the "PSAD-CUSTOM |
|---|
| 167 | Nachi worm reconnaisannce" signature to fire on normal ICMP packet log |
|---|
| 168 | messages. |
|---|
| 169 | - Added version and Subversion file revision numbers to die and warn |
|---|
| 170 | messages that are written to /var/log/psad/errs/. This helps when |
|---|
| 171 | trying to track these messages down to a specific file revisions when |
|---|
| 172 | psad is being upgraded on the local system. |
|---|
| 173 | - Added version and Subversion file revision numbers to --Dump-conf |
|---|
| 174 | output. |
|---|
| 175 | - Minor update to allow --fw-dump to be used on the command line without |
|---|
| 176 | also having to use the -D argument. |
|---|
| 177 | - Updated the default_log() function in the IPTables::Parse module to |
|---|
| 178 | handle iptables policies that were dumped with -v, such as when |
|---|
| 179 | --Dump-conf is used. |
|---|
| 180 | |
|---|
| 181 | psad-2.0.4 (01/27/2007): |
|---|
| 182 | - Added Snort rule matches to syslog alerts. Multiple matches can be |
|---|
| 183 | controlled with new configuration variables in psad.conf: |
|---|
| 184 | ENABLE_SIG_MSG_SYSLOG, SIG_MSG_SYSLOG_THRESHOLD, and |
|---|
| 185 | SIG_SID_SYSLOG_THRESHOLD. |
|---|
| 186 | - Bugfix to include scanned UDP port ranges in syslog alerts. |
|---|
| 187 | - Bugfix to parse SEQ and ACK iptables log message fields (requires |
|---|
| 188 | --log-tcp-sequence on the iptables command line). This allows the ipEye |
|---|
| 189 | signature to work. |
|---|
| 190 | - Added --debug-sid to allow a specific Snort rule to be debugged while |
|---|
| 191 | psad runs it through its detection engine. A consequence of this is |
|---|
| 192 | that the -d command line argument must be spelled out, i.e. "psad |
|---|
| 193 | --debug". |
|---|
| 194 | - Bugfix to allow logging prefixes to omit trailing spaces. This is a bug |
|---|
| 195 | in the iptables logging format to allow this in the first place, but |
|---|
| 196 | before this gets fixed psad needs to compensate. |
|---|
| 197 | - Bugfix for syslog-ng init script path in install.pl. |
|---|
| 198 | - Bugfix to include a "source" definition for /proc/kmsg if not already |
|---|
| 199 | defined for syslog-ng daemons. |
|---|
| 200 | - Minor memory handling bugfixes discovered by valgrind the excellent |
|---|
| 201 | Valgrind project: http://www.valgrind.org |
|---|
| 202 | |
|---|
| 203 | psad-2.0.3 (12/31/2006): |
|---|
| 204 | - Removed Psad.pm perl module and kmsgsd.pl and psadwatchd.pl scripts. |
|---|
| 205 | This is a major change that allows psad to be more flexible and |
|---|
| 206 | completely derive its config from the psad.conf file and from the |
|---|
| 207 | command line. In the previous scheme, psad imported its config with a |
|---|
| 208 | function within Psad.pm, and this required that psad imported the Psad |
|---|
| 209 | perl module before reading its config. A consequence was that the |
|---|
| 210 | PSAD_LIBS_DIR var could not be specified usefully within the config |
|---|
| 211 | file. |
|---|
| 212 | - Added the ability to recursively resolve embedded variables from *.conf |
|---|
| 213 | files (with a limit of 20 resolution attempts). |
|---|
| 214 | - Added IGNORE_KERNEL_TIMESTAMP so that Linux distros that add a timestamp |
|---|
| 215 | to all kernel messages (Ubuntu for example) can be ignored. |
|---|
| 216 | - Consolidated code to import data out of /var/log/psad/<ip> directories |
|---|
| 217 | with code to display status and analysis output (-S and -A). |
|---|
| 218 | Essentially the %scan hash is built by the filesystem data import |
|---|
| 219 | routine and the remainder of the code references this single data |
|---|
| 220 | structure. |
|---|
| 221 | |
|---|
| 222 | psad-2.0.2 (12/23/2006): |
|---|
| 223 | - Added the ability to download the latest signatures from cipherdyne.org |
|---|
| 224 | in install.pl. |
|---|
| 225 | - Added the cd_rpmbuilder script to make it easy to build RPM's out of |
|---|
| 226 | CipherDyne projects by automatically downloading the project .tar.gz and |
|---|
| 227 | .spec files from http://www.cipherdyne.org/. |
|---|
| 228 | - Added print statements for @INC array in debug mode so that the user can |
|---|
| 229 | see the additional /usr/lib/psad/* directories added by |
|---|
| 230 | import_psad_perl_modules(). |
|---|
| 231 | - Changed Unix::Syslog import strategy from "use" to "require" since the |
|---|
| 232 | path is not known until import_psad_perl_modules() gets a chance to |
|---|
| 233 | run (psad ran fine without this, but it is more consistent this way). |
|---|
| 234 | - Bugfix for not properly including elements of the |
|---|
| 235 | @connected_subnets_cidr array. |
|---|
| 236 | - IP subnet bugfix to make sure to get the entire subnet in signature |
|---|
| 237 | import routine if it is not in CIDR format |
|---|
| 238 | - Bugfix to not print an IP addresses in the "top attackers" section that |
|---|
| 239 | do not have at least one packet or signature match (for any reason). |
|---|
| 240 | - Bugfix to not print more than TOP_IP_LOG_THRESHOLD IP addresses in thet |
|---|
| 241 | top attackers section. |
|---|
| 242 | - Updated install.pl to reference configuration paths directly from |
|---|
| 243 | psad.conf instead of defining them separately. This should fix Debian |
|---|
| 244 | bug #403566. |
|---|
| 245 | - Added -c argument to install.pl so that the path to a psad.conf file |
|---|
| 246 | can be altered from the command line. |
|---|
| 247 | - Bugfix to not import any IP from the top_attackers file from a previous |
|---|
| 248 | psad run that does not have a /var/log/psad/<ip> directory. |
|---|
| 249 | - Added MIN_DANGER_LEVEL to allow all alerts and /var/log/psad/<ip> |
|---|
| 250 | tracking to be disabled unless an attacker reaches at least this |
|---|
| 251 | danger level. |
|---|
| 252 | - Added text in install.pl to mention ifconfig parsing for HOME_NET |
|---|
| 253 | derivation. |
|---|
| 254 | |
|---|
| 255 | psad-2.0.1 (12/12/2006): |
|---|
| 256 | - Added Nachi worm reconnaisannce icmp signature |
|---|
| 257 | - Added the psad_ip_len signature keyword to allow the length field in the |
|---|
| 258 | IP header to be explicitly tested. |
|---|
| 259 | - Bugfix for inappropriately removing some directories in @INC when |
|---|
| 260 | splicing in psad perl module paths. |
|---|
| 261 | - Switched nf2csv installation path in install.pl to /usr/bin/. |
|---|
| 262 | |
|---|
| 263 | psad-2.0 (12/10/2006): |
|---|
| 264 | - Completely refactored the Snort rule matching support in psad. Added |
|---|
| 265 | many header field tests with full range matching support. These tests |
|---|
| 266 | include the following keywords from Snort: ttl, id, seq, ack, window, |
|---|
| 267 | icmp_id, icmp_seq, itype, icode, ip_proto, ipopts, and sameip. |
|---|
| 268 | - Refactored all signatures in /etc/psad/signatures to conform to new |
|---|
| 269 | signature matching support in this release. There are now about 190 |
|---|
| 270 | signatures that psad can run directly against Netfilter logging |
|---|
| 271 | messages (i.e. without the help of fwsnort). |
|---|
| 272 | - Added the ability to download the latest signatures file from |
|---|
| 273 | http://www.cipherdyne.org/psad/signatures with the --sig-update command |
|---|
| 274 | line argument to psad. |
|---|
| 275 | - Added "MISC Windows popup spam" signature. This allows psad to detect |
|---|
| 276 | when attempts are made to send spam via the Windows Messenger service. |
|---|
| 277 | - Completely reworked --Status and --Analyze output, signature matches |
|---|
| 278 | are included now, along with a listing of top sig matches, top scanned |
|---|
| 279 | ports, and top attackers. Also, scan data is not written to |
|---|
| 280 | /var/log/psad/ipt_analysis/ before display analysis output in -A mode; |
|---|
| 281 | analysis results are displayed much faster this way. |
|---|
| 282 | - Added ipEye, Subversion, Kuang2, Microsoft SQL, Radmin, and Ghostsurf |
|---|
| 283 | signatures. |
|---|
| 284 | - Added 'data in TCP SYN packet' signature. |
|---|
| 285 | - Added --CSV mode so that psad can be used to generate comma-separated |
|---|
| 286 | value output suitable for the AfterGlow project (see |
|---|
| 287 | http://afterglow.sourceforge.net/index.html) for graphical |
|---|
| 288 | representations of Netfilter logs and associated scan data. Also added |
|---|
| 289 | nf2csv so that normal users can take advantage of this feature. |
|---|
| 290 | - Added emulation of the Snort "dsize" test through the use of the IP |
|---|
| 291 | length field for TCP/ICMP signatures, and the UDP length field for UDP |
|---|
| 292 | signatures. For SYN packets, TCP options are included so psad |
|---|
| 293 | automatically adds 44 bytes (the maximum length for TCP options) so the |
|---|
| 294 | dsize test corresponds to the estimated payload length. |
|---|
| 295 | - Added the psad_id, psad_dsize, and psad_derived_sids fields for the new |
|---|
| 296 | Snort rule support. |
|---|
| 297 | - Added the ability to decode IP options, which are included within Snort |
|---|
| 298 | rules as the "ipopts" keyword. This functionality requires that the |
|---|
| 299 | --log-ip-options command line argument is given to iptables when |
|---|
| 300 | building a rule that uses the LOG target. |
|---|
| 301 | - Added Snort rules (sids 475, 500, 501, and 502) that detect IP options |
|---|
| 302 | usage such as source routing and the traceroute IP option with the new |
|---|
| 303 | IP options decoder. |
|---|
| 304 | - Enhanced psad email alert output to include sid values that have been |
|---|
| 305 | derived from existing Snort rules. |
|---|
| 306 | - Added the ability to expand embedded variables within the psad |
|---|
| 307 | configuration files. For example, the path to the FW_DATA_FILE is |
|---|
| 308 | defined in psad.conf as "$PSAD_DIR/fwdata", which resolves to |
|---|
| 309 | /var/log/psad/fwdata when the PSAD_DIR variable is expanded. This |
|---|
| 310 | feature allows a consistent set of file paths to easily be defined |
|---|
| 311 | instead of using the full path for each file path. |
|---|
| 312 | - Better validation of IPT_AUTO_CHAIN{n} variables so that the from_chain |
|---|
| 313 | cannot be identical to the to_chain. |
|---|
| 314 | - Added dump_config() to psadwatchd.c and kmsgsd.c when compiled with |
|---|
| 315 | debugging support. |
|---|
| 316 | - Added ENABLE_INTF_LOCAL_NETS to have psad automatically treat all IP |
|---|
| 317 | addresses that are part of the local system as belonging to the HOME_NET |
|---|
| 318 | for signature matching. |
|---|
| 319 | - Added ENABLE_SNORT_SIG_STRICT to have psad exit if there are any |
|---|
| 320 | problems found with Snort rules in the /etc/psad/signatures file. If |
|---|
| 321 | this feature is disabled (this is the default), then psad generates |
|---|
| 322 | syslog warnings for improperly formatted signatures). |
|---|
| 323 | - Update to print the number of IP addresses at each danger level in -A |
|---|
| 324 | analysis mode. This is useful to get a sense for how long the disk IO |
|---|
| 325 | might take to write out all of the /var/log/psad/ipt_analysis/<IP> |
|---|
| 326 | directories. |
|---|
| 327 | - Added code to restart kmsgsd at psad start up if a previous kmsgsd |
|---|
| 328 | process is still running and TRUNCATE_FWDATA is set to 'Y' (this is the |
|---|
| 329 | default). This probably isn't strictly necessary because kmsgsd is |
|---|
| 330 | capable of writing to the fwdata file even if another process truncates |
|---|
| 331 | it. |
|---|
| 332 | - Added code to recreate the AUTO_IPT_SOCK (/var/run/psad/auto_ipt.sock) |
|---|
| 333 | file if some other process happens to delete it out of /var/run/psad/ |
|---|
| 334 | - Bugfix to allow backwards compatibility with old NOT_USED value |
|---|
| 335 | for the HOME_NET variable. |
|---|
| 336 | - Bugfix to cleanup any lost blocking rules from the running psad |
|---|
| 337 | timeouts (a separate process might have deleted rules from the psad |
|---|
| 338 | chains). |
|---|
| 339 | - Bugfix to allow Netfilter log messages to include the PHYSDEV (i.e. |
|---|
| 340 | PHYSIN and PHYSOUT) interfaces. |
|---|
| 341 | - Updated to read architecture-dependent perl module installation |
|---|
| 342 | directory out of /usr/lib/psad (e.g. "/usr/lib/psad/x86_64-linux") |
|---|
| 343 | before importing psad perl modules such as IPTables::Parse, etc. These |
|---|
| 344 | modules are now imported via "require" after the appropriate |
|---|
| 345 | directories have been added to @INC. This allows the RPM files to be |
|---|
| 346 | built on one system that builds @INC differently than the system where |
|---|
| 347 | psad is actually installed since psad can now compensate for this. |
|---|
| 348 | - Added new code to populate the <dst>_signature file in each of the |
|---|
| 349 | /var/log/psad/<ip> directories with verbose information including the |
|---|
| 350 | signature time, sid, protocol, dst port, and packet count. |
|---|
| 351 | - Changed --interval to --Interval, and added --interface to allow |
|---|
| 352 | psad's detection to be limited to a specific IN interface for the INPUT |
|---|
| 353 | and FORWARD chains (or OUT interface for the OUTPUT chain). |
|---|
| 354 | - Replaced --status-brief with --status-summary, but changed it so that |
|---|
| 355 | only the detailed IP status information is omitted. |
|---|
| 356 | - Removed unnecessary --status-sort-dl option. |
|---|
| 357 | - Added STATUS_OUTPUT_FILE so the --Status and --Analyze output is |
|---|
| 358 | captured instead of just being lost if the output was not piped to |
|---|
| 359 | 'less' or another similar program. |
|---|
| 360 | - Added --restrict-ip so that psad will restrict its attack detection |
|---|
| 361 | operations to a specific IP or network. |
|---|
| 362 | - Updated psadwatchd.c to parse EMAIL_ADDRESSES out of |
|---|
| 363 | /etc/psad/psad.conf to avoid duplication of variables. |
|---|
| 364 | - Bugfix to clear old @ipt_config array after receiving a HUP signal. |
|---|
| 365 | This bug broke the auto-blocking mode. |
|---|
| 366 | - Bugfix for syslog-ng config so that any custom source for /proc/kmsg is |
|---|
| 367 | used for the psadfifo path. |
|---|
| 368 | |
|---|
| 369 | psad-1.4.8 (10/15/2006): |
|---|
| 370 | - Added the ability to get the auto-blocking status for a specific IP |
|---|
| 371 | address in --status-ip mode. |
|---|
| 372 | - Bugfix to use the IPT_OUTPUT_FILE and IPT_ERROR_FILE configuration |
|---|
| 373 | variables. |
|---|
| 374 | - Bugfix to restore "start" functionality in Gentoo init script. |
|---|
| 375 | - Added the ability to selectively disable psad auto-blocking emails. |
|---|
| 376 | - Added more rigorous IP matching regex from Sebastien J. (contributed |
|---|
| 377 | originally for fwknop). |
|---|
| 378 | |
|---|
| 379 | psad-1.4.7 (09/10/2006): |
|---|
| 380 | - Completely re-worked IPTables::ChainMgr to support the return of |
|---|
| 381 | iptables error messages that are collected via stderr. This is critical |
|---|
| 382 | to fixing a bug where psad would sometimes die on an iptables command |
|---|
| 383 | but no information would be returned to the user. |
|---|
| 384 | - Added the ability to specify the position for both the jump rule into |
|---|
| 385 | the psad chains as well as the position for new rules within the psad |
|---|
| 386 | chains via the -I argument to iptables. This fixes a bug where the user |
|---|
| 387 | was given the impression that the IPTABLES_AUTO_RULENUM would accomplish |
|---|
| 388 | this. |
|---|
| 389 | - Populated the _debug option in the IPTables::ChainMgr module, and also |
|---|
| 390 | added a _verbose option so that the specific iptables commands can |
|---|
| 391 | actually be seen as IPTables::ChainMgr functions are called. |
|---|
| 392 | - Added code to install.pl to ask the user if a manual restart of syslog |
|---|
| 393 | is ok upon an unsuccessful test of the syslog reconfiguration. This |
|---|
| 394 | fixes a bug where some syslog daemons might not re-import their |
|---|
| 395 | configurations after receiving a HUP signal. |
|---|
| 396 | - Bugfix for incorrect config variable name that gated Netfilter |
|---|
| 397 | prerequisite checks. |
|---|
| 398 | - Added code to install.pl to update command paths in psad.conf and |
|---|
| 399 | psadwatchd.conf if any of the paths are broken (i.e. the local system |
|---|
| 400 | does not conform to the default paths). By default this only happens if |
|---|
| 401 | the user does not want old configs to be merged, but to override this |
|---|
| 402 | use the new --path-update command line argument to install.pl. |
|---|
| 403 | - Added the --Skip-mod-install command line argument to install.pl to |
|---|
| 404 | allow all perl module installs to be skipped. |
|---|
| 405 | - Added the --force-mod-regex command line argument to install.pl to allow |
|---|
| 406 | a regex match on perl module names to force matching modules to be |
|---|
| 407 | installed. |
|---|
| 408 | - Added the logrotate.psad file (contributed by Albert Whale). |
|---|
| 409 | |
|---|
| 410 | psad-1.4.6 (06/13/2006): |
|---|
| 411 | - Added ENABLE_AUTO_IDS_REGEX and AUTO_BLOCK_REGEX to allow filtering on |
|---|
| 412 | logging prefixes. |
|---|
| 413 | - Added code to save DShield email to a file. |
|---|
| 414 | - Added IPTABLES_PREREQ_CHECK to allow the administrator to control the |
|---|
| 415 | frequency of Netfilter checks (for auto-block compatibility). |
|---|
| 416 | - Added IGNORE_LOG_PREFIXES to allow certain log prefixes to be completely |
|---|
| 417 | ignored by psad. |
|---|
| 418 | - Added classification.config file from Snort-2.3.3 so that psad can |
|---|
| 419 | assign danger levels based upon Snort rule class type. This is useful |
|---|
| 420 | when also running fwsnort. |
|---|
| 421 | - Added snort_rule_dl to allow specific psad to assign specific danger |
|---|
| 422 | level values to particular signatures. This is useful if you want to |
|---|
| 423 | do define certain Snort rules as being particularly evil (or not). |
|---|
| 424 | Running fwsnort is also necessary to take advantage of this feature. |
|---|
| 425 | - Added reference.config so that psad can include reference information in |
|---|
| 426 | email alerts that are derived from attacks detected by fwsnort. |
|---|
| 427 | - Updated to Snort-2.3.3 signatures. |
|---|
| 428 | - Updated to whois-4.7.13. |
|---|
| 429 | |
|---|
| 430 | psad-1.4.5 (01/13/2006): |
|---|
| 431 | - Bugfix in IPTables::Parse to allow the limit target to apply to |
|---|
| 432 | logging rules. |
|---|
| 433 | - Made calls to chain creation and jump rule functions for only every |
|---|
| 434 | 100 block calls in auto-IDS mode. |
|---|
| 435 | - Bugfix to make sure /var/run/psad directory exists at startup since |
|---|
| 436 | this directory is removed by some Linux distributions at boot time. |
|---|
| 437 | - Bugfix for zero masks in auto_dl; this allows a network of "0.0.0.0/0" |
|---|
| 438 | to be specified. |
|---|
| 439 | - Added ENABLE_FW_LOGGING_CHECK so that the Netfilter policy check can be |
|---|
| 440 | enabled/disabled easily via psad.conf. |
|---|
| 441 | - Enhanced -D output to include "uname -a" and "perl -V" output. |
|---|
| 442 | - Added ENABLE_RENEW_BLOCK_EMAILS to allow whether renew emails are sent |
|---|
| 443 | for auto-blocked addresses. |
|---|
| 444 | |
|---|
| 445 | psad-1.4.4 (11/27/2005): |
|---|
| 446 | - Added MAC address reporting in psad email alerts. This feature is |
|---|
| 447 | enabled via a new config keyword "ENABLE_MAC_ADDR_REPORTING". |
|---|
| 448 | - Added --fw-rm-block-ip <ip> option to allow IP addresses to be removed |
|---|
| 449 | from the auto-blocking chains from the command line. |
|---|
| 450 | - Updated command line firewall arguments to write commands to the |
|---|
| 451 | AUTO_IPT_SOCK domain socket. |
|---|
| 452 | - Added the ability to specify ports and port ranges to auto_dl file. |
|---|
| 453 | - Added --force-mod-install command line argument to installer to force |
|---|
| 454 | perl modules used by psad to be installed within /usr/lib/psad |
|---|
| 455 | regardless of whether they already exist in the system perl tree. |
|---|
| 456 | - Bugfix in the installer to seek() to the end of the fwdata file |
|---|
| 457 | - Bugfix for psad repeatedly trying to remove the same IP address(es) |
|---|
| 458 | from the auto-blocking chains. |
|---|
| 459 | instead of reading the entire thing into memory. |
|---|
| 460 | - Added the ability to truncate the fwdata file via a new configuration |
|---|
| 461 | keyword "TRUNCATE_FWDATA" (this is enabled by default). |
|---|
| 462 | - Bugfix in auto-blocking mode for deleting AUTO_IPT_SOCK when a HUP |
|---|
| 463 | signal is received. |
|---|
| 464 | - Bugfix for parsing Netfilter policies that contain ULOG logging rules |
|---|
| 465 | instead of the standard LOG target. |
|---|
| 466 | - Removed the smtpdaemon requirement in the RPM because psad might be |
|---|
| 467 | configured to not send email alerts. |
|---|
| 468 | |
|---|
| 469 | psad-1.4.3 (09/27/2005): |
|---|
| 470 | - Bugfixes for auto-blocking code. Timeouts should be handled |
|---|
| 471 | properly, including cached IP addresses in the auto_blocked_iptables |
|---|
| 472 | file that are referenced upon psad startup. Communication with the |
|---|
| 473 | running psad is performed over a Unix domain socket in --fw-block |
|---|
| 474 | mode. |
|---|
| 475 | - Bugfix to seek to the end of the fwdata file instead of reading the |
|---|
| 476 | entire thing into memory and then looking for newly written logging |
|---|
| 477 | messages. This drastically reduces the amount of memory required |
|---|
| 478 | by psad. |
|---|
| 479 | - Updated to only display psad chains if --verbose is set |
|---|
| 480 | - Updated to automatically flush the psad auto-response Netfilter chains |
|---|
| 481 | at start time (subject to a new config keyword "FLUSH_IPT_AT_INIT"). |
|---|
| 482 | |
|---|
| 483 | psad-1.4.2 (07/15/2005): |
|---|
| 484 | - Dependency bugfixes for mail binary. |
|---|
| 485 | - Bugfix for various IGNORE_* keywords not being honored. |
|---|
| 486 | - Bugfix for not timing out blocked IP addresses from a previous run. |
|---|
| 487 | - Updated to version 0.2 of the IPTables::ChainMgr module. |
|---|
| 488 | - Updated to not truncate the fwdata file upon psad startup. |
|---|
| 489 | - Added --fw-dump which produces a sanitized (i.e. no IP addresses) |
|---|
| 490 | version of the local Netfilter policy. Also added --fw-include-ips |
|---|
| 491 | to (optionally) not sanitize IPs/nets. Note that the 0.0.0.0 and |
|---|
| 492 | 0.0.0.0/0 IPs/nets are not sanitized since they give no useful |
|---|
| 493 | information about specific IPs/nets. |
|---|
| 494 | - Added ulogd data collection mode. |
|---|
| 495 | - Bugfix for FW_MSG_SEARCH default (at least "DROP" is included now |
|---|
| 496 | even if FW_SEARCH_ALL is set to "N"). |
|---|
| 497 | - Bugfix for non-network address for subnet specified with --fw-block. |
|---|
| 498 | - Bugfix for multiple --fw-block IPs/nets. |
|---|
| 499 | - Added README.SYSLOG (Francois Marier contributed the content). |
|---|
| 500 | - Made email alert prefixes (such as "[psad-alert]") customizable via |
|---|
| 501 | psad.conf. |
|---|
| 502 | |
|---|
| 503 | psad-1.4.1 (03/12/2005): |
|---|
| 504 | - Updated to Snort-2.3 rules in the snort_rules directory. |
|---|
| 505 | - Re-worked syslog installation portion of install.pl. The user will |
|---|
| 506 | always be prompted to enter the syslog daemon now, and also added |
|---|
| 507 | the --syslog-conf arg to allow the config file path to be specified |
|---|
| 508 | on the install.pl command line. |
|---|
| 509 | - Bugfix in install.pl for using IP address instead of network address |
|---|
| 510 | of directly connected subnets. |
|---|
| 511 | - Updated to version 4.6.23 of the whois client. |
|---|
| 512 | - Bugfix for distinguishing OPT field associated with --log-tcp-options |
|---|
| 513 | vs. --log-ip-options. |
|---|
| 514 | - Bugfix for syslog format that may not include the "kernel:" tag. |
|---|
| 515 | - Applied patch to only install perl modules that are not already |
|---|
| 516 | installed (Blair Zajac). |
|---|
| 517 | - Bugfix for the psad version number that is sent in DShield alerts. |
|---|
| 518 | - Updated Psad module directory structure to be consistent with current |
|---|
| 519 | versions of perl (5.8.x). |
|---|
| 520 | - Added IPTables::ChainMgr module. |
|---|
| 521 | - Completely re-worked the Netfilter auto-blocking code to use |
|---|
| 522 | IPTables::ChainMgr functions so that auto-generated rules are placed |
|---|
| 523 | in chains created by psad. |
|---|
| 524 | - Added IPT_AUTO_CHAIN keyword in psad.conf which is used to define the |
|---|
| 525 | set of chains to which auto-generated Netfilter rules are added. |
|---|
| 526 | - Added --fw-list-auto to display the contents of psad Netfilter |
|---|
| 527 | chains. |
|---|
| 528 | - Added the ability to import an IP into the Netfilter auto-blocking |
|---|
| 529 | chains from the command line with --fw-block-ip. This allows psad to |
|---|
| 530 | apply its timeout mechanism against such IPs/nets. |
|---|
| 531 | - Added the ability to ignore packets based on input interface with |
|---|
| 532 | IGNORE_INTERFACES in psad.conf. |
|---|
| 533 | - Re-worked auto_dl code, better hash design and searching function. |
|---|
| 534 | - Removed dependency on sendmail command unless DShield alerting is |
|---|
| 535 | enabled and a DShield user id is specified. |
|---|
| 536 | - Added ALERTING_METHODS keyword in the file alert.conf to allow either |
|---|
| 537 | syslog or email alerts (or both) to be disabled. Psad and psadwatchd |
|---|
| 538 | reference this file. |
|---|
| 539 | |
|---|
| 540 | psad-1.4.0 (11/26/2004): |
|---|
| 541 | - Added p0f-style passive OS fingerprinting through the use of the OPT |
|---|
| 542 | field in iptables log messages (which is only logged through the use |
|---|
| 543 | of the --log-tcp-options command line arg to iptables). |
|---|
| 544 | - Bugfix for iptables log messages that include tcp sequence numbers |
|---|
| 545 | (see the iptables --log-tcp-sequence command line argument). |
|---|
| 546 | - Bugfix for O_RDONLY open flag when kmsgsd receives a HUP signal. |
|---|
| 547 | |
|---|
| 548 | psad-1.3.4 (10/17/2004): |
|---|
| 549 | - Bugfix for init script directory on Slackware systems. |
|---|
| 550 | - Bugfix for null prefix counters. |
|---|
| 551 | - Added --whois-analysis argument since whois lookups are now disabled |
|---|
| 552 | by default when running in analysis (-A) mode. |
|---|
| 553 | - Updated psad_init() to rework setup() and import orderings vs. |
|---|
| 554 | --fw-analyze and --Benchmark modes. |
|---|
| 555 | - Added bidirectional iptables auto-blocking support for all chains |
|---|
| 556 | except for the INPUT and OUTPUT chains. |
|---|
| 557 | - Better syslog message support when run in auto-blocking mode. |
|---|
| 558 | - Added iptables auto-block rules section to --Status output. |
|---|
| 559 | - Added init script for Fedora systems. |
|---|
| 560 | - Added default_log() function to IPTables::Parse. This function |
|---|
| 561 | parses user defined chains in an effort to find default logging |
|---|
| 562 | rules. |
|---|
| 563 | - Added EMAIL_LIMIT_STATUS_MSG to control whether or not psad sends a |
|---|
| 564 | status email when the PSAD_EMAIL_LIMIT threshold has been reached by |
|---|
| 565 | an IP address. |
|---|
| 566 | - Added ENABLE_SCAN_ARCHIVE to control whether or not psad archives old |
|---|
| 567 | scan data within /var/log/psad/scan_archive at start time. |
|---|
| 568 | |
|---|
| 569 | psad-1.3.3 (09/09/2004): |
|---|
| 570 | - Fixed __WARN__ and __DIE__ exception handlers so that they |
|---|
| 571 | reference global message variables. |
|---|
| 572 | - Fixed auto danger level assignments. Network auto assignments as |
|---|
| 573 | well as per-protocol assignments work now. |
|---|
| 574 | - Added SYSLOG_DAEMON variable to define which syslog daemon is running |
|---|
| 575 | on the underlying system instead of just guessing. |
|---|
| 576 | - Added the ability to ignore both ranges and specific ports/protocols |
|---|
| 577 | with a new variable IGNORE_PORTS in psad.conf. |
|---|
| 578 | - Bugfix to make sure email addresses are separated by spaces when |
|---|
| 579 | Psad::sendmail() is called. |
|---|
| 580 | - Bugfix for ipt_prefix counters not being parsed correct at import |
|---|
| 581 | time. |
|---|
| 582 | - Removed exclude_auto_ignore_ip() since this function was made |
|---|
| 583 | unnecessary by newly rewritten auto-assign code. |
|---|
| 584 | - Bugfix for Text::Wrap calls in install.pl uninstall() routine. |
|---|
| 585 | - Bugfix for using --no-fw-search-all even when FW_SEARCH_ALL is |
|---|
| 586 | set to "Y". |
|---|
| 587 | - Removed extraneous ".." and "**" chars from syslog messages, and |
|---|
| 588 | updated to use [+] prefix strings. |
|---|
| 589 | - Moved init scripts into init-scripts directory within source tree. |
|---|
| 590 | - Removed dependency on Bit::Vector (psad does not seem to make use |
|---|
| 591 | of any Date::Calc functions that require it). |
|---|
| 592 | - Wrapped copy() and move() calls with "or die()" to make them |
|---|
| 593 | safer in install.pl. |
|---|
| 594 | - Added check for existing psad process in install.pl. |
|---|
| 595 | - Updated to a new psad email alert subject format. Prefixes of |
|---|
| 596 | "[psad-alert]", "[psad-error]", and "[psad-status]" are used now. |
|---|
| 597 | - Permissions fixes with umask() setting in /var/log/psad, permissions |
|---|
| 598 | fixes for files in /etc/psad at install time. |
|---|
| 599 | |
|---|
| 600 | psad-1.3.2 (06/25/2004): |
|---|
| 601 | - Removed FW_MSG_SEARCH from psad.conf, and created a new config |
|---|
| 602 | file "fw_search.conf" that both psad and kmsgsd use to get the |
|---|
| 603 | FW_MSG_SEARCH definition(s). |
|---|
| 604 | - Added default mode of parsing all iptables messages instead of |
|---|
| 605 | just those that contain specific search strings. A new config |
|---|
| 606 | variable "FW_SEARCH_ALL" was added to fw_search.conf that |
|---|
| 607 | controls this mode. |
|---|
| 608 | - Updated psad and kmsgsd so that multiple firewall search strings |
|---|
| 609 | can be specified through multiple FW_MSG_SEARCH variables in |
|---|
| 610 | fw_search.conf. |
|---|
| 611 | - Added iptables chain and logging-prefix tracking for current |
|---|
| 612 | scan interval in email alerts. |
|---|
| 613 | - Added protocol-specific auto-danger level assignments. |
|---|
| 614 | - Added total scan source and destination IP address counters in |
|---|
| 615 | --Status output. |
|---|
| 616 | - Added number of email alerts sent and OS guess in default |
|---|
| 617 | --Status output. The output is getting wide now, so there is |
|---|
| 618 | also a new option --status-brief that will remove the alerts |
|---|
| 619 | sent and OS guess columns. |
|---|
| 620 | - Added getopt() command line arg parsing to kmsgsd with two new |
|---|
| 621 | options "-c" (for config file path) and "-k" (for fw_search.conf |
|---|
| 622 | path). |
|---|
| 623 | - Made iptables parsing code into its own script "fwcheck_psad" |
|---|
| 624 | that gets called by psad. |
|---|
| 625 | - Added Dshield stats summary to --Status output. |
|---|
| 626 | - Bugfix for auto-ignore IP addresses and networks being missed. |
|---|
| 627 | - Made parsing of ifconfig output language independent (should |
|---|
| 628 | handle French now for example). |
|---|
| 629 | - Removed "psad_" prefix on files psad_signatures, psad_auto_ips, |
|---|
| 630 | psad_posf, and psad_icmp_types in /etc/psad/. |
|---|
| 631 | - Updated to version 4.6.14 of the whois client. |
|---|
| 632 | |
|---|
| 633 | psad-1.3.1 (12/25/2003): |
|---|
| 634 | - Added the ability to import /var/log/psad/<ip> directories |
|---|
| 635 | back into memory so scan data remains persistent across |
|---|
| 636 | psad restarts or system reboots. |
|---|
| 637 | - Added --Analyze-msgs to run psad in analysis mode against an |
|---|
| 638 | iptables logfile (/var/log/psad/fwdata by default). The logfile |
|---|
| 639 | path can be changed with --messages-file. |
|---|
| 640 | - Added icmp type and code validation against RFC 792. |
|---|
| 641 | - Bugfix for being too strict with FW_MSG_SEARCH. |
|---|
| 642 | - Added port ranges for tcp and udp scans in <ip>/<dst>_packet_ctr. |
|---|
| 643 | - Added <ip>/<dst>_start_time and <ip>/os_guess. |
|---|
| 644 | - Bugfix for missing --no-signatures code. |
|---|
| 645 | - Updated to Snort-2.1 signatures. |
|---|
| 646 | |
|---|
| 647 | psad-1.3 (11/30/2003): |
|---|
| 648 | - Replaced all signatures in psad_signatures with updated snort |
|---|
| 649 | rules. |
|---|
| 650 | - Added support for source and destination ip addresses in |
|---|
| 651 | signature matching code. A new variable "HOME_NET" makes this |
|---|
| 652 | possible. |
|---|
| 653 | - Added support for the iptables output chain. |
|---|
| 654 | - Added chain tracking for all signatures. |
|---|
| 655 | - Replaced match_fastsigs() with two new routines for tcp and |
|---|
| 656 | udp signature matching that don't autovivify hash keys. |
|---|
| 657 | - Removed support for ipchains. |
|---|
| 658 | - Added support for metalog. |
|---|
| 659 | - Removed all "Undefined Code" signatures from psad_signatures. |
|---|
| 660 | - Re-worked %auto_blocked_ips hash and corresponding blocking |
|---|
| 661 | routines. This (hopefully) fixes a restart bug seen on older |
|---|
| 662 | systems such as those that are still running versions of perl |
|---|
| 663 | less than 5.6. |
|---|
| 664 | - Re-worked firewall policy parsing routines. Chains that have |
|---|
| 665 | a default policy of DROP are handled properly now. |
|---|
| 666 | - Bugfix for missing NULL char in kmsgsd.c. |
|---|
| 667 | - Updated scan alerting format. Put current interval protocol |
|---|
| 668 | status before source and destination addresses. |
|---|
| 669 | - Buffer overflow fix in kmsgsd.c for size of buf[MAX_LINE_BUF] |
|---|
| 670 | buffer in read() call. |
|---|
| 671 | - Added --no-kmsgsd option to aid in psad --debug mode. |
|---|
| 672 | |
|---|
| 673 | psad-1.2.4 (10/15/2003): |
|---|
| 674 | - Added danger level to subject line in email alerts. |
|---|
| 675 | - Removed diskmond altogether since psad now handles disk space |
|---|
| 676 | thresholds directly. This allows filehandles to be handled |
|---|
| 677 | properly. |
|---|
| 678 | - Added auto_block_ignore_ip() to prevent 0.0.0.0, 127.0.0.1, |
|---|
| 679 | and local interface ips from being included in auto blocking |
|---|
| 680 | routines. |
|---|
| 681 | - Added Bit::Vector module to stop installation warnings from |
|---|
| 682 | Date::Calc. |
|---|
| 683 | - Made get_local_ips() called periodically since local addresses |
|---|
| 684 | may change (dhcp, etc.). |
|---|
| 685 | - Added installation code and init script for Gentoo Linux. |
|---|
| 686 | - Bugfix for INIT_DIR in uninstall() routine in install.pl. |
|---|
| 687 | - Bugfix for auto-blocking loop after timeouts are hit. |
|---|
| 688 | - Added --status-dl [N] to display status information only for |
|---|
| 689 | those scans that reach at least [N]. |
|---|
| 690 | |
|---|
| 691 | psad-1.2.3 (09/12/2003): |
|---|
| 692 | - Added interface tracking for scans. |
|---|
| 693 | - Bugfix for not opening /etc/hosts.deny the right way in |
|---|
| 694 | tcpwr_block(). |
|---|
| 695 | - Bugfix for psadfifo path in syslog-ng config. |
|---|
| 696 | - Better format for summary stats section in email alerts. |
|---|
| 697 | - Bugfix for INIT_DIR path on non-RedHat systems. |
|---|
| 698 | - Bugfix for gzip path. |
|---|
| 699 | - Make Psad.pm installed last of all perl modules installed |
|---|
| 700 | by psad. |
|---|
| 701 | - Added additional call to incr_syscall_ctr() in psadwatchd.c |
|---|
| 702 | |
|---|
| 703 | psad-1.2.2 (08/24/2003): |
|---|
| 704 | - psad is finally available as an RPM package. |
|---|
| 705 | - Added chain tracking for iptables. |
|---|
| 706 | - Added chain counts to --Status output. |
|---|
| 707 | - Bugfix for psad not taking into account multiple scan |
|---|
| 708 | destinations. |
|---|
| 709 | - Reworked auto-blocking code for both tcpwrappers and |
|---|
| 710 | iptables. Lines added to /etc/hosts.deny will no longer be |
|---|
| 711 | duplicated. Added IPTABLES_AUTO_RULENUM and |
|---|
| 712 | IPCHAINS_AUTO_RULENUM so auto rules can be inserted at a |
|---|
| 713 | configurable point within iptables and ipchains policies. |
|---|
| 714 | - Psad now installs all perl modules within /usr/lib/psad. |
|---|
| 715 | - Removed /var/log/psad/<ip>/scanlog file since it was wasting |
|---|
| 716 | too much disk. |
|---|
| 717 | - Made psad, psadwatchd, and diskmond take the machine hostname |
|---|
| 718 | from their respective config files. This makes installation |
|---|
| 719 | via the rpm easier, and is generally cleaner. |
|---|
| 720 | - Added scan destination in --Status output. |
|---|
| 721 | - Added --status-sort-dl (the default status output is now |
|---|
| 722 | sorted by ip address by default). |
|---|
| 723 | |
|---|
| 724 | psad-1.2.1 (07/11/2003): |
|---|
| 725 | - Bugfix for multiple processes being spawned by psadwatchd |
|---|
| 726 | due to lack of proper config variables in the new split |
|---|
| 727 | daemon config files. |
|---|
| 728 | - Bugfix for old scan messages being regenerated if a HUP |
|---|
| 729 | signal is received. |
|---|
| 730 | - Bugfix for incorrectly calculating disk utilization in |
|---|
| 731 | diskmond.c. |
|---|
| 732 | - Extended install.pl to include compression for archived |
|---|
| 733 | files in /etc/psad. |
|---|
| 734 | - Added preserve questions in install.pl for the psad |
|---|
| 735 | signature and auto ips files. |
|---|
| 736 | - Bugfix for --USR1 command line switch not mapping to the |
|---|
| 737 | correct subroutine. |
|---|
| 738 | - Bugfix for psad man page missing the pipe character in |
|---|
| 739 | psadfifo line for syslog.conf. |
|---|
| 740 | |
|---|
| 741 | psad-1.2 (06/18/2003): |
|---|
| 742 | - Added passive OS fingerprinting based on packet ttl, length, |
|---|
| 743 | tos, and id fields. |
|---|
| 744 | - Added dshield.org alerting capability. |
|---|
| 745 | - Added exec_external_script() for external script execution. |
|---|
| 746 | - Added auto blocked timeouts. |
|---|
| 747 | - Implemented config re-imports via HUP signals in a manner |
|---|
| 748 | similar to various other system daemons (sysylog, apache |
|---|
| 749 | etc.) |
|---|
| 750 | - Better --Status output that shows packet counts per protocol |
|---|
| 751 | for each ip. |
|---|
| 752 | - Added --ip-status for more verbose status output for a |
|---|
| 753 | particular ip address. |
|---|
| 754 | - Added config preservation code to install.pl. |
|---|
| 755 | - Added Psad::psyslog(). |
|---|
| 756 | - Split psad.conf into a separate config file for each of the |
|---|
| 757 | four psad daemons. |
|---|
| 758 | - Completely re-worked the auto blocking code (made dedicated |
|---|
| 759 | files for iptables and ipchains block methods). |
|---|
| 760 | - Added danger level hash. |
|---|
| 761 | - Minor code cleanups (shorter hash keys, etc.). |
|---|
| 762 | |
|---|
| 763 | psad-1.1.1 (04/26/2003): |
|---|
| 764 | - Bugfix for incorrect usage of %scan hash keys associated |
|---|
| 765 | with tcp/udp when the current protocol is icmp. |
|---|
| 766 | - Bugfix for being too strict on iptable default log string. |
|---|
| 767 | - Reworked USR1 signal handler so the Data::Dumper function |
|---|
| 768 | call is made in the main part of the psad code. |
|---|
| 769 | - Added a startup message for psad. |
|---|
| 770 | - Minor bugfix for leading whitespace in auto_ips. |
|---|
| 771 | |
|---|
| 772 | psad-1.1 (04/20/2003): |
|---|
| 773 | - Added the IPTables::Parse module for better processing of |
|---|
| 774 | the iptables ruleset. |
|---|
| 775 | - Added --snort-sids so that iptables messages generated by |
|---|
| 776 | fwsnort can be included in alerts. Such alerts now include |
|---|
| 777 | the content fields of packets (fwsnort uses the iptables |
|---|
| 778 | string match module). |
|---|
| 779 | - Added the ability to specify entire networks in the auto |
|---|
| 780 | ips file through the use of the Net::IPv4Addr module. |
|---|
| 781 | - Better logging format that reinstates the current interval, |
|---|
| 782 | and adds an "overall stats" section that includes packet |
|---|
| 783 | counters per protocol. |
|---|
| 784 | - Removed the PROTO hash key since it was unnecesssary. |
|---|
| 785 | - Better benchmarking code. |
|---|
| 786 | - Bug fix for incorrectly looking for the "MAC" string in |
|---|
| 787 | iptables messages that could have been generated by the |
|---|
| 788 | FORWARD chain. |
|---|
| 789 | |
|---|
| 790 | psad-1.0 (02/27/2003): |
|---|
| 791 | - Added --Benchmark and --packets command line options to support |
|---|
| 792 | psad benchmarking. |
|---|
| 793 | - Bugfix for improperly detecting NULL scans. |
|---|
| 794 | - Completely redesigned website. |
|---|
| 795 | |
|---|
| 796 | psad-1.0.0-pre4 (11/26/2002): |
|---|
| 797 | - Rewrote kmsgsd and psadwatchd in C. |
|---|