root/fwknop/tags/fwknop-1.9.2/ChangeLog

Revision 1027, 35.6 kB (checked in by mbr, 4 months ago)

- Added more granular source IP and allowed IP tests so that access to
particular internal IP addresses can be excluded in --Forward-access
mode. A new keyword "INTERNAL_NET_ACCESS" is now parsed from the
access.conf file in order to implemented these restrictions.
- (SPAPICT Group) Added BLACKLIST functionality to allow source IP
addresses to easily be excluded from the authentication process.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 fwknop-1.9.2 (03/12/2008):
2     - Crypt::CBC adds the string "Salted__" to the beginning of the encrypted
3       text (at least for how fwknop interfaces with Crypt::CBC), so the fwknop
4       client was updated to delete the encoded version of this string
5       "U2FsdGVkX1" before sending a Rijndael-encrypted SPA packet on the wire.
6       The fwknopd server will add this string back in before decrypting.  This
7       makes it harder to write an IDS signature that looks for fwknop traffic;
8       e.g. look for the default prefix string "U2FsdGVkX1" over UDP port 62201,
9       which would work for fwknop clients < 1.9.2 (as long as the port number
10       is not changed with --Server-port).
11     - Added more granular source IP and allowed IP tests so that access to
12       particular internal IP addresses can be excluded in --Forward-access
13       mode.  A new keyword "INTERNAL_NET_ACCESS" is now parsed from the
14       access.conf file in order to implemented these restrictions.
15     - (SPAPICT Group) Added BLACKLIST functionality to allow source IP
16       addresses to easily be excluded from the authentication process.
17     - (Grant Ferley) Submitted patch to handle SIGCHLD in IPTables::ChainMgr.
18     - (Grant Ferley) Submitted patch to handle Linux "cooked" interfaces for
19       packet capture (e.g. PPPoE interfaces).
20     - (SPAPICT Group) Applied modified version of the client-defined access
21       timeout patches submitted by the PICT SPA Group.  There are two new
22       message types to facilitate client timeouts; one for normal access mode,
23       and the other for the FORWARD access mode.  In the access.conf file,
24       there is also a new variable "PERMIT_CLIENT_TIMEOUT" to allow each
25       SOURCE stanza to allow client-defined timeouts or not.
26     - (SPAPICT Group) Submitted patches to include support for the SHA1 digest
27       algorithm for SPA packet replay attack detection.  I modified these
28       patches for maximum configurability (see the --digest-alg argument on
29       the fwknop command line), and the ability to use the SHA256 algorithm as
30       well.  The default path to the /var/log/fwknop/md5sums file has been
31       changed to /var/log/fwknop/digest.cache, and the default digest
32       algorithm is now SHA256 (but this is tunable via the DIGEST_TYPE
33       variable in the fwknop.conf file).
34     - Added the Digest::SHA perl module in support of the SHA1 and SHA256
35       digest algorithms for replay attack detection and SPA message integrity.
36     - Added full packet hex dumps (including packet headers) to fwknopd in
37       --debug --verbose mode.  This is to help diagnose packet sniffing issues
38       over the loopback interface on Mac OS X (first reported by Sebastien
39       Jeanquier).
40     - (Test suite) Bugfix to ensure that the FWKNOP_DIR variable is set to the
41       local output/ directory in several of the test config files in the
42       test/conf/ directory.
43     - (Test suite) Added several tests for configurable digest algorithms in
44       support for the SHA256, SHA1, and MD5 digest changes made by the SPAPICT
45       Group.
46     - Updated the fwknop client to always call encode_base64() with the string
47       to encode along with a second null-string argument to force all encoded
48       data to not include line breaks.
49     - Bugfix in install.pl to not test for the iptable command on non-Linux
50       systems, and to not test for the ipfw command on systems that are Linux.
51     - (Test suite) Updated to include the /proc/config.gz file so that the
52       kernel config can be reviewed (not all Netfilter hooks are necessarily
53       compiled in).
54
55 fwknop-1.9.1 (01/26/2008):
56     - Added ENABLE_OUTPUT_ACCESS keyword to access.conf file parsing. This
57       provides a similar configuration gate for the iptables OUTPUT chain to
58       the ENABLE_FORWARD_ACCESS keyword, and adds the abiliy to control which
59       access.conf SOURCE blocks interface to the OUTPUT chain.
60     - Better installation support for various Linux distributions including
61       Fedora 8 and Ubuntu.  The current runlevel is now acquired via the
62       "runlevel" command instead of attempting to read /etc/inittab (which
63       does not even exist on Ubuntu 7.10), and there are new command line
64       arguments --init-dir, --init-name, and --runlevel to allow the init
65       directory, init script name, and the runlevel to be manually specified
66       on the install.pl command line.
67     - Added command line argument display to fwknop client --verbose mode.
68     - Updated the test suite to include OUTPUT chain tests, reference
69       access.conf files in the test/conf/ directory, and perform SPA packet
70       format validation tests by parsing fwknopd output.
71     - Updated fwknopd to use always use the -c argument on the knoptm command
72       line (this makes sure that the test suite usage of fwknopd causes knoptm
73       to reference the correct configuration).
74     - Updated IPTables::ChainMgr to print iptables command output to stdout or
75       stderr if running in debug or verbose mode.
76     - Added --Exclude-mod-regex to install.pl so that the installation of
77       particular perl modules that match the supplied regex can be skipped.
78     - Added SIGALRM wrapper to the test suite since some libpcap and system
79       combinations break the ability of fwknopd to sniff packets.
80     - Added srand() call to the fwknop client (this is useful for older
81       versions of perl which do not automatically call srand() at the first
82       rand() call if srand() was not already called).
83     - Added a test to the test suite for sniffing packets over the loopback
84       interface.
85     - Added SPA packet aging test to the test suite to ensure that packet
86       expirations work properly (this feature protects against MITM attacks
87       where a valid SPA packet is stopped by an inline attacker and
88       retransmitted at a later time to acquire access).
89     - Added a file (test.log) to collect test suite console output.
90     - Added --Prepare-results argument to test suite to anonymize test results
91       and create a tarball that can be emailed to a third party to assist in
92     - Added full firewall policy dumps and the collection of system specifics
93       to the test suite. This makes it easy to send the output directory and
94       the test.log file to developers to assist in debugging (no information
95       is sent anywhere except as part of a manual process of course, and
96       addresses can be anonymized with --Prepare-results - loopback addresses
97       are not modified).
98     - Added --fw-del-ip <IP> argument to fwknopd so that a specific IP address
99       can be removed from the local firewall policy (this is used by the test
100       suite to ensure that if a test for removed firewall rules fails then
101       subsequent tests will not also fail because they are no longer tracked
102       by a running knoptm instance).
103     - Added a test to the test suite to collect fwknopd syslog output.  This
104       is useful to see if a mechanism such as SELinux is deployed in a manner
105       that prevents normal fwknop communications.
106     - Bugfix to track MD5 digest for SPA command mode packets.
107     - Bugfix in fwknopd to not open ports listed in OPEN_PORTS in the absence
108       of the PERMIT_CLIENT_PORTS directive when an SPA packet contains a
109       request for access to a port not listed in OPEN_PORTS.
110       debugging fwknop if there are any issues.
111     - Added --verbose flag to fwknopd commands issued by the test suite so
112       that more data is collected for debugging analysis.
113     - Added GnuPG tests to the test suite with dedicated keys (for use only
114       with the test suite) in the test/conf/client-gpg and
115       test/conf/server-gpg directories.
116     - Added digest file validation to test suite to make sure that fwknopd
117       correctly tracks SPA packet MD5 digests.
118     - Updated to search state tracking rule in any iptables chain (many
119       iptables policies have user-defined chains that can be a bit complicated
120       to parse).
121     - Updated install.pl to be more strict in stopping any running fwknopd
122       processes.
123
124 fwknop-1.9.0 (12/15/2007):
125     - Added a test suite so that fwknop and fwknopd functionality can be
126       automatically tested over the loopback interface (see the fwknop_test.pl
127       script in the test/ directory).
128     - Major update to allow SPA packets to create DNAT connections to internal
129       systems through the FORWARD chain (iptables only).  This is useful to
130       connect through to internal systems (that may be running on non-routable
131       IP addresses) via a border firewall or router that is running fwknopd to
132       create inbound DNAT rules.
133     - Added support for the iptables OUTPUT chain via two new variable in the
134       fwknop.conf file: ENABLE_IPT_OUTPUT and IPT_OUTPUT_ACCESS. This is
135       useful for iptables firewalls that are not running the conntrack modules
136       and that have a restrictive OUTPUT chain (so SYN/ACK responses are not
137       allowed out without an explicit ACCEPT rule).
138     - Added the ability to force the fwknopd and knoptm daemons to restart
139       themselves (via knopwatchd) after a configurable timeout (see the
140       ENABLE_VOLUNTARY_EXITS and EXIT_INTERVAL variables in the
141       /etc/fwknop/fwknop.conf file). This feature is for those that want
142       fwknopd to go through its initialization routine periodically just in
143       case there is a logic (or other) bug that might result in fwknopd not
144       accepting a valid SPA packet. NOTE: This feature is disabled by default,
145       and is not normally needed since fwknopd is quite stable in most
146       deployments.
147     - Major update to perform all firewall rule expirations with knoptm, which
148       is now started in all data collection modes.  Older versions of fwknopd
149       maintained its own firewall rule expiration code for the FILE_PCAP,
150       ULOG_PCAP, and KNOCK modes, so two mechanisms were being maintained for
151       the same purpose.  The 1.9.0 release fixes this oversight.
152     - Minor bugfix to have knopwatchd generate syslog messages whenever an
153       fwknop daemon needs to be restarted.
154     - Added --interface command line argument to install.pl to allow the
155       sniffing interface to be specified from the command line. Also updated
156       install.pl to enforce a 10-try maximum for attempting to accept a valid
157       interface name from the command line (LANG env issues can exist
158       sometimes).
159     - Updated SPA packet format for server_auth and forward_info elements;
160       the internal MD5 sum is now always the last field in an SPA packet. This
161       makes extensions of the SPA protocol much easier, and the generation of
162       SPA packets more elegant. Also, SPA packet validation has been improved
163       to ensure that fields that are supposed to be digits really only contain
164       integer data.
165     - Added ENABLE_FORWARD_ACCESS variable to the access.conf file, and added
166       ENABLE_IPT_FORWARDING to the fwknop.conf file. These variables provide
167       the per-SOURCE ability to create DNAT connnections through the FORWARD
168       chain..
169     - Replaced the IPT_AUTO_CHAIN1 variable with IPT_INPUT_ACCESS and
170       IPT_FORWARD_ACCESS in fwknop.conf.
171     - Added --Forward-access argument to the fwknop client.
172     - Added client version number to syslog messages generated by fwknopd when
173       a valid SPA packet is received.
174     - Added human readable timestamp to MD5 cache. Here is an example of the
175       update format:
176         127.0.0.1 X6WF2C29kEgAv4aDJ8TDeQ [Wed Nov 28 09:24:46 2007]
177     - Added --Count argument to fwknopd so that it calls exit() when the
178       specified number of packets is monitored.
179     - Added --no-logs argument to knoptm in support of the test suite so that
180       no emails are generated.
181     - Bugfix in fwknopd to account for non-Ethernet link layer header over
182       *BSD loopback interfaces.
183     - Added --Save-dst argument to the fwknop client to add a priority file to
184       store client command line arguments (~/.fwknop.save). This file is only
185       overwritten when --Save-dst is used.
186     - Added fwknopd --fw-del-chains to allow the fwknopd iptables chains to
187       easily be deleted.
188     - Minor fwknopd bugfix to set process exit status to 0 when --Kill is
189       used.
190
191 fwknop-1.8.3 (11/17/2007):
192     - Updated external IP resolution to point to http://www.whatismyip.org,
193       and added http://www.cipherdyne.org/cgi/clientip.cgi as a backup site
194       for fwknop IP resolution.
195     - Added storage of source IP along with SPA MD5 sum. This allows the user
196       to infer which networks are more hostile if an SPA packet is replayed.
197     - Added SPA packet hex dumps in 'fwknopd --debug' mode so that the
198       integration of third-party encryption algorithms is easier to
199       troubleshoot. Sean Greven contributed a patch for this.
200     - Reinstated the legacy port knocking mode. It appears that all encrypted
201       output from the updated Crypt::Rijndael module is at least 32 bytes
202       long, so port knocking sequences are now 32 bytes long as well (they
203       were previously 16 bytes long in old versions of fwknop).
204     - Bugfix to ensure the key length is at least 8 chars in --get-key mode.
205     - Minor update to remove init message on OS X install.
206     - Updated install.pl to set the LANG environmental variable to
207       "en_US.UTF-8". This should fix the problem where the output of ifconfig
208       was not interpreted correctly if the locale LANG setting is not English.
209     - Implemented verbose email alerting by setting the ALERTING_METHODS
210       variable to "verbose". This instructs fwknopd to generate a new email
211       message for each message that it normally logs vis syslog (this feature
212       is not the default, and must be manually enabled).
213
214 fwknop-1.8.2 (09/15/2007):
215     - Added fwknopd server support for Mac OS X. The Darwin uname return
216       string is detected and this enables Darwin-specific installation code in
217       install.pl.
218     - Updated to not print sensitive key/password information in --debug mode
219       with fwknopd.
220     - Bugfix for install.pl on Windows 2003 Server running under Cygwin where
221       'uname -o' output is reported 'Gygwin' for some reason.
222     - Added --Cygwin-install command line argument to install.pl to force
223       client-only fwknop install on Cygwin systems.
224     - Added --OS-type command line argument to install.pl to allow the user to
225       force the installation type.
226     - Updated to version 1.04 of Crypt::Rijndael. This fixes incompatibilities
227       between SPA packets between 64-bit and 32-bit platorms.
228     - Bugfix to enforce a maximum of 20 tries to read a password from stdin.
229     - Applied TCP options parsing fix from psad for invalid zero or one length
230       fields that break TLV encoding (this is for fwknopd, and only applies to
231       the legacy port knocking mode).
232     - Added code to fwknopd to check to see if there are any state tracking
233       rules in place within the local iptables or ipfw policy.
234     - Made syslog identity, facility, and priority configurable (applied code
235       from the psad project).
236     - Implemented --fw-list for ipfw firewalls.
237     - Bugfix for knoptm removing ipfw rules too quickly after not timing out
238       previously instantiated rules properly.
239     - Implemented smarter cache removal strategy in knoptm so that rules that
240       are manually removed from the running iptables or ipfw policy are also
241       removed from the cache.
242     - Added /var/log/fwknop/errs/fwknopd.{warn,die} tracking to the fwknopd
243       daemon for the PCAP modes of collecting packet data. Added
244       knoptm{warn,die} files for knoptm as well.
245     - Bugfix to import the GnuPG::Interface module in --get-key mode.
246     - Bugfix to send source IP as a part of the command message in command
247       mode so that REQUIRE_SOURCE_ADDRESS controls can be applied.
248     - Added --Test-mode to fwknop client so that SPA packets can be built but
249       never sent over the network.
250
251 fwknop-1.8.1 (06/06/2007):
252     - Bugfix to ensure that the "keep-state" directive is added to firewall
253       rules on systems running the ipfw firewall.
254     - Added the --Save-packet and --Save-packet-file command line arguments
255       to the fwknop client. These options instruct fwknop to save a copy of
256       an encrypted SPA packet before it is sent across the network.
257     - Bugfix to find minimal unused ipfw rule number for ipfw firewalls. This
258       fixes an issue where ipfw rules added by fwknopd could be inserted at
259       the same position as rules from an existing ipfw policy. While ipfw
260       allows duplicate rules, whenever such a rule is deleted by its rule
261       number all matching rules are deleted.
262
263 fwknop-1.8 (06/03/2007):
264     - Added support for ipfw firewalls (found on *BSD systems).  The
265       IPTables::Parse and IPTables::ChainMgr modules are not installed on
266       such systems.
267     - Added gpg-agent support for both the fwknop client and fwknopd SPA
268       server.
269     - Updated client-only installation mode to restrict perl module
270       installation to those module that are actually required by the fwknop
271       client. This results in clean installs of the fwknop client on Windows
272       systems running Cygwin.
273     - Added --Defaults to install.pl so that fwknop can be installed without
274       prompting the user to answer any questions. This is to make it easier
275       to install fwknop on the Source Mage Linux distro.
276     - Consolidated daemon config files into the fwknop.conf file (except for
277       the access.conf file). This simplifies the configuration of fwknop.
278     - Added recursive variable resolution in the parsing routines for the
279       fwknop.conf file. This allows variable values to contain embedded
280       variables.
281     - Added init script for FreeBSD systems.
282     - Added --BSD-install command line argument to install.pl. This is not
283       normally necessary since the installer should detect installations on
284       *BSD systems, but this option can force this behavior.
285     - Updated knopmd and knopwatchd to use safe_malloc() instead of malloc().
286     - Bugfix to never time out rules from SOURCE blocks with FW_ACCESS_TIMEOUT
287       set to zero
288
289 fwknop-1.0.1 (01/09/2007):
290     - Updated fwknopd to allow the GPG_REMOTE_ID variable to have the value
291       "ANY" to allow a SOURCE block to match on arbitrary remote gpg signing
292       keys (Leland Weathers).
293     - Bugfix to allow OPEN_PORTS to be omitted in access.conf in favor of
294       having only PERMIT_CLIENT_PORTS enabled (reported by Raul Siles).
295     - Added the cd_rpmbuilder script to make it easy to build RPM's out of
296       CipherDyne projects by automatically downloading the project .tar.gz and
297       .spec files from http://www.cipherdyne.org/.
298
299 fwknop-1.0 (11/05/2006):
300     - Bugfix for OpenSSH-4.3p2 patch to make sure to include the spa.h header
301       file.
302     - Bugfix for access hashes accumluating when multiple ports are requested
303       to be opened by a client.
304     - Better validation of IPT_AUTO_CHAIN variable so that the from_chain
305       cannot be identical to the to_chain.
306     - Bugfix in RPM to install List::MoreUtils.
307     - Bugfix so that the MD5 sum for an SPA packet is not examined for each
308       SOURCE block.  This fixes a problem where an SPA packet could appear to
309       be replayed if multiple SOURCE blocks are defined in
310       /etc/fwknop/access.conf.
311     - Refactored main SPA access loop so that it is clearer how and when SPA
312       clients are granted access.
313     - Better handling of GnuPG key identifier strings (they can now contain
314       spaces, and syslog messages wrap the identifiers with double quotes).
315     - Added source IP address to command string in the SPA packet so that
316       the REQUIRE_SOURCE_ADDRESS criteria can be applied by the fwknopd
317       server.
318     - Added --Show-last-cmd and --Show-host-cmd args to fwknop so that the
319       last fwknop command and the last fwknop host commands can be viewed.
320     - Added the svn revision number to --Version and --help output.
321
322 fwknop-0.9.9 (10/15/2006):
323     - Added REQUIRE_SOURCE_ADDRESS (disabled by default) to force fwknop
324       clients to know their source IP address (i.e. -s cannot be used).  So,
325       either fwknop clients have to use -R to resolve their externally
326       routable address, or they must just know what it is.
327     - Updated to Net-RawIP-0.21_03 for compatibility with gcc-4.x compilers.
328     - Added List-MoreUtils-0.22 which is a dependency of the new Net::RawIP
329       module.
330     - Bugfix to restore "start" functionality in Gentoo init script.
331     - Bugfix to use the IPT_OUTPUT_FILE and IPT_ERROR_FILE configuration
332       variables in fwknopd.
333     - Added KNOPTM_IPT_OUTPUT_FILE and KNOPTM_IPT_ERROR_FILE variables
334       specifically for the knoptm daemon so that it can use IPTables::ChainMgr
335       completely independently of fwknopd (this removes a potential race
336       condition between fwknopd and knoptm).
337
338 fwknop-0.9.8 (09/17/2006):
339     - Added the ability to ignore old SPA packets through use of the
340       client-side time stamp.  This means that an attacker cannot intercept an
341       SPA packet, prevent it from being forwarded to its intended destination,
342       and then put the packet on the wire at some time outside of the allowed
343       time window.  There are two new configuration options in fwknop.conf
344       "ENABLE_SPA_PACKET_AGING" and "MAX_SPA_PACKET_AGE" that control the
345       length of the acceptable time window (2 minutes by default).  This
346       requires some level of synchronization between the fwknop client and the
347       fwknopd server, but this is not onerous through the use of NTP.  This
348       feature is enabled by default, and the idea for it was contributed by
349       Sebastien J.
350     - Completely re-worked IPTables::ChainMgr to support the return of
351       iptables error messages that are collected via stderr.  This is critical
352       to fixing any bugs where fwknopd could die as a result of a poorly
353       crafted iptables command.
354       but no information would be returned to the user.
355     - Added the ability to specify the position for both the jump rule into
356       the fwknopd chains as well as the position for new rules within the
357       fwknopd chains via the -I argument to iptables.  This fixes a bug where
358       the user was given the impression that the IPTABLES_AUTO_RULENUM would
359       accomplish this (IPTABLES_AUTO_RULENUM has been removed).
360     - Updated fwknopd to require < 1500 byte payload length before attempting
361       to decrypt.  Also, GnuPG decrypts are not attempted unless the encrypted
362       payload is at least 400 bytes long (this is conservative since even
363       encrypting a single byte with a 1024-bit key will result in about 340
364       bytes of encrypted data).
365     - Added the --gpg-default-key option to have fwknop use the default GnuPG
366       key that is defined in the ~/.gnupg/options file.
367     - Added the --URL command line argument so that a URL other than the
368       default http://www.whatismyip.com/ can be provided by the user for
369       external IP resolution (suggested by Sebastien J.).
370     - Updated to be more rigorous with md5 sums; we now require that the
371       md5_base64() function actually returns a non-null result.
372     - Bugfix to make sure that only the users associated with the a specific
373       REQUIRE_USERNAME value (in a specific SOURCE block in access.conf) are
374       granted the appropriate access even if a valid encrypted packet is
375       constructed from a different user name (by an fwknop client).
376     - Populated the _debug option in the IPTables::ChainMgr module, and also
377       added a _verbose option so that the specific iptables commands can
378       actually be seen as IPTables::ChainMgr functions are called.
379     - Added code to install.pl to update command paths in fwknop.conf and
380       knopwatchd.conf if any of the paths are broken (i.e. the local system
381       does not conform to the default paths).  By default this only happens if
382       the user does not want old configs to be merged, but to override this
383       use the new --path-update command line argument to install.pl.
384     - Added the --Skip-mod-install command line argument to install.pl to
385       allow all perl module installs to be skipped.
386     - Added the --force-mod-regex command line argument to install.pl to allow
387       a regex match on perl module names to force matching modules to be
388       installed.
389     - Minor bugfix to generate better (i.e. closer to those that Firefox
390       generates) http requests to http://www.whatismyip.com/).
391     - Adapted Mate Wierdl's RPM patch from the psad project so that the fwknop
392       RPM builds on x86_64 systems.
393     - Removed iptables requirement in RPM spec file because fwknop may be
394       installed on a system just to run the fwknop client.
395     - Updated to email username mismatch errors.
396
397 fwknop-0.9.7 (08/04/2006):
398     - Added fwknop_serv to function as minimal TCP server over which SPA
399       packets can be sent.  This allows SPA to be compatible with the Tor
400       network, which requires that a virtual circuit is established before
401       traffic can be sent.
402     - Updated to Crypt::CBC-2.18 after a vulnerability was discovered in
403       previous versions of Crypt::CBC that caused weak ciphertext to be
404       generated for algorithms that have blocksizes greater than 8 bytes (such
405       as Rijndael used by fwknop).  Manually specifying initialization vectors
406       is not necessary now.
407     - Updated SSH patch to support OpenSSH-4.3p2.
408     - Bugfix to make sure to create /var/* directories if they don't exist
409       (such as when /var is a tmpfs).
410     - Bugfix (Dwayne Rightler) to restore -w IP lookup functionality after
411       format change on data returned by whatismyip.com.
412     - Bugfix to wrap SPA Rijndael decryption with eval{} so that fwknopd does
413       not die if there are problems trying to decrypt data.  This is necessary
414       because of the security vulnerability fix in Crypt::CBC that creates
415       some incompatibilities in different versions of Crypt::CBC.
416     - Added "--L-host" command line argument so that the arguments used for
417       multiple hosts are preserved and can be recalled.
418     - Changed default user-agent setting for whatismyip.com lookups to
419       Firefox/1.0.5.4; there is no need to gratuitously advertise fwknop
420       traffic.
421     - Updated GunPG HOWTO to provide a step-by-step guide to getting fwknop
422       Single Packet Authorization working with GnuPG.
423     - Updated to derive perl module versions from the VERSION files within
424       each of the perl module source directories.
425
426 fwknop-0.9.6 (01/13/2006):
427     - Added GPG based authentication capability for SPA packets.  This new
428       mode can be configured to require that a GPG message be signed with a
429       particular key or set of keys.
430     - In GPG mode, the fwknop client now prints GPG errors to stdout if not
431       running with --gpg-no-batch-mode.
432     - Added the ability to require that the client know the UNIX crypt()
433       password associated with a username on the server side.  This
434       functionality is enabled on the fwknop client with the "--Server-auth
435       crypt" command line argument, and the REQUIRE_AUTH_METHOD variable in
436       /etc/fwknop/access.conf on the fwknopd server.
437     - Added patch against OpenSSH-4.2p1 to integrate SPA mode.  This patch
438       adds a "-K <fwknop cmd line>" argument to the SSH client so that
439       fwknop can be executed directly before an SSH connection is made.
440     - Separated server and client portions of fwknop into "fwknopd" and
441       fwknop repectively.  This will allow better portability to be
442       developed since the client and server pieces can be developed more
443       independently.  NOTE: With so many changes, it is probably a good idea
444       to not preserve old fwknop configs via install.pl.
445     - Renamed all relevant fwknopd command and file paths to support new
446       fwknopd server component.
447     - Added --quiet mode (this is used by default in the OpenSSH patch).
448     - Removed legacy port knocking installation in install.pl (fwknopfifo,
449       and fwdata file) unless the data collection mode is set to syslog or
450       syslog-ng for legacy iptables log messages.
451     - Added inode checking for PCAP_PKT_FILE. This helps to ensure that log
452       rotation schemes don't interfere with reading packets out of the file
453       since this check is size independent.
454     - Bugfix for Makefile debug mode.
455     - Added compilation check for perl programs in install.pl before
456       installation into the filesystem.
457     - Bugfix for knopwatchd to make sure it can actually restart all running
458       daemons properly.
459     - Added --force-mod command line argument to install.pl to allow the user
460       to force all perl modules to be be installed regardless of whether a
461       module exists in the system perl lib tree.
462     - Added --no-save-args to fwknop so that existing .fwknop.run file can
463       be preserved (helps to testing new features of fwknop client).
464     - Removed useless --encrypt command line argument (only the old shared
465       port knock sequences are not encrypted).
466
467 fwknop-0.9.5 (10/02/2005):
468     - Added the ability to resolve the external IP associated with the
469       local network via http://www.whatismyip.com.  This is a more secure
470       method of accomplishing what the -s option performs.  The new
471       command line option is --whatismyip (or just -w).
472     - Updated fwknop to communicate with knoptm via a UNIX domain socket
473       instead of the previous file-based communication.
474     - Updated to flush the fwknop iptables chains at start time.
475     - Bugfix for removing the wrong hash key in the knoptm IP cache.
476
477 fwknop-0.9.4 (09/17/2005):
478     - Bugfix for knoptm timing out new entries based on old time values
479       (this caused new rules to timed out too quickly).
480     - Added support for multiple users in REQUIRE_USERNAME keyword in
481       access.conf.
482     - Added the ability to display raw encrypted packet data in client
483       mode with --verbose.
484     - Created fwknop RPM for RPM-based Linux distributions.
485     - Bugfix for inappropriate redirects in command mode where the command
486       already contained a redirect.
487
488 fwknop-0.9.3 (08/27/2005):
489     - Added an on-disk cache of md5 sums so that the md5 sum check can
490       survive restarts of fwknop.
491     - Updated install.pl to be more friendly to Mac OS X (Blair Zajac).
492     - Updated to allow access.conf variables to have values instead of just
493       being defined.
494     - Started on additional server authentication mode code (re-worked MD5
495       sum calculation to allow packet format to be extended by taking into
496       account the fwknop version number).
497
498 fwknop-0.9.2 (08/06/2005):
499     - Added FILE_PCAP data collection method when running in server mode.
500       This is a more general way of getting packets than the ULOG_PCAP
501       mode since then a normal ethernet sniffer can be used to build the
502       file.
503     - Added the ability to re-open a pcap file if its size shrinks (i.e.
504       it gets rotated out or something).
505     - Bugfix for multiple rules with the same timestamp not being timed out
506       by knoptm.
507     - Integrated spoofing capability directly within fwknop (instead of
508       using the knopspoof command) through the use of "require Net::RawIP".
509     - Better multi-protocol support in server mode.  Tcp and icmp packets
510       are properly decoded now.
511
512 fwknop-0.9.1 (07/29/2005):
513     - Added the ability to specify multiple ports/protocols to access on a
514       server with the --Access command line option.
515     - Added the ability to spoof SPA packets over icmp and tcp protocols.
516     - Added the ability to restrict access at the server to only those
517       ports defined in the OPEN_PORTS keyword.  This option is controled by
518       a new keyword "PERMIT_CLIENT_PORTS".
519     - Bugfix for MD5 sum not being properly calculated over decrypted data.
520       This allowed old packets that contained additional garbage data to
521       be replayed against an fwknop server.
522     - Updated to fall back to getpwuid() if getlogin() fails (Blair Zajac).
523     - Added --ipt-list to list all current rules in the FWKNOP iptables
524       chains.
525     - Added --ipt-flush to flush all current rules in the FWKNOP iptables
526       chains.
527     - Bugfix for the installer dying if ~/lib already exists (Blair Zajac).
528     - Updated to delay the loading of server perl modules (Net::Pcap, etc.)
529       only if we are running in server mode.
530     - Bugfix for module directory paths in install.pl.
531
532 fwknop-0.9.0 (05/29/2005):
533     - Added new authorization mode that uses Net::Pcap to read packets
534       out of a file that is written to by the ulogd pcap writer (also
535       stubbed in code to sniff packets directly off the wire).  This
536       authorization mode only requires single packets, and has many
537       characteristics that are better than simple port knocking, including
538       being non-replayable, and much more data can be sent.  This mode
539       is now the default for both the server and the client.
540     - Made the execution of knopmd optional depending on whether AUTH_MODE
541       is a pcap mode (e.g. ULOG_PCAP or PCAP).
542     - Added --Spoof-src argument so that encrypted packets can be spoofed
543       via /usr/sbin/knopspoof.
544     - Added /usr/sbin/knoptm so that firewall rules can be timed-out when
545       the server is running in PCAP mode even if new packets don't appear
546       on the wire.
547     - Updated fwknop man page to talk about the new pcap-based
548       authorization mode.
549
550 fwknop-0.5.0 (03/19/2005):
551     - Added ALERTING_METHOD to allow syslog and/or email reporting to be
552       disabled (there is a dedicated file /etc/fwknop/alert.conf that
553       governs this behavior, and both fwknop and knopwatchd reference this
554       file).
555     - Bugfix for distinguishing OPT field associated with --log-tcp-options
556       vs. --log-ip-options.
557     - Added install_perl_module() install.pl from psad to provide a
558       consistent installation interface.
559     - Applied patch to only install perl modules that are not already
560       installed (Blair Zajac).
561     - Added --last-cmd option to allow fwknop to be executed with command
562       line arguments from the previous execution (they are saved in
563       ~/.fwknop.run).
564     - Added --Home-dir option to allow the home directory to be manually
565       specified.
566     - Re-worked get_homedir() to be more friendly to systems that do not
567       necessarily have /etc/passwd (e.g. OS X).
568     - Added configuration preservation and querying for which syslog
569       daemon is running to install.pl.  These features were adapted from the
570       psad installer (http://www.cipherdyne.org/psad).
571     - Added IPTables::ChainMgr.  Fwknop uses this module to maintain
572       dedicated chains to which access rules are added.
573     - Added IPTables::Parse, which is used internally by IPTables::ChainMgr.
574     - Added __WARN__ and __DIE__ handlers so errors can easily be collected.
575
576 fwknop-0.4.2 (09/27/2004):
577     - Added init script for Fedora systems.
578     - Added --Kill, --Restart, and --Status modes (this fixes the generic
579       init script which depends on these arguments).
580
581 fwknop-0.4.1 (09/14/2004):
582     - Bugfix for legacy posf code in fwknop and variable in fwknop.conf.
583
584 fwknop-0.4 (09/10/2004):
585     - Added ability to specify multiple IPs/networks in a single SOURCE
586       definition.
587     - Better examples section in the fwknop manpage.
588     - Bugfix to make sure EMAIL_ADDRESSES variable does not contain commas
589       (any commas are translated into spaces).
590     - Added LICENSE file.
591
592 fwknop-0.3 (08/21/2004):
593     - Bugfix for tracking knock sequences by source IP address.
594     - Bugfix for knock sequence timeouts.
595     - Removed old passive OS fingerprinting code in favor of the p0f
596       strategy.
597     - Added support for taking encryption keys from a file specified on
598       the command line.
599     - Update to send "sequence decrypt failed" email message only if
600       decryption failed for all encrypt sequence SOURCE blocks.
601
602 fwknop-0.2 (07/31/2004):
603     - Implemented remote username checking in encrypted sequences.
604     - Added support for icmp in knock sequences.
605     - Added protocol rotation option for encrypted sequences.
606     - Added code for multiple SOURCE access blocks with the same source
607       net/IP.
608     - Added KNOCK_LIMIT access control variable to limit the number of
609       times a particular knock sequence is honored.
610     - Added email alerts.
611
612 fwknop-0.1 (07/08/2004):
613     - Initial release.
Note: See TracBrowser for help on using the browser.