Commit Graph

459 Commits

Author SHA1 Message Date
Michael Rash
aeb96c502e added --gpg entropy measurement, added sensible gnuplot yrange calculations 2012-02-09 14:56:18 -05:00
Michael Rash
280b8c56f0 switched CBC mode test (which is the default Rjindael encryption mode) to ECB mode 2012-02-08 14:29:33 -05:00
Michael Rash
bcb0fcfc1a Re-worked encryption/decryption handling
For SPA packets encrypted with Rjindael, fwknop has always used CBC mode
even though ECB mode is mentioned in a couple of places.  This change makes
more transparent use of block_encrypt() and block_decrypt() to ensure that
the appropriate mode is used.  The default is CBC mode, but others can be
selected as well (-M <mode> for the fwknop client, and ENCRYPTION_MODE in
access.conf for the fwknopd server).
2012-02-08 14:16:42 -05:00
Michael Rash
efcefdfb81 update display_ctx() to show the entire plaintext data on one line 2012-02-08 14:15:36 -05:00
Michael Rash
193e1799e6 made default openssl encryption mode 'aes-256-ecb' 2012-02-06 15:19:03 -05:00
Michael Rash
c68358eabd added the ability to encrypt fwknop client plaintext data with openssl 2012-02-06 15:12:31 -05:00
Michael Rash
a7cb3bf62b added spa-entropy/ directory for measuring entropy across SPA packets 2012-01-29 22:07:06 -05:00
Michael Rash
53a6d72cd2 added test suite support for CBC mode Rijndael tcp/22 test 2012-01-29 17:31:12 -05:00
Michael Rash
4c3d2188a1 Update to make AES encryption modes selectable
This is a significant update to allow AES encryption modes to be selected on a
per-key basis.  For now, only ECB and CBC (recommended) modes are supported.
The default is ECB modes in order to maintain backwards compatibility with the
older perl version of fwknop and the Crypt::CBC CPAN module.  This will likely
be changed to use CBC mode by default because of its better security
properties.

In the access.conf file on the server side, there is a new configuration
variable "ENCRYPTION_MODE" that controls the mode for the corresponding AES
key.  On the client side, a new command line argument "--encryption-mode"
controls how the client encrypts SPA packets.
2012-01-24 20:26:21 -05:00
Michael Rash
7e8e48412f convert Rijndael blocksize values '16' to use RIJNDAEL_BLOCKSIZE macro 2012-01-15 15:57:45 -05:00
Michael Rash
dd188dc392 added --stat output to ChangeLog 2012-01-02 18:35:41 -05:00
Michael Rash
a36082b543 moved ChangeLog-v2.0 to ChangeLog 2012-01-02 18:33:42 -05:00
Michael Rash
36f21f95ce removed old ChangeLog files 2012-01-02 18:32:35 -05:00
Michael Rash
305708aa27 Added ChangeLog, ShortLog, and diffstat files for the 2.0 release. 2012-01-02 18:26:05 -05:00
Michael Rash
4ecbcba77c bumped version to 2.0 2012-01-02 17:47:01 -05:00
Michael Rash
9dae73d972 added FKO_CHECK_COMPILER_ARG_LDFLAGS_ONLY to fix ro-relocations and immediate binding protection compliation warnings on FreeBSD 2012-01-02 15:26:42 -05:00
Michael Rash
6f6a9d727d minor test suite update to look for linker warnings in a more generic way 2012-01-02 15:25:35 -05:00
Michael Rash
1bd2592d15 minor test suite addition to check for linker input file warnings 2012-01-02 15:10:55 -05:00
Michael Rash
a6a6a004d4 bumped version to 2.0 2012-01-02 11:29:16 -05:00
Michael Rash
ac0bf15ea7 minor wording update subversion -> git 2012-01-02 09:53:36 -05:00
Damien S. Stuart
aff8832d66 Refactored configure.ac to use a custom macro for compiler flag checks.
Set version to 2.0 (non-release candidate).
Minor typo fixes.
2011-12-29 14:20:18 -05:00
Michael Rash
99b1a48756 updated copyright and license statement - fwknop is GPL software 2011-12-12 20:41:39 -05:00
Michael Rash
7ac5319847 minor addition of the local_spa.key file for 'make dist' 2011-12-05 22:23:00 -05:00
Michael Rash
7a231a3b72 added local_spa.key file 2011-12-05 22:21:31 -05:00
Michael Rash
3d0ceccf65 added local_spa.key file 2011-12-05 22:20:39 -05:00
Michael Rash
710f98a9b5 minor addition of the CREDITS file for 'make dist' 2011-12-05 22:16:38 -05:00
Michael Rash
9bcd7cb137 Added the CREDITS file for 'make dist' 2011-12-05 22:16:03 -05:00
Michael Rash
3b2ec921be change log doc updates 2011-12-05 22:11:58 -05:00
Michael Rash
474a18b57d Added various files to Makefile.am so that 'make dist' continues to work 2011-12-05 22:10:47 -05:00
Michael Rash
690fe25fa4 added CREDITS file, bumped software version, added ChangeLog files 2011-12-05 21:14:31 -05:00
Michael Rash
bcba9d6bde added CREDITS file, bumped software version, added ChangeLog files 2011-12-05 21:14:14 -05:00
Michael Rash
893b89a3eb minor compiler warning fix on OpenBSD 2011-12-03 21:21:29 -05:00
Michael Rash
860b4527a4 minor compile fixes for FreeBSD 2011-12-03 13:10:35 -05:00
Michael Rash
9b7c1a8ce6 Added FORCE_NAT mode to the access.conf file
This commit adds a new configuration variable "FORCE_NAT" to the access.conf
file:

    For any valid SPA packet, force the requested connection to be NAT'd
    through to the specified (usually internal) IP and port value.  This is
    useful if there are multiple internal systems running a service such as
    SSHD, and you want to give transparent access to only one internal system
    for each stanza in the access.conf file.  This way, multiple external
    users can each directly access only one internal system per SPA key.

This commit also implements a few minor code cleanups.
2011-11-30 20:51:19 -05:00
Michael Rash
8585958e6e minor newline fix for access.conf output dump 2011-11-28 23:20:11 -05:00
Michael Rash
2a1243fee6 memory leak bugfix as a follow up to commit b280f5cde0 2011-11-28 23:18:07 -05:00
Michael Rash
b280f5cde0 Added access stanza expiration feature, multiple access stanza bug fix
This commit does two major things:

1) Two new access.conf variables are added "ACCESS_EXPIRE" and
"ACCESS_EXPIRE_EPOCH" to allow access stanzas to be expired without having
to modify the access.conf file and restart fwknopd.

2) Allow an access stanza that matches the SPA source address to not
automatically short circuit other stanzas if there is an error (such as when
there are multiple encryption keys involved and an incoming SPA packet is
meant for, say, the second stanza and the first therefore doesn't allow
proper decryption).
2011-11-28 22:03:21 -05:00
Michael Rash
9e884e9759 added SPA packet aging tests 2011-11-22 22:56:48 -05:00
Michael Rash
72a4353fd8 bug fix to exclude SPA packets with timestamps in the future that are too great (old packets were properly excluded already) 2011-11-22 22:56:36 -05:00
Michael Rash
644b9e9432 added test for --test mode in the fwknop client 2011-11-22 22:40:26 -05:00
Michael Rash
0015da4442 bug fix to honor the fwknop client --time-offset-plus and --time-offset-minus options 2011-11-22 22:34:10 -05:00
Michael Rash
05b189ff4f added DNAT mode tests, minor memory leak fix in NAT mode, added fwknopd check for ENABLE_IPT_FORWARDING variable before attempting NAT access 2011-11-22 22:13:27 -05:00
Michael Rash
dd2deec73d added tests for various access.conf variables 2011-11-18 23:23:50 -05:00
Michael Rash
63498c9032 added IP/subnet match tests, added --Anonymize-results mode 2011-11-17 21:17:50 -05:00
Michael Rash
34cd0c7a78 simplified the client/server interaction code, started on IP filtering tests, added spoof username tests 2011-11-15 21:45:51 -05:00
Michael Rash
3d94aaa920 minor test wording consolidation 2011-11-10 22:54:25 -05:00
Michael Rash
50b48147c0 This commit fixes two memory leaks and adds a common exit function.
The two memory leaks were found with the test suite running in
--enable-valgrind mode - here are the relevant error messages:

For fwknopd server GPG clean up:

==345== 9 bytes in 1 blocks are definitely lost in loss record 2 of 2
==345==   at 0x4C2815C: malloc (vg_replace_malloc.c:236)
==345==   by 0x52F6B81: strdup (strdup.c:43)
==345==   by 0x10FA57: add_string_list_ent (access.c:308)
==345==   by 0x110513: parse_access_file (access.c:387)
==345==   by 0x10B5FB: main (fwknopd.c:193)

For fwknop client rc file processing:

==8045== 568 bytes in 1 blocks are still reachable in loss record 12 of 12
==8045==    at 0x4C2815C: malloc (vg_replace_malloc.c:236)
==8045==    by 0x50A53AA: __fopen_internal (iofopen.c:76)
==8045==    by 0x10C3FF: process_rc (config_init.c:446)
==8045==    by 0x10C8F6: config_init (config_init.c:671)
==8045==    by 0x10AC9E: main (fwknop.c:62)

There is also a new clean_exit() function that makes it easier to ensure that
resources are deallocated upon existing.
2011-11-10 22:33:32 -05:00
Michael Rash
9ebd55f522 remove CMD timestamps for --diff mode 2011-11-10 22:33:00 -05:00
Michael Rash
9e19b8bc26 added --diff mode to the test suite to compare results from one execution to the next 2011-11-06 13:51:23 -05:00
Michael Rash
a5a3c06ef2 consolidated several test functions into a single generic_exec() function 2011-11-04 23:46:31 -04:00