2010-08-28 Damien Stuart * Version 2.0.0rc2 * Added support for access requests using ipfw. * Added platform-related ifdefs around platform-specific code. * Stubbed in ipf and pf firewall program support (not operational yet). * Updates to accomodate compiling on FreeBSD-basded systems. 2010-07-21 Damien Stuart * Added extras directory to source distribution as a holder for extra and/or contributed files. This initially includes startup (init) scripts for various platforms. 2010-07-20 Michael Rash Release fwknop 2.0.0rc1 * Tagged fwknop-2.0.0rc1 release. 2010-07-18 Damien Stuart * Added default fallback values for all fwknopd.conf parameters and set all entries in the initially deployed version of fwknopd.conf to be commented out. * Yet another round of code cleanup in preparation for the release of 2.0.0rc1. 2010-07-13 Michael Rash * Added the --fw-list option to the server to list current fwknop-related firewall rules. * Added fallback to default keyring path if GPG_HOME_DIR is not set in the config file or specified on the command-line. * Added is_valdi_dir() function for validating directory paths specified via .conf file or command-line option. 2010-07-11 Damien Stuart * Added the fwknop_errors.[ch] files that provide error code processing functions that consolidate the various sub-system error codes and provide the correct string representation of the corresponding errors. * More documentation tweaks. 2010-07-07 Damien Stuart * Reworked how external commands are executed (due to problems encountered when running in the background on some platforms). * TCP Server child process no longer holds on to the lock file handle, and it also will shut itself down if the parent fwknopd process goes away. * Changed the client to use cipherdyne.org for resolving external IP as the whatismyip.com site has restrictions that could impede proper client invocations using this feature. * Removed the direction fields (src and dst) from the fwknop iptables chain definition parameters in the fwknopd.conf file. * Added RC file support for the client. Now fwknop client can use a .fwknoprc file for saved, named command-line profiles. * Improved clarity in log message output. * Added fknwop.spec file for building binary RPM packages. * Fixed how autoconf was setting up shared library dependencies for the server and client components. 2010-06-28 Damien Stuart * Added COMMAND_MSG support. 2010-06-28 Damien Stuart * Added COMMAND_MSG support. * Added ability to run Command messages as a specified user. * Added code to complete GPG signature processing and validation. This included the addition of the GPG_REQUIRE_SIG and the GPG_IGNORE_SIG_VERIFY_ERROR access.conf parameters. * Implemented the checking signatures against the GPG_REMOTE_ID list. 2010-06-23 Damien Stuart * Added the TCP server functionality. * Added support for receiving and processing SPA data sent via HTTP request. * Added more specific data format and SPA validation checks before attempting decrypt/decode. * Lots of code cleanup in preparation for candidate release. * Brough documentation in sync with functionality. 2010-06-15 Damien Stuart * Finished up first cut support for all firewall rules/modes including Forwarding, DNAT, and SNAT. 2010-05-16 Damien Stuart * Added the intial firewall rules creation and expiry/removal code for simple access requests. 2010-02-09 Damien Stuart * Created initial fwknopd.8 man page. * Added --locale and --no-locale options. * Allow using internal set_config_entry function to set NULL values to configuration options to clear and free them. 2010-02-05 Damien Stuart * Updated libfko to set gpgme to use of gpg (vice gpg2) by default. * Added fko_set_gpg_exe and fko_get_gpg_exe function for getting or setting the path to gpg. Updated docs accordingly. * Fixed some potential memory leak issues in libfko and fwknopd. * Reworked the get_user_pw routines to accomodate use of gpg-agent and not prompting for a password when GPG is used without signing. * Fixed bug where the 'hQ' prefix was removed by the client, but not put back by the server. * Added check for (and ability to override) the path to gpg to the configure script. * Reverted/removed the pretty-print routines from the configure script as the changes caused more issues than they were worth. 2010-01-30 Damien Stuart * Set working version to 2.0.0-alpha-pre2. * Added additional sanity checks and clean-up of access.conf processing and functionality. * Fixed REQUIRE_SOURCE and added check for REQUIRE_USERNAME. * Added fallback to use GPG_DECRYPT_PW if it was set and the normal KEY failed with a decyption error. * Fixed packet count checks to allow a limit of 0 to mean unlimited number of packets. * Minor libfko documentation updates. 2010-01-02 Michael Rash * Added a new command line argument "--last-cmd" to run the fwknop client with the same command line arguments as the previous time it was executed. The previous arguments are parsed out of the ~/.fwknop.run file (if it exists). * Bug fix to not send any SPA packet out on the wire if a NULL password/key is provided to the fwknop client. This could happen if the user tried to abort fwknop execution by sending the process a SIGINT while being prompted to enter the password/key for SPA encryption. 2010-01-03 Damien Stuart * Added access.conf file, parsing, and processing. * Added a new acces.conf parameter, RESTRICT_PORTS for specifying 1 or more proto/ports that are explicitly not allowed. * Upon startup, fwknopd will now create the path to the configured run direcory and/or the basename of the digest cache file if they do not already exist. 2010-01-02 Michael Rash * Added --packet-limit to fwknopd so that the number of incoming candidate SPA packets can be limited from the command line. When this limit is reached (any packet that contains application layer data and passes the pcap filter is included in the count) then fwknopd exits. 2009-12-28 Damien Stuart * Updated autoconf to look for local external executables like iptables, ipfw, sendmail, mail, and sh in the PATH and set corresponding definitions in config.h (only if the server is being built). * Added ability to set the path to the executables listed above via "--with-xx=" arguments to configure. The arg will force the given value whether it exists or not (though it will issue a warning if the path does not exist). 2009-11-01 Michael Rash * (Legacy code) Applied patch from Jonthan Bennett to support the usage of the http_proxy environmental variable for sending SPA packets through an HTTP proxy. The patch also adds support for specifying an HTTP proxy user and password via the following syntax: 'http://username:password@proxy.com:port' or 'http://username:password@proxy.com' * (Legacy code) Bug fix to allow the --rand-port argument to function along without an inappropriate check for the --Server-port arg. 2009-10-27 Michael Rash * Added --http-proxy argument to the fwknop C client so that SPA packets can be sent through HTTP proxies. * (Legacy code) Changed HTTP proxy handling to point an SPA packet to an HTTP proxy with -D specifying the end point host and --HTTP-proxy pointing to the proxy host. This fix was suggested by Jonathan Bennett. 2009-08-02 Damien Stuart * Tweaks to digest code - added SHA384 and SHA512 to supported digests. * Updated autoconf files to account or new headers and types recently added. * Bumped libfko version to 0.63 and perl FKO module version to 0.23. 2009-07-26 Michael Rash * Implemented -s command line argument on the fwknop client command line so that the IP "0.0.0.0" can be sent within an SPA packet. The fwknopd server can wrap access requirements around this IP. * Initial public release of fwknop-c-0.62. 2009-07-23 Michael Rash * Added the --show-last and --no-save command line options to show the command line used for the previous fwknop invocation, and to have the fwknop client not save its command line arguments. * Bug fix to force libfko to recalculate the random data embedded in the the SPA packet after a random port is acquired via --rand-port or --nat-rand-port. This is a precaution so that an attacker cannot guess some of the internal SPA data based on the destination port number. 2009-07-21 Michael Rash * Got forward and local NAT modes working with the --nat-access, --nat-local, --nat-port, and --nat-randport options. All NAT modes are now passing the fwknop test suite. * Added the --server-command option to build an SPA packet with a command for the server to execute. * Added the --fw-timeout option for client side timeouts to be specified. * Added the --time-offset-plus and --time-offset-minus options to allow the user to influence the timestamp associated with an SPA packet. * Added the --rand-port option so that the SPA packet destination port can be randomized. 2009-07-16 Michael Rash * Added the ability to send SPA packets over valid HTTP requests with the fwknop-c client. * Added support for transmitting SPA packets over IPv6 via TCP and UDP sockets, and also via HTTP. * Added GnuPG 'hQ' base64 encoded prefix handling (this prefix is stripped out of encrypted SPA packet data). * Added hostname resolution support to the fwknop-c client if the SPA server is specified as a hostname instead of an IP address. 2008-05-24 Damien Stuart * Added win32 direcory with Visual Studio 2008 solution and project files for building on the Windows platform. 2008-12-21 Damien Stuart Build 0.0.0 alpha * autogen.sh: created. * autoconf/automake: Initial configuration created. Copyright 2009, Damien Stuart This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.