credit Blair and Tim with MacPorts and Homebrew maintainer status
[fwknop.git] / perl / legacy / fwknop / CREDITS
1 David Jacobs
2     - Suggested IP/network lists in SOURCE definitions
3     - Wording fixes in fwknop(8) manpage.
4     - Assisted in fwknop-1.9.2 testing.
5
6 Brian Snipes
7     - Wrote a graphical front-end for fwknop called "fwknopFE":
8         http://www.snipes.org/index.php?page=fwknopFE
9     - Found bug with legacy fingerprinting file "posf".
10
11 Joel Loudermilk
12     - Submitted patch to optionally disable email alerting.  The end result
13       was the addition of the REPORT_METHOD keyword in fwknop.conf.
14
15 Blair Zajac
16     - Submitted patch to not install perl modules in /usr/lib/fwknop/ that
17       are already installed in the system perl lib tree.
18     - Submitted patch to use getpwuid() instead of just getlogin().
19     - Submitted patch to fix bug in install.pl and how the ~/lib directory
20       is created in client install mode.
21     - Found bug with perl module file paths and naming convention (this bug
22       resulted in some modules being needlessly installed).
23     - Suggested that fwknop handle rotated log files (even pcap logs get
24       rotated on some systems).
25     - Suggested that modules only required in server mode are not use at
26       runtime when running fwknop in client mode.
27     - Suggested -O optimization in Makefile.
28     - Found bug where log rotation detection would break under the size
29       change detection method.  The result was the inode check in 0.9.6.
30     - Found bug where some Linux distributions have /var/run as type tmpfs,
31       and this caused fwknopd to die because it couldn't write to its PID
32       file.
33     - Suggested command path update code in install.pl so that the user does
34       not always have to edit the fwknop.conf and knopwatchd.conf files if
35       the system does not have commands in the default locations.
36
37 Will McCracken
38     - Reported bug on OS X where getlogin() does not return the correct
39       data.  This permitted fwknop to be updated to fall back to ENV{'USER'}
40       var.
41
42 Omar A. Herrera
43     - Submitted a patch to fix a timeout bug in knoptm that caused newly
44       created rules to be deleted too quickly.
45
46 Werner Wiethege
47     - Submitted a patch to fix a bug in knoptm where inappropriate hash
48       keys were being deleted and so previous timeouts would apply to the
49       current interval.
50
51 Ronald Bister
52     - Submitted a fix for not being able to parse ifconfig output correctly
53       when languages besides English are used.
54
55 Hank Leininger
56     - Suggested privilege separation to minimize code that executes as root.
57     - Suggested NULL password GPG keys.
58     - Suggested integration with ssh-agent and gpg-agent.
59
60 Dwayne Rightler
61     - Submitted patch to fix bug where whatismyip.com altered their return
62       data format and this broke the -w command line switch.
63
64 Sebastien Jeanquier
65     - Contributed more rigorous regular expression for matching an IP address.
66     - Suggested allowing symmetric keys to exceed 256 bits.
67     - Suggested using Crypt::Random for random number generation.
68     - Suggested the integration of time synchronization as an additional
69       measure for the fwknopd daemon to validate incoming SPA packets (this
70       will probably be enabled by default).
71     - Suggested a new method of interacting with iptables to redirect
72       connections to one port to another port on the same system.
73     - Suggested making the --Spoof-user argument useable by non-root users.
74     - Suggested the ability to randomize a spoofed IP address.
75     - Suggested building in compatibility with external IP resolution sites
76       such as http://www.whatismyip.com/
77     - Provided a Mac OS X system to develop fwknop support for OS X.  Many
78       thanks!
79     - Helped with the testing process for fwknop-1.8.2 and OS X support.
80     - Suggested the integration of SHA256 for replay attack detection.
81     - Suggested the OPEN_PORTS fix to not open ports that are not
82       specifically requested in an SPA packet.
83     - Noticed the bug where the "keep-state" option was not noticed when
84       checking for state tracking rules in ipfw policies.
85
86 Mate Wierdl
87     - Contributed patch (originally for the psad project) for building the
88       RPM on x86_64 platforms.
89
90 Raul Siles
91     - Bug report to allow OPEN_PORTS to be omitted in access.conf in favor of
92       having only PERMIT_CLIENT_PORTS enabled.
93
94 Leland Weathers
95     - Submitted patch to allow the GPG_REMOTE_ID variable to have the value
96       "ANY" to allow arbitrary gpg signing keys to match the SOURCE block.
97
98 Juuso Alasuutar
99     - Suggested that the install.pl script offer a mode where the user is not
100       prompted at all in order to make it easier to integrate fwknop with
101       the Source Mage Linux distribution. The result is the --Defaults option
102       to the install.pl script.
103     - Suggested the ability to use gpg keys without passwords.
104
105 Neal Baer
106     - Tested the fwknop-1.8 release for Windows systems (running Cygwin).
107     - Tested the cd_rpmbuilder script on SuSE systems.
108
109 Graham Clark
110     - Suggested man page documentation bug fixes.
111
112 Roy Segovia
113     - Submitted patch to fix print statement bug in command mode where the
114       command was inappropriately prepended with the source IP address.
115     - Reported bug with running fwknop under Cygwin on Windows 2003 Server,
116       which reports 'Gygwin' under the 'uname -o' output.
117
118 Mark Van De Vyver
119     - Reported a bug where the iptables command path was not being properly
120       discovered if it did not reside at the default location specified in the
121       fwknop.conf file.
122     - Submitted various documentation issues with the fwknop man pages. The -D
123       option in fwknop-1.8.2 resulted from this feedback.
124     - Reported a bug where the .xsession.errors file would fill with output
125       logged by fwknop when null passwords were read from stdin.
126
127 Flavio Machado
128     - Reported command mode bug where the source IP address is not properly
129       communicated to the SPA server.
130
131 Eggert Ehmke
132     - Reported resolution bug with http://www.whatismyip.com/.  The result was
133       the interpretation of the link designed for automated scripts:
134       http://www.whatismyip.com/automation/n09230945.asp
135
136 Luis Martin Garcia
137     - Suggested using http://www.whatismyip.org/ instead of
138       http://www.whatismyip.com/
139
140 Gerry Reno
141     - Reported legacy knopwatchd.conf file in RPM package in fwknop-1.8.2.
142
143 Sean Greven
144     - Submitted patch for enhanced 'fwknopd --debug' output to include raw hex
145       dumps of SPA packet data before and after attempted decryption
146       operation. This allows the integration of cipher implementations other
147       than Crypt::Rijndael or GnuPG ciphers to be validated.
148     - Contributed a UI written in Delphi that runs on Windows platforms and
149       builds its own SPA packets without using the fwknop client.  This is an
150       important development, since it proves that third-party UI integration
151       is possible.
152
153 Franck Joncourt
154     - Performed analysis of locale settings and suggested using the LC_ALL
155       environmental variable instead of the LANG variable (which is superseded
156       by LC_* vars).
157     - Created Debian packages for the IPTables::ChainMgr and IPTables::Parse
158       modules.
159     - Reported bug for distributing old knopmd.conf and knopspoof files.
160     - Submitted documentation patches for fwknop man pages.
161     - Submitted man pages for fwknop_serv and knoptm.  Also submitted a patch
162       for the knoptm man page to discuss all command line options.
163     - Architected the process of packaging fwknop for the Debian Linux
164       distribution.
165     - Suggested 0600 permissions mode on all <proc>.pid files in
166       /var/run/fwknop/
167     - Suggested removing the Net::IPv4Addr dependency in the fwknop client
168       and in the knoptm daemon since functions from this module were never
169       actually used.
170     - Bug fix to make sure to apply BLACKLIST checks to IP addresses specified
171       with -a (or derived via -R) in addition to the source IP in the IP
172       header (which can be modified via --Spoof-src).
173     - Bug fix for check_commands() to ensure that proper include/exclude
174       criteria for incoming hash refs is performed.
175     - Suggested the --Override-config command line argument on the fwknopd
176       command line so that normal config variables from the
177       /etc/fwknop/fwknop.conf file can be superseded with values from the
178       specified file(s).  Multiple files can be given as a comma-separated
179       list.  Submitted patch to fix --Override-config parsing in knoptm.
180       Bug fix to add -O command line arg to knopwatchd to specify an override
181       config file if one is given on the fwknopd command line.
182     - Added the ability to send mail with the sendmail command in knopwatchd
183       One of the mailCmd and sendmailcmd must be available in fwknop.conf.
184     - Submitted patch to update the knopwatchd man page for the latest command
185       line options for 1.9.11.
186
187 Jose Luis Bellido
188     - Provided testing support for fwknop running on systems with Spanish
189       locale settings, and validated fwknop GnuPG communications.
190
191 Marius Rugan
192     - Suggested the ability to add firewall accept rules to the iptables
193       OUTPUT chain.
194
195 Grant Ferley
196     - Submitted patch to handle SIGCHLD in IPTables::ChainMgr.
197     - Submitted patch to handle Linux "cooked" interfaces for packet capture
198       (e.g. rp-pppoe interfaces).
199
200 The SPAPICT Team
201     - The SPAPICT Team consists of the following people:
202             Ambar Seksena (advisor)
203             Nippun Goel (advisor)
204             Abhishek Rahirikar (developer)
205             Aaditya Badve (developer)
206             Saurabh Jain (developer)
207             Satyajit Deshpande (developer)
208     - Submitted patch to implement client-defined firewall access timeouts.
209     - Submitted patch to implement SHA1 digests in SPA messages.
210     - Made various suggestions for the implementation of important fwknop
211       extensions, such as the integration architecture with Kerberos.
212
213 John Brendler
214     - Made a post to a Gentoo forum entitled "Single-Packet Authentication
215       (Crypt-Port-Knocking) in BASH".  In this post John demonstrated that SPA
216       packets can be sent over random ports, and this suggestion is now
217       implemented in fwknop-1.9.4 in two forms: the --rand-port option, which
218       sends the SPA packet itself over a random UDP port, and --NAT-rand-port
219       which selects a random port encrypted within an SPA packet that is used
220       by the fwknopd server to forward connections over.
221
222 Kevin Hilton
223     - Suggested making the init script position as "99" instead of "20" on
224       Ubuntu systems.
225
226 Jean-Denis Girard
227     - Suggested that the "C" locale be set by default so that gpg process
228       output would always be correctly interpreted.
229
230 Mirek Trmac
231     - Contributed patches to allow fwknop to be bundled with Fedora.  These
232       patches included the following, and all were sponsored by Red Hat:
233
234         Updates to fwknopd to remove the NetPacket module as a dependency
235       (this is a particularly important update since it assists with getting
236       fwknop bundled with Debian as well).  The patch manually decodes the
237       network and transport layer headers.
238         A patch to make the fwknop init script not start fwknopd by default
239       on Red Hat systems.  This patch also supports Fedora init script
240       conventions better (i.e. fwknop instead of the fwknopd name for the lock
241       file in /var/lock/subsys).
242         Updated the fwknop Makefile to respect the OPTS variable which is used
243       in the RPM spec file.
244         Bugfix in fwknop_serv to support the variable expansion code from
245       fwknopd.  This was important for the TCPSERV_PID_FILE file which is
246       defined as $FWKNOP_RUN_DIR/fwknop_serv.pid.
247         Updated fwknopd to use the Net::Pcap API valid in Net::Pcap 0.14 for
248       the datalink() function (used to detect the datalink layer type).
249
250 Mike Holzmann
251     - Diagnosed a bug where SPA packets encrypted with 2048-bit keys would
252       exceed 1500 bytes if the 'encrypt-to' option was set in the default
253       ~/.gnupg/options file.  The result was the addition of the
254       --gpg-no-options command line argument on the fwknop command line, and
255       the GPG_NO_OPTIONS variable in the access.conf file for the fwknopd
256       daemon.
257     - Reported lots of 'Premature end of base64 data' and 'Premature padding
258       of base64 data' warning messages.  A fix was applied to fwknopd to apply
259       more rigorous checks for base64 encoded characters, and either of the
260       two messages above will result in the packet data being discarded before
261       it is sent through any decryption function.
262     - Suggested documentation fixes in the fwknop(8) man page.
263     - Reported a bug where sniffing on ppp interface resulted in fwknopd not
264       being able to properly decode the IP header.  The result was adding the
265       ENABLE_COOKED_INTF variable in the fwknop.conf file.
266
267 Francois Marier
268     - Submitted bug report for 2048-bits GnuPG keys that led to a bugfix and
269       the implementation of --gpg-use-options and the GPG_USE_OPTIONS variable
270       in the access.conf file.
271     - Helpful troubleshooting and testing on the Debian and Ubuntu Linux
272       distributions, and reviewed Debian packaging efforts.
273
274 Alexander Perlis
275     - Suggested a comprehensive ability to interface with third party software
276       after receiving valid SPA packet data.  This is allows fwknop to easily
277       integrate with software that is already managing a firewall policy.
278     - Reported a bug in symmetric key mode where the fwknop client would not
279       place the terminal out of 'noecho' mode if a password less than 8
280       characters long is provided.
281     - Reported a bug in the EXTERNAL_* feature where SPA packets without a
282       list of ports specified on the command line would not be honored by the
283       fwknopd daemon.
284     - Reported a bug in the EXTERNAL_* feature where using --fw-list when
285       FIREWALL_TYPE is set to 'external_cmd' resulted in starting the fwknopd
286       daemons.
287     - Suggested the usage of the sendmail binary as the default for sendmail
288       email alerts instead of the mail binary.
289
290 Damien Stuart
291     - Wrote the first viable C implementation of fwknop called "libfko" (to be
292       released in a future version beyond the 1.9.10 release).  This is a major
293       contribution and will allow SPA to be extended to secure systems where
294       perl is not even installed, or embedded systems (such as small routers
295       running OpenWRT) where perl cannot reasonably be deployed.
296     - Wrote the FKO perl module, which is an XS extension of the libfko C
297       functions.
298     - Found a bug where the number of SPA packet fields expected by fwknopd
299       did not allow client timeouts in the forward and local NAT modes.
300
301 Ted Drivas
302     - Reported a bug in properly decoding SPA packets sent over spoofed ICMP
303       packets.  This bug was fixed by increasing the minimum expected ICMP
304       header length to 8 bytes.
305
306 Martin Ferrari
307     - Bug fix to provide a work around for fwknopd segfaults on Debian
308       systems when the version of Net::Pcap that is installed comes from doing
309       'apt-get install fwknop-server'.  See the thread at
310       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508432 for more info.
311
312 Julien Picalaus
313     - Contributed patches to implement a proper interface to
314       use ipfw 'sets' on systems running ipfw firewalls.  This involved
315       changes to fwknopd, knoptm, and the fwknop.conf file like so:
316       Added a test to see if the local ipfw firewall policy is using dynamic
317       rules. Added ipfw_move_rule() so that rules can be moved from one set to
318       another. Added ipfw_disable() set subroutine and it is called at init for
319       IPFW_SET_NUM (except when ipfw isn't using dynamic rules).  Made sure
320       that rule finding includes disabled rules (ipfw list -S and changes to
321       regexp) and returning the set in addition to the rule number.  When
322       granting access, if a corresponding disabled rule already exists, enable
323       it instead of adding a new one (except when ipfw isn't using dynamic
324       rules). When adding rules, only use keep-state if there are already
325       dynamic rules.  Added IPFW_SET_NUM so that the set number for new ipfw
326       can be specified, and add IPFW_DYNAMIC_INTERVAL so that the interval
327       over which rules that have no associated dynamic rules are removed (the
328       default is 60 seconds).
329
330 Jens Binnewies
331     - Reported an error condition where interfaces that are created and then
332       deleted and recreated would cause the fwknopd daemon to not be able to
333       sniff SPA packets.  The typical example where this is important is with
334       ppp interfaces associated with VPN's that are shut down and recreated.
335
336 Martin Tan
337     - Submitted a patch to allow rules added by fwknopd to not be expired if
338       there are any established connections involving a source IP and a list of
339       ports.  Once the established connections are removed, then any rules
340       added by fwknopd are then allowed to also be removed. This feature is
341       controlled by three new configuration variables in the fwknop.conf file:
342       ENABLE_CONNTRACK_PERSIST, CONNTRACK_ESTAB_PORTS, and IPT_CONNTRACK_FILE.
343
344 Jonathan Bennett
345     - Submitted patch to the fwknop client to add HTTP proxy support when
346       sending SPA packets over HTTP.  The result is a new --HTTP-proxy option
347       that expects the proxy host to be given as "http://HOST", and it also
348       supports the "http://HOST:PORT" notation as well.
349     - Bug fix for the fwknop client sending an SPA packet through an HTTP
350       proxy based on the --HTTP-proxy arg with the ultimate destination
351       specified via  the -D arg.
352
353 Daniel Lopez
354     - Wrote the morpheus-fwknop clietn UI:
355         http://sourceforge.net/projects/morpheus-fwknop/files/0.7.3501.21619 \
356         /Morpheus%200.7%20Installer.zip/download