root/psad/tags/psad-2.0.8/ChangeLog

Revision 2103, 38.7 kB (checked in by mbr, 1 year ago)

updated release date

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