root/psad/tags/psad-1.4.8/ChangeLog

Revision 1625, 21.8 kB (checked in by mbr, 3 years ago)

version 1.4.8

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 psad-1.4.8 (10/15/2006):
2     - Added the ability to get the auto-blocking status for a specific IP
3       address in --status-ip mode.
4     - Bugfix to use the IPT_OUTPUT_FILE and IPT_ERROR_FILE configuration
5       variables in fwknopd.
6     - Bugfix to restore "start" functionality in Gentoo init script.
7     - Added the ability to selectively disable psad auto-blocking emails.
8     - Added more rigorous IP matching regex from Sebastien J. (contributed
9       originally for fwknop).
10
11 psad-1.4.7 (09/10/2006):
12     - Completely re-worked IPTables::ChainMgr to support the return of
13       iptables error messages that are collected via stderr.  This is critical
14       to fixing a bug where psad would sometimes die on an iptables command
15       but no information would be returned to the user.
16     - Added the ability to specify the position for both the jump rule into
17       the psad chains as well as the position for new rules within the psad
18       chains via the -I argument to iptables.  This fixes a bug where the user
19       was given the impression that the IPTABLES_AUTO_RULENUM would accomplish
20       this.
21     - Populated the _debug option in the IPTables::ChainMgr module, and also
22       added a _verbose option so that the specific iptables commands can
23       actually be seen as IPTables::ChainMgr functions are called.
24     - Added code to install.pl to ask the user if a manual restart of syslog
25       is ok upon an unsuccessful test of the syslog reconfiguration.  This
26       fixes a bug where some syslog daemons might not re-import their
27       configurations after receiving a HUP signal.
28     - Bugfix for incorrect config variable name that gated Netfilter
29       prerequisite checks.
30     - Added code to install.pl to update command paths in psad.conf and
31       psadwatchd.conf if any of the paths are broken (i.e. the local system
32       does not conform to the default paths).  By default this only happens if
33       the user does not want old configs to be merged, but to override this
34       use the new --path-update command line argument to install.pl.
35     - Added the --Skip-mod-install command line argument to install.pl to
36       allow all perl module installs to be skipped.
37     - Added the --force-mod-regex command line argument to install.pl to allow
38       a regex match on perl module names to force matching modules to be
39       installed.
40     - Added the logrotate.psad file (contributed by Albert Whale).
41
42 psad-1.4.6 (06/13/2006):
43     - Added ENABLE_AUTO_IDS_REGEX and AUTO_BLOCK_REGEX to allow filtering on
44       logging prefixes.
45     - Added code to save DShield email to a file.
46     - Added IPTABLES_PREREQ_CHECK to allow the administrator to control the
47       frequency of Netfilter checks (for auto-block compatibility).
48     - Added IGNORE_LOG_PREFIXES to allow certain log prefixes to be completely
49       ignored by psad.
50     - Added classification.config file from Snort-2.3.3 so that psad can
51       assign danger levels based upon Snort rule class type.  This is useful
52       when also running fwsnort.
53     - Added snort_rule_dl to allow specific psad to assign specific danger
54       level values to particular signatures.  This is useful if you want to
55       do define certain Snort rules as being particularly evil (or not).
56       Running fwsnort is also necessary to take advantage of this feature.
57     - Added reference.config so that psad can include reference information in
58       email alerts that are derived from attacks detected by fwsnort.
59     - Updated to Snort-2.3.3 signatures.
60     - Updated to whois-4.7.13.
61
62 psad-1.4.5 (01/13/2006):
63     - Bugfix in IPTables::Parse to allow the limit target to apply to
64       logging rules.
65     - Made calls to chain creation and jump rule functions for only every
66       100 block calls in auto-IDS mode.
67     - Bugfix to make sure /var/run/psad directory exists at startup since
68       this directory is removed by some Linux distributions at boot time.
69     - Bugfix for zero masks in auto_dl; this allows a network of "0.0.0.0/0"
70       to be specified.
71     - Added ENABLE_FW_LOGGING_CHECK so that the Netfilter policy check can be
72       enabled/disabled easily via psad.conf.
73     - Enhanced -D output to include "uname -a" and "perl -V" output.
74     - Added ENABLE_RENEW_BLOCK_EMAILS to allow whether renew emails are sent
75       for auto-blocked addresses.
76
77 psad-1.4.4 (11/27/2005):
78     - Added MAC address reporting in psad email alerts.  This feature is
79       enabled via a new config keyword "ENABLE_MAC_ADDR_REPORTING".
80     - Added --fw-rm-block-ip <ip> option to allow IP addresses to be removed
81       from the auto-blocking chains from the command line.
82     - Updated command line firewall arguments to write commands to the
83       AUTO_IPT_SOCK domain socket.
84     - Added the ability to specify ports and port ranges to auto_dl file.
85     - Added --force-mod-install command line argument to installer to force
86       perl modules used by psad to be installed within /usr/lib/psad
87       regardless of whether they already exist in the system perl tree.
88     - Bugfix in the installer to seek() to the end of the fwdata file
89     - Bugfix for psad repeatedly trying to remove the same IP address(es)
90       from the auto-blocking chains.
91       instead of reading the entire thing into memory.
92     - Added the ability to truncate the fwdata file via a new configuration
93       keyword "TRUNCATE_FWDATA" (this is enabled by default).
94     - Bugfix in auto-blocking mode for deleting AUTO_IPT_SOCK when a HUP
95       signal is received.
96     - Bugfix for parsing Netfilter policies that contain ULOG logging rules
97       instead of the standard LOG target.
98     - Removed the smtpdaemon requirement in the RPM because psad might be
99       configured to not send email alerts.
100
101 psad-1.4.3 (09/27/2005):
102     - Bugfixes for auto-blocking code.  Timeouts should be handled
103       properly, including cached IP addresses in the auto_blocked_iptables
104       file that are referenced upon psad startup.  Communication with the
105       running psad is performed over a Unix domain socket in --fw-block
106       mode.
107     - Bugfix to seek to the end of the fwdata file instead of reading the
108       entire thing into memory and then looking for newly written logging
109       messages.  This drastically reduces the amount of memory required
110       by psad.
111     - Updated to only display psad chains if --verbose is set
112     - Updated to automatically flush the psad auto-response Netfilter chains
113       at start time (subject to a new config keyword "FLUSH_IPT_AT_INIT").
114
115 psad-1.4.2 (07/15/2005):
116     - Dependency bugfixes for mail binary.
117     - Bugfix for various IGNORE_* keywords not being honored.
118     - Bugfix for not timing out blocked IP addresses from a previous run.
119     - Updated to version 0.2 of the IPTables::ChainMgr module.
120     - Updated to not truncate the fwdata file upon psad startup.
121     - Added --fw-dump which produces a sanitized (i.e. no IP addresses)
122       version of the local Netfilter policy.  Also added --fw-include-ips
123       to (optionally) not sanitize IPs/nets.  Note that the 0.0.0.0 and
124       0.0.0.0/0 IPs/nets are not sanitized since they give no useful
125       information about specific IPs/nets.
126     - Added ulogd data collection mode.
127     - Bugfix for FW_MSG_SEARCH default (at least "DROP" is included now
128       even if FW_SEARCH_ALL is set to "N").
129     - Bugfix for non-network address for subnet specified with --fw-block.
130     - Bugfix for multiple --fw-block IPs/nets.
131     - Added README.SYSLOG (Francois Marier contributed the content).
132     - Made email alert prefixes (such as "[psad-alert]") customizable via
133       psad.conf.
134
135 psad-1.4.1 (03/12/2005):
136     - Updated to Snort-2.3 rules in the snort_rules directory.
137     - Re-worked syslog installation portion of install.pl.  The user will
138       always be prompted to enter the syslog daemon now, and also added
139       the --syslog-conf arg to allow the config file path to be specified
140       on the install.pl command line.
141     - Bugfix in install.pl for using IP address instead of network address
142       of directly connected subnets.
143     - Updated to version 4.6.23 of the whois client.
144     - Bugfix for distinguishing OPT field associated with --log-tcp-options
145       vs. --log-ip-options.
146     - Bugfix for syslog format that may not include the "kernel:" tag.
147     - Applied patch to only install perl modules that are not already
148       installed (Blair Zajac).
149     - Bugfix for the psad version number that is sent in DShield alerts.
150     - Updated Psad module directory structure to be consistent with current
151       versions of perl (5.8.x).
152     - Added IPTables::ChainMgr module.
153     - Completely re-worked the Netfilter auto-blocking code to use
154       IPTables::ChainMgr functions so that auto-generated rules are placed
155       in chains created by psad.
156     - Added IPT_AUTO_CHAIN keyword in psad.conf which is used to define the
157       set of chains to which auto-generated Netfilter rules are added.
158     - Added --fw-list-auto to display the contents of psad Netfilter
159       chains.
160     - Added the ability to import an IP into the Netfilter auto-blocking
161       chains from the command line with --fw-block-ip.  This allows psad to
162       apply its timeout mechanism against such IPs/nets.
163     - Added the ability to ignore packets based on input interface with
164       IGNORE_INTERFACES in psad.conf.
165     - Re-worked auto_dl code, better hash design and searching function.
166     - Removed dependency on sendmail command unless DShield alerting is
167       enabled and a DShield user id is specified.
168     - Added ALERTING_METHODS keyword in the file alert.conf to allow either
169       syslog or email alerts (or both) to be disabled.  Psad and psadwatchd
170       reference this file.
171
172 psad-1.4.0 (11/26/2004):
173     - Added p0f-style passive OS fingerprinting through the use of the OPT
174       field in iptables log messages (which is only logged through the use
175       of the --log-tcp-options command line arg to iptables).
176     - Bugfix for iptables log messages that include tcp sequence numbers
177       (see the iptables --log-tcp-sequence command line argument).
178     - Bugfix for O_RDONLY open flag when kmsgsd receives a HUP signal.
179
180 psad-1.3.4 (10/17/2004):
181     - Bugfix for init script directory on Slackware systems.
182     - Bugfix for null prefix counters.
183     - Added --whois-analysis argument since whois lookups are now disabled
184       by default when running in analysis (-A) mode.
185     - Updated psad_init() to rework setup() and import orderings vs.
186       --fw-analyze and --Benchmark modes.
187     - Added bidirectional iptables auto-blocking support for all chains
188       except for the INPUT and OUTPUT chains.
189     - Better syslog message support when run in auto-blocking mode.
190     - Added iptables auto-block rules section to --Status output.
191     - Added init script for Fedora systems.
192     - Added default_log() function to IPTables::Parse.  This function
193       parses user defined chains in an effort to find default logging
194       rules.
195     - Added EMAIL_LIMIT_STATUS_MSG to control whether or not psad sends a
196       status email when the PSAD_EMAIL_LIMIT threshold has been reached by
197       an IP address.
198     - Added ENABLE_SCAN_ARCHIVE to control whether or not psad archives old
199       scan data within /var/log/psad/scan_archive at start time.
200
201 psad-1.3.3 (09/09/2004):
202     - Fixed __WARN__ and __DIE__ exception handlers so that they
203       reference global message variables.
204     - Fixed auto danger level assignments.  Network auto assignments as
205       well as per-protocol assignments work now.
206     - Added SYSLOG_DAEMON variable to define which syslog daemon is running
207       on the underlying system instead of just guessing.
208     - Added the ability to ignore both ranges and specific ports/protocols
209       with a new variable IGNORE_PORTS in psad.conf.
210     - Bugfix to make sure email addresses are separated by spaces when
211       Psad::sendmail() is called.
212     - Bugfix for ipt_prefix counters not being parsed correct at import
213       time.
214     - Removed exclude_auto_ignore_ip() since this function was made
215       unnecessary by newly rewritten auto-assign code.
216     - Bugfix for Text::Wrap calls in install.pl uninstall() routine.
217     - Bugfix for using --no-fw-search-all even when FW_SEARCH_ALL is
218       set to "Y".
219     - Removed extraneous ".." and "**" chars from syslog messages, and
220       updated to use [+] prefix strings.
221     - Moved init scripts into init-scripts directory within source tree.
222     - Removed dependency on Bit::Vector (psad does not seem to make use
223       of any Date::Calc functions that require it).
224     - Wrapped copy() and move() calls with "or die()" to make them
225       safer in install.pl.
226     - Added check for existing psad process in install.pl.
227     - Updated to a new psad email alert subject format.  Prefixes of
228       "[psad-alert]", "[psad-error]", and "[psad-status]" are used now.
229     - Permissions fixes with umask() setting in /var/log/psad, permissions
230       fixes for files in /etc/psad at install time.
231
232 psad-1.3.2 (06/25/2004):
233     - Removed FW_MSG_SEARCH from psad.conf, and created a new config
234       file "fw_search.conf" that both psad and kmsgsd use to get the
235       FW_MSG_SEARCH definition(s).
236     - Added default mode of parsing all iptables messages instead of
237       just those that contain specific search strings.  A new config
238       variable "FW_SEARCH_ALL" was added to fw_search.conf that
239       controls this mode.
240     - Updated psad and kmsgsd so that multiple firewall search strings
241       can be specified through multiple FW_MSG_SEARCH variables in
242       fw_search.conf.
243     - Added iptables chain and logging-prefix tracking for current
244       scan interval in email alerts.
245     - Added protocol-specific auto-danger level assignments.
246     - Added total scan source and destination IP address counters in
247       --Status output.
248     - Added number of email alerts sent and OS guess in default
249       --Status output.  The output is getting wide now, so there is
250       also a new option --status-brief that will remove the alerts
251       sent and OS guess columns.
252     - Added getopt() command line arg parsing to kmsgsd with two new
253       options "-c" (for config file path) and "-k" (for fw_search.conf
254       path).
255     - Made iptables parsing code into its own script "fwcheck_psad"
256       that gets called by psad.
257     - Added Dshield stats summary to --Status output.
258     - Bugfix for auto-ignore IP addresses and networks being missed.
259     - Made parsing of ifconfig output language independent (should
260       handle French now for example).
261     - Removed "psad_" prefix on files psad_signatures, psad_auto_ips,
262       psad_posf, and psad_icmp_types in /etc/psad/.
263     - Updated to version 4.6.14 of the whois client.
264
265 psad-1.3.1 (12/25/2003):
266     - Added the ability to import /var/log/psad/<ip> directories
267       back into memory so scan data remains persistent across
268       psad restarts or system reboots.
269     - Added --Analyze-msgs to run psad in analysis mode against an
270       iptables logfile (/var/log/psad/fwdata by default).  The logfile
271       path can be changed with --messages-file.
272     - Added icmp type and code validation against RFC 792.
273     - Bugfix for being too strict with FW_MSG_SEARCH.
274     - Added port ranges for tcp and udp scans in <ip>/<dst>_packet_ctr.
275     - Added <ip>/<dst>_start_time and <ip>/os_guess.
276     - Bugfix for missing --no-signatures code.
277     - Updated to Snort-2.1 signatures.
278
279 psad-1.3 (11/30/2003):
280     - Replaced all signatures in psad_signatures with updated snort
281       rules.
282     - Added support for source and destination ip addresses in
283       signature matching code.  A new variable "HOME_NET" makes this
284       possible.
285     - Added support for the iptables output chain.
286     - Added chain tracking for all signatures.
287     - Replaced match_fastsigs() with two new routines for tcp and
288       udp signature matching that don't autovivify hash keys.
289     - Removed support for ipchains.
290     - Added support for metalog.
291     - Removed all "Undefined Code" signatures from psad_signatures.
292     - Re-worked %auto_blocked_ips hash and corresponding blocking
293       routines.  This (hopefully) fixes a restart bug seen on older
294       systems such as those that are still running versions of perl
295       less than 5.6.
296     - Re-worked firewall policy parsing routines.  Chains that have
297       a default policy of DROP are handled properly now.
298     - Bugfix for missing NULL char in kmsgsd.c.
299     - Updated scan alerting format.  Put current interval protocol
300       status before source and destination addresses.
301     - Buffer overflow fix in kmsgsd.c for size of buf[MAX_LINE_BUF]
302       buffer in read() call.
303     - Added --no-kmsgsd option to aid in psad --debug mode.
304
305 psad-1.2.4 (10/15/2003):
306     - Added danger level to subject line in email alerts.
307     - Removed diskmond altogether since psad now handles disk space
308       thresholds directly.  This allows filehandles to be handled
309       properly.
310     - Added auto_block_ignore_ip() to prevent 0.0.0.0, 127.0.0.1,
311       and local interface ips from being included in auto blocking
312       routines.
313     - Added Bit::Vector module to stop installation warnings from
314       Date::Calc.
315     - Made get_local_ips() called periodically since local addresses
316       may change (dhcp, etc.).
317     - Added installation code and init script for Gentoo Linux.
318     - Bugfix for INIT_DIR in uninstall() routine in install.pl.
319     - Bugfix for auto-blocking loop after timeouts are hit.
320     - Added --status-dl [N] to display status information only for
321       those scans that reach at least [N].
322
323 psad-1.2.3 (09/12/2003):
324     - Added interface tracking for scans.
325     - Bugfix for not opening /etc/hosts.deny the right way in
326       tcpwr_block().
327     - Bugfix for psadfifo path in syslog-ng config.
328     - Better format for summary stats section in email alerts.
329     - Bugfix for INIT_DIR path on non-RedHat systems.
330     - Bugfix for gzip path.
331     - Make Psad.pm installed last of all perl modules installed
332       by psad.
333     - Added additional call to incr_syscall_ctr() in psadwatchd.c
334
335 psad-1.2.2 (08/24/2003):
336     - psad is finally available as an RPM package.
337     - Added chain tracking for iptables.
338     - Added chain counts to --Status output.
339     - Bugfix for psad not taking into account multiple scan
340       destinations.
341     - Reworked auto-blocking code for both tcpwrappers and
342       iptables.  Lines added to /etc/hosts.deny will no longer be
343       duplicated.  Added IPTABLES_AUTO_RULENUM and
344       IPCHAINS_AUTO_RULENUM so auto rules can be inserted at a
345       configurable point within iptables and ipchains policies.
346     - Psad now installs all perl modules within /usr/lib/psad.
347     - Removed /var/log/psad/<ip>/scanlog file since it was wasting
348       too much disk.
349     - Made psad, psadwatchd, and diskmond take the machine hostname
350       from their respective config files.  This makes installation
351       via the rpm easier, and is generally cleaner.
352     - Added scan destination in --Status output.
353     - Added --status-sort-dl (the default status output is now
354       sorted by ip address by default).
355
356 psad-1.2.1 (07/11/2003):
357     - Bugfix for multiple processes being spawned by psadwatchd
358       due to lack of proper config variables in the new split
359       daemon config files.
360     - Bugfix for old scan messages being regenerated if a HUP
361       signal is received.
362     - Bugfix for incorrectly calculating disk utilization in
363       diskmond.c.
364     - Extended install.pl to include compression for archived
365       files in /etc/psad.
366     - Added preserve questions in install.pl for the psad
367       signature and auto ips files.
368     - Bugfix for --USR1 command line switch not mapping to the
369       correct subroutine.
370     - Bugfix for psad man page missing the pipe character in
371       psadfifo line for syslog.conf.
372
373 psad-1.2 (06/18/2003):
374     - Added passive OS fingerprinting based on packet ttl, length,
375       tos, and id fields.
376     - Added dshield.org alerting capability.
377     - Added exec_external_script() for external script execution.
378     - Added auto blocked timeouts.
379     - Implemented config re-imports via HUP signals in a manner
380       similar to various other system daemons (sysylog, apache
381       etc.)
382     - Better --Status output that shows packet counts per protocol
383       for each ip.
384     - Added --ip-status for more verbose status output for a
385       particular ip address.
386     - Added config preservation code to install.pl.
387     - Added Psad::psyslog().
388     - Split psad.conf into a separate config file for each of the
389       four psad daemons.
390     - Completely re-worked the auto blocking code (made dedicated
391       files for iptables and ipchains block methods).
392     - Added danger level hash.
393     - Minor code cleanups (shorter hash keys, etc.).
394
395 psad-1.1.1 (04/26/2003):
396     - Bugfix for incorrect usage of %scan hash keys associated
397       with tcp/udp when the current protocol is icmp.
398     - Bugfix for being too strict on iptable default log string.
399     - Reworked USR1 signal handler so the Data::Dumper function
400       call is made in the main part of the psad code.
401     - Added a startup message for psad.
402     - Minor bugfix for leading whitespace in auto_ips.
403
404 psad-1.1 (04/20/2003):
405     - Added the IPTables::Parse module for better processing of
406       the iptables ruleset.
407     - Added --snort-sids so that iptables messages generated by
408       fwsnort can be included in alerts.  Such alerts now include
409       the content fields of packets (fwsnort uses the iptables
410       string match module).
411     - Added the ability to specify entire networks in the auto
412       ips file through the use of the Net::IPv4Addr module.
413     - Better logging format that reinstates the current interval,
414       and adds an "overall stats" section that includes packet
415       counters per protocol.
416     - Removed the PROTO hash key since it was unnecesssary.
417     - Better benchmarking code.
418     - Bug fix for incorrectly looking for the "MAC" string in
419       iptables messages that could have been generated by the
420       FORWARD chain.
421
422 psad-1.0 (02/27/2003):
423     - Added --Benchmark and --packets command line options to support
424       psad benchmarking.
425     - Bugfix for improperly detecting NULL scans.
426     - Completely redesigned website.
427
428 psad-1.0.0-pre4 (11/26/2002):
429     - Rewrote kmsgsd and psadwatchd in C.
Note: See TracBrowser for help on using the browser.