Commit Graph

271 Commits

Author SHA1 Message Date
Michael Rash
9f9bbcbcdd fixed several resource leak conditions found by Coverity 2013-05-09 17:15:58 -04:00
Michael Rash
aaa28d4ab3 [server] double free bug fix in access.conf parsing routine caught by Coverity 2013-05-08 23:44:13 -04:00
Michael Rash
8d980ae686 remove dead code caught by Coverity 2013-05-07 23:02:49 -04:00
Michael Rash
50f0ee2f7d [server] bug fix for GPG 'nesting level does not match indentation' issue (discovered by Coverity) 2013-05-07 22:53:20 -04:00
Michael Rash
8f423e8b89 [server] added --pcap-any-direction along with config file support
From the config file comments:

This variable controls whether fwknopd is permitted to sniff SPA packets
regardless of whether they are received on the sniffing interface or sent
from the sniffing interface.  In the later case, this can be useful to have
fwknopd sniff SPA packets that are forwarded through a system and destined
for a different network.  If the sniffing interface is the egress interface
for such packets, then this variable will need to be set to "Y" in order for
fwknopd to see them.  The default is "N" so that fwknopd only looks for SPA
packets that are received on the sniffin

PCAP_ANY_DIRECTION         N;
2013-05-06 22:23:59 -04:00
Michael Rash
83493a424c Merge branch 'master' of github.com:mrash/fwknop 2013-05-05 21:01:26 -04:00
Damien S. Stuart
0363a2099a Regenerated the client and server manpage .in files from the asciidoc sources 2013-05-05 20:44:47 -04:00
Michael Rash
3c3283992c (Franck Joncourt) patch to address sprintf() warnings for issue #60 2013-05-04 14:16:06 -04:00
Shawn Wilson
621e7b1c6d Merge branch 'master' of github.com:ag4ve/fwknop
Pull in forked upstream
2013-05-03 12:28:49 -04:00
Michael Rash
2297dfd8c2 [server] minor memory leak bug fix for invalid date processing
Bug fix to ensure to release memory when invalid access stanza dates are set
and fwknopd has to exit.  This leak was caught with the test suite in
--enable-valgrind mode based on the following output:

==31947== 568 bytes in 1 blocks are still reachable in loss record 1 of 1
==31947==    at 0x4C2CD7B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31947==    by 0x52EE42A: __fopen_internal (iofopen.c:73)
==31947==    by 0x1116A2: parse_access_file (access.c:909)
==31947==    by 0x10BAD5: main (fwknopd.c:194)
2013-05-02 22:26:21 -04:00
Shawn Wilson
9dc1d26d6a fixed more typos 2013-05-01 10:59:48 -04:00
Shawn Wilson
e50d776ff7 correct variable name typo 2013-05-01 10:42:13 -04:00
Shawn Wilson
52e35b735d add ip address to messages where appropriate 2013-05-01 10:31:44 -04:00
Michael Rash
12a6e9e93a Convert most strlcat() calls to use destination bound from sizeof()
This commit helps to ensure correctness of strlcat() calls in support of fixing
issue #2.
2013-04-27 20:41:12 -04:00
Michael Rash
b3f55bf1ab Convert most strlcpy() calls to use destination bound from sizeof()
This commit helps to ensure correctness of strlcpy() calls in support of fixing
issue #2.
2013-04-27 15:08:11 -04:00
Michael Rash
0ec547e04d [server] another minor CLANG static analyzer fix 2013-04-25 21:32:02 -04:00
Michael Rash
a6e8919728 [server] fix minor CLANG static analyzer bugs
These are simple logic fixes that would not have impacted run time to address
the following warnings generated by the CLANG static analyzer:

incoming_spa.c:433:17: warning: Value stored to 'attempted_decrypt' is never read
                attempted_decrypt = 1;
                ^                   ~
incoming_spa.c:647:13: warning: Value stored to 'acc' is never read
            acc = acc->next;
            ^     ~~~~~~~~~
2013-04-25 21:29:37 -04:00
Michael Rash
f02cc0ddd2 Added HMAC support to GPG encryption modes, closes #58 2013-04-22 20:45:59 -04:00
Michael Rash
08add2fd48 [server] minor function prototype convention update for create_rule() 2013-04-21 20:48:42 -04:00
Michael Rash
05ced0a514 add HMAC_KEY variable support to access.conf (alternative to HMAC_KEY_BASE64) 2013-04-08 22:14:06 -04:00
Michael Rash
08c9cc0938 HMAC function rename for consistency
Make sure that HMAC function names conform to previously established get_*,
set_* naming convention.
2013-03-29 20:42:44 -04:00
Michael Rash
c7b5611fa4 Merge remote-tracking branch 'fjoncourt/hmac_support' into hmac_support
Significant merge from Franck Joncourt to add the ability to save command line
args to ~/.fwknoprc stanzas.  This merge is in support of #4.

Conflicts:
	lib/fko_util.c
	lib/fko_util.h
2013-03-17 21:34:23 -04:00
Michael Rash
7e784df387 [server] allow long Rijndael command messages
This change allows SPA clients to include long messages in command mode and
generally allows decryption operations to dictate success/failure instead of
SPA packet length to gate decryption attempts.  Closes #40.
2013-03-16 14:43:15 -04:00
Michael Rash
253ccb7cea added encryption type/mode and message type string representations for FKO context diplay output 2013-03-14 22:26:44 -04:00
Michael Rash
0529d23595 remove minor debugging statement 2013-03-10 15:13:34 -04:00
Michael Rash
22dde8eb35 SPA with HMAC SHA256 and SHA384 now works
This is a fairly significant commit that lays the groundwork for getting
selectable HMAC modes working for both the client and server.  One libfko API
change was required so that the hmac_type is passed into fko_new_with_data().
This allows the server to set the hmac_type via access.conf stanzas.  The
effort in this commit will be extended to allow HMAC MD5, SHA1, and SHA512
also function properly.
2013-03-10 14:26:05 -04:00
Michael Rash
1a39047b92 ensure to close access.conf file ptr when an error condition is found and exit() is going to be called 2013-03-08 22:12:19 -05:00
Michael Rash
44d05a6916 interim commit for supporting multiple HMAC digest types (# 45) 2013-03-07 23:14:48 -05:00
Michael Rash
b86e48dd66 remove a couple of unnecessary header includes 2013-03-02 23:16:26 -05:00
Damien Stuart
f9e1ae4859 Merge my working branch 'hmac_support' into hmac_header_fixes 2013-03-02 17:22:50 -05:00
Damien Stuart
c1baa7e12f Merge branch 'hmac_support' of github.com:mrash/fwknop into hmac_support 2013-03-02 17:08:55 -05:00
Damien Stuart
6ecf81b16e First round if refactoring to clean up header dependencies. 2013-03-02 17:03:20 -05:00
Michael Rash
839cc41603 remove unused vars for pf/ipfw/ipf firewalls until NAT is supported for them 2013-03-01 22:11:22 -05:00
Michael Rash
ffcb77552b Remove lib/fko.h dependency on rijndael.h 2013-02-28 21:47:43 -05:00
Michael Rash
a413c6cf94 Continue atoi() replacement with strtol() wrapper, closes issue #21
This commit completes the conversion to the strtol() wrapper function in order
to remove all atoi() calls.  In addition, variable max values are enforced
using more broadly defined RCHK_* values.
2013-02-19 23:11:01 -05:00
Michael Rash
6a475bbe54 Continued atoi() replacement with strtol() wrapper (issue #21)
This commit replaces a few additional atoi() calls with the strtol() wrapper
function, and also fixes a bug where access SOURCE IP/mask combinations would
not be accepted when the string length was a long as something like
'123.123.123.123/255.255.255.255'.
2013-02-18 22:22:44 -05:00
Michael Rash
1afc8db96a Added strtol_wrapper() libfko utility function for atoi() replacement (#21)
This commit replaces most atoi() calls (which don't report errors) with a strtol()
wrapper function for stronger string -> integer conversion validation.
2013-02-18 19:32:53 -05:00
Michael Rash
500a395cb6 apply const to pf and ipfw firewall function prototypes 2013-02-17 21:43:16 -05:00
Michael Rash
ce18de4f84 make libfko pointers constant where possible 2013-02-12 22:39:39 -05:00
Michael Rash
b820bbbe4b Minor memory leak bug fix in --rotate-digest-cache mode
This commit fixes a minor memory leak for the digest cache file path in
--rotate-digest-cache mode in the replay_cache_init() function.  The leak was
caught by valgrind, and a new test was added to the test suite for it.  Here
is the valgrind warning:

==29021== 21 bytes in 1 blocks are definitely lost in loss record 2 of 2
==29021==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29021==    by 0x1103AA: replay_cache_init (replay_cache.c:96)
==29021==    by 0x10BB8C: main (fwknopd.c:254)
2013-02-10 14:57:44 -05:00
Michael Rash
e7eb02f82d Maintain backwards compatibility with old "zero padding" code
[libfko] Added the ability to maintain backwards compatibility with the
now deprecated "zero padding" strategy in AES mode that was a hold over
from the old perl fwknop implementation.  This enables the backwards
compatiblity tests to continue to pass in the test suite.
2013-01-27 13:18:29 -05:00
Michael Rash
b0a4c045e6 Merge remote-tracking branch 'fjoncourt/master' into hmac_support
This merges in code from Franck Joncourt to ensure that duplicate iptables
rules are not created for SPA packets that are themselves different but arrive
at the same time and that request exactly the same access.  This is done by
using the 'iptables -C' functionality to determine whether a duplicate rule
already exists before adding a new one.
2013-01-20 15:22:47 -05:00
Michael Rash
47f20ea30c merged in the fixes_for_2.0.4 branch 2013-01-19 18:36:52 -05:00
Michael Rash
47ea800889 merged in fwknop-2.0.4 changes 2013-01-18 17:25:16 -05:00
Franck Joncourt
0fda88cfca * Avoid duplicate rules with the same timestamp. 2013-01-17 21:46:13 +01:00
Damien Stuart
bcea440b87 Limited exported symbols in libfko to only the public (fko_) functions. Moved strlcat/cpy to a separate libfko_util lib. 2012-12-02 09:56:57 -05:00
Michael Rash
04e0c9b560 [server] Ignore pcap non-blocking setting in --pcap-file mode
When setting --pcap-file mode from the command line some versions of libpcap
do not appear to allow non-blocking mode to be set and throw the following
error:

[*] Error setting pcap nonblocking to 0:

This commit ignores the non-blocking setting in --pcap-file mode.
2012-11-27 22:54:55 -05:00
Michael Rash
bc58b3a15f Added chain_exists() check to fwknopd SPA rule creation
Added chain_exists() check to SPA rule creation so that if any
of the fwknop chains are deleted out from under fwknopd they will be
recreated on the fly.  This mitigates scenarios where fwknopd might be
started before a system level firewall policy is applied due to init
script ordering, or if an iptables policy is re-applied without
restarting fwknopd.
2012-11-12 21:48:26 -05:00
Michael Rash
66ad134708 [server] Added '--pcap-file <file>' option
Added a new '--pcap-file <file>' option to allow pcap files to
be processed directly by fwknopd instead of sniffing an interface.  This
feature is mostly intended for debugging purposes.
2012-11-08 21:33:23 -05:00
Michael Rash
627035fb22 Patch from Franck Joncourt for setting permissions via open()
[client+server] Applied patch from Franck Joncourt to remove unnecessary
chmod() call when creating client rc file and server replay cache file.
The permissions are now set appropriately via open(), and at the same
time this patch fixes a potential race condition since the previous code
used fopen() followed by chmod().
2012-10-23 21:47:56 -04:00