| 1 |
fwknop-1.9.9 (11/13/2008): |
|---|
| 2 |
- Added support to fwknop for the Linux 'any' interface which allows SPA |
|---|
| 3 |
packets to be received on multiple interfaces on a Linux system. This |
|---|
| 4 |
is useful for running fwknop on a dual-homed Linux host, and then |
|---|
| 5 |
accepting SPA packets on either the internal or external interface so |
|---|
| 6 |
that SPA packets can influence the packet filter from either network. |
|---|
| 7 |
- Added support for interfacing fwknop with third party software through |
|---|
| 8 |
the addition of three new variables in the access.conf file (or set |
|---|
| 9 |
globally in the fwknop.conf file): EXTERNAL_CMD_OPEN, |
|---|
| 10 |
EXTERNAL_CMD_CLOSE, and EXTERNAL_CMD_ALARM. |
|---|
| 11 |
The "open" and "close" commands might be manually supplied firewall |
|---|
| 12 |
commands, and both support variable substitution of any of the variables |
|---|
| 13 |
in the access.conf file with "$VAR". Also, three special variables are |
|---|
| 14 |
supported: $SRC, $PORT, and $PROTO, which are derived from actual values |
|---|
| 15 |
from within valid SPA packets (as opposed to $SOURCE from access.conf |
|---|
| 16 |
which may contain a list of networks instead of a single IP address). |
|---|
| 17 |
Here are some examples: |
|---|
| 18 |
- Execute a specific iptables command on behalf of the source IP |
|---|
| 19 |
in a valid SPA packet to add a new ACCEPT rule, and execute another |
|---|
| 20 |
command (to delete the same rule after a timeout): |
|---|
| 21 |
EXTERNAL_CMD_OPEN iptables -A INPUT -s $SRC -j ACCEPT |
|---|
| 22 |
EXTERNAL_CMD_CLOSE iptables -D INPUT -s $SRC -j ACCEPT |
|---|
| 23 |
- Execute a custom binary with the SOURCE and OPEN_PORTS variables from |
|---|
| 24 |
the access.conf file as input on the command line, and after a |
|---|
| 25 |
timeout execute a different program but use the real SPA source IP: |
|---|
| 26 |
EXTERNAL_CMD_OPEN /path/someprog $SOURCE $OPEN_PORTS |
|---|
| 27 |
EXTERNAL_CMD_OPEN /path/otherprog $SRC |
|---|
| 28 |
- Added IPT_CMD_ALARM to control the number of seconds that the |
|---|
| 29 |
IPTables::ChainMgr module uses to wrap alarm() calls around iptables |
|---|
| 30 |
commands (for IPTables::ChainMgr 0.8 and later, although this does not |
|---|
| 31 |
interfere with earlier versions of the module). |
|---|
| 32 |
- Added IPT_EXEC_STYLE to control the execution method used for iptables |
|---|
| 33 |
commands in the IPTables::ChainMgr module. The default is "waitpid", |
|---|
| 34 |
but "system", and "popen" are also supported. |
|---|
| 35 |
- Added IPT_EXEC_SLEEP to control the number of seconds that the |
|---|
| 36 |
IPTables::ChainMgr module uses to delay between each iptables command. |
|---|
| 37 |
The default is zero (no delay), but this can be increased to ensure that |
|---|
| 38 |
iptables commands are issued at a slower pace. |
|---|
| 39 |
- Added IPT_EXEC_TRIES to allow critical iptables commands to be tried |
|---|
| 40 |
multiple times (with a default of 1) in case there are any errors from |
|---|
| 41 |
iptables execution. |
|---|
| 42 |
- Added --Override-config to fwknopd (suggested by Franck Joncourt) to |
|---|
| 43 |
allow config variables in the normal /etc/fwknop/fwknop.conf file to be |
|---|
| 44 |
superseded by values from other specified files. The --Override-config |
|---|
| 45 |
command line argument accepts a comma-separated list of multiple files |
|---|
| 46 |
from which to import configuration variables from. |
|---|
| 47 |
- Added code to prefer the usage of the /usr/sbin/sendmail binary to send |
|---|
| 48 |
email alerts before falling back to the mail binary (suggested by |
|---|
| 49 |
Alexander Perlis). |
|---|
| 50 |
- Added --Dump-config to fwknopd (suggested by Franck Joncourt). |
|---|
| 51 |
- Added execution of --Dump-config to the test suite to collect the |
|---|
| 52 |
installed version of the fwknop.conf and access.conf files (personal |
|---|
| 53 |
information is anonymized). |
|---|
| 54 |
- Updated fwknopd to use the POSIX sys_wait_h API for SIGCHLD handling in |
|---|
| 55 |
order to be more consistent with an example from the perlipc man page. |
|---|
| 56 |
- Updated fwknopd to pass in a reference to the SIGCHLD signal handler to |
|---|
| 57 |
the IPTables::ChainMgr module so that all command executions via fork() |
|---|
| 58 |
and exec() are associated with the same signal handler. |
|---|
| 59 |
- Updated to IPTables::ChainMgr version 0.8. |
|---|
| 60 |
- Updated to IPTables::Parse version 0.7. |
|---|
| 61 |
- (Test suite): Added time stamps to MSG and TEST lines for each test |
|---|
| 62 |
(useful to see the relative time if an alarm expires). |
|---|
| 63 |
- (Test suite): Added tests for fwknopd --Override-config, --Dump-config, |
|---|
| 64 |
and writing SPA packets to disk with the --Save-packet functionality (in |
|---|
| 65 |
the fwknop client). |
|---|
| 66 |
- (Test suite): Added tests for IPT_EXEC_SLEEP delays for executing |
|---|
| 67 |
iptables commands. |
|---|
| 68 |
- (Test suite): Added tests for Linux 'any' interface capture of SPA |
|---|
| 69 |
packets on all interfaces. |
|---|
| 70 |
- (Test suite): Added the ability to collect output from knoptm to see |
|---|
| 71 |
when requests are received from fwknopd and when rules are added and |
|---|
| 72 |
removed. |
|---|
| 73 |
- Added version information for fwknopd to syslog startup message. |
|---|
| 74 |
- Bug fix for the fwknop client in symmetric key mode where the terminal |
|---|
| 75 |
would not be taken out of 'noecho' mode if a password less than 8 |
|---|
| 76 |
characters long is provided. Previous to this fix, it was necessary to |
|---|
| 77 |
blindly type 'reset'. (Reported by Alexander Perlis.) |
|---|
| 78 |
|
|---|
| 79 |
fwknop-1.9.8 (09/30/2008): |
|---|
| 80 |
- Added GPG_NO_REQUIRE_PREFIX to access.conf to control whether the GnuPG |
|---|
| 81 |
'hQ' prefix is added before base64 decoding and decrypting. Normally |
|---|
| 82 |
this is not needed, but if there appear to be communications issues |
|---|
| 83 |
between the fwknop client and the fwknopd server then this option can be |
|---|
| 84 |
useful to ensure that encrypted SPA data is sent through the GnuPG |
|---|
| 85 |
decryption routine. The 'hQ' prefix is a heuristic derived from the |
|---|
| 86 |
file 'magic' database for describing data encrypted with GnuPG, and the |
|---|
| 87 |
fwknop client normally strips this data from outgoing SPA packets |
|---|
| 88 |
(unless the --Include-gpg-prefix option is used). |
|---|
| 89 |
- Added 'GPG_PATH <path>' to fwknopd (via access.conf) so that different |
|---|
| 90 |
paths to the gpg binary can be specified on a per-SOURCE basis. This |
|---|
| 91 |
allows one SOURCE stanza to apply one gpg binary to decrypt incoming SPA |
|---|
| 92 |
packets (say /usr/bin/gpg), and another SOURCE stanza to apply to another |
|---|
| 93 |
gpg binary (say /usr/bin/gpg2). In this way, fwknop/fwknopd now |
|---|
| 94 |
supports gpg2 in addition to gpg. |
|---|
| 95 |
- Bugfix to make sure that neither fwknop nor fwknopd reference any |
|---|
| 96 |
options file in GnuPG mode, and this is now the default (which overrides |
|---|
| 97 |
the now unnecessary --gpg-no-options arg). There is a new option |
|---|
| 98 |
--gpg-use-options and GPG_USE_OPTIONS to restore the usage of an options |
|---|
| 99 |
file by GnuPG by fwknop and fwknopd (not normally needed). |
|---|
| 100 |
- Added '--gpg-prefix <bytes>' to the fwknop client so that the |
|---|
| 101 |
predictable prefix for GnuPG encrypted data can be changed. Normally |
|---|
| 102 |
this prefix is 'hQ' (base64 encoded), or the raw bytes 0x8502. |
|---|
| 103 |
- Added the ability to control the path used for the gpg binary on the |
|---|
| 104 |
client side with a new argument '--gpg-path <path>', and on the server |
|---|
| 105 |
side with gpgCmd in the fwknop.conf file. The GnuPG::Interface module |
|---|
| 106 |
normally just takes the first instance of gpg that is the current path, |
|---|
| 107 |
but this new feature allows the path to the binary to be explicitly set. |
|---|
| 108 |
- Added --Save-packet-append to allow SPA packets to be appended to the |
|---|
| 109 |
--Save-packet-file in --Save-packet mode. This allows multiple SPA |
|---|
| 110 |
packets to more easily be stored for closer examination (i.e. to make |
|---|
| 111 |
sure randomness is high or to test encryption properties over large |
|---|
| 112 |
sets of SPA packets). |
|---|
| 113 |
- Updated fwknopd to enforce the DIGEST_TYPE variable more strictly by not |
|---|
| 114 |
accepting SPA packets that do not include digest of the specified type. |
|---|
| 115 |
The DIGEST_TYPE default is 'ALL', so normally fwknopd accepts any |
|---|
| 116 |
supported digest. |
|---|
| 117 |
- Bugfix to make sure to apply BLACKLIST checks to IP addresses specified |
|---|
| 118 |
with -a (or derived via -R) in addition to the source IP in the IP |
|---|
| 119 |
header (which can be modified via --Spoof-src). (Franck Joncourt |
|---|
| 120 |
submitted a patch for this.) |
|---|
| 121 |
- Bugfix to ensure that the permissions for the |
|---|
| 122 |
/var/run/fwknop/knopwatchd.pid file are set to 0600 (noticed by Franck |
|---|
| 123 |
Joncourt). |
|---|
| 124 |
- Bugfix to remove the Net::IPv4Addr dependency in the fwknop client and |
|---|
| 125 |
knoptm daemon (Franck Joncourt). |
|---|
| 126 |
- (Test suite) Added the base64_byte_frequency.pl script to the test/ |
|---|
| 127 |
directory. This script parses files that contain base64 encoded data |
|---|
| 128 |
(one record per line), and produces data files that can be graphed with |
|---|
| 129 |
Gnuplot in order to visualize SPA packets. The new --Save-packet-append |
|---|
| 130 |
argument makes it easy to generate large collections of SPA packets with |
|---|
| 131 |
the fwknop client, and this data can then be parsed by |
|---|
| 132 |
base64_byte_frequency.pl to look for features that are common across SPA |
|---|
| 133 |
packets (this should be minimized because every fwknop SPA packet contains |
|---|
| 134 |
16 bytes of random data). Some analysis of randomness in SPA packets |
|---|
| 135 |
generated by fwknop is presented in this blog post: |
|---|
| 136 |
|
|---|
| 137 |
http://www.cipherdyne.org/blog/2008/09/visualizing-spa-packet-randomness.html |
|---|
| 138 |
|
|---|
| 139 |
- (Test suite) Added tests for GPG_NO_REQUIRE_PREFIX functionality and for |
|---|
| 140 |
the expected GnuPG prefix. |
|---|
| 141 |
- (Test suite) Added tests for GnuPG version 2 (a check is made to see if |
|---|
| 142 |
it is installed before these tests are run). |
|---|
| 143 |
|
|---|
| 144 |
fwknop-1.9.7 (08/24/2008): |
|---|
| 145 |
- Mirek Trmac from Red Hat contributed several patches so that fwknop can |
|---|
| 146 |
be bundled within the Fedora Linux distribution. These patches |
|---|
| 147 |
implemented the following changes: |
|---|
| 148 |
|
|---|
| 149 |
Updates to fwknopd to remove the NetPacket module as a dependency |
|---|
| 150 |
(this is a particularly important update since it assists with getting |
|---|
| 151 |
fwknop bundled with Debian as well). The patch manually decodes the |
|---|
| 152 |
network and transport layer headers. |
|---|
| 153 |
A patch to make the fwknop init script not start fwknopd by default |
|---|
| 154 |
on Red Hat systems. This patch also supports Fedora init script |
|---|
| 155 |
conventions better (i.e. fwknop instead of the fwknopd name for the lock |
|---|
| 156 |
file in /var/lock/subsys). |
|---|
| 157 |
Updated the fwknop Makefile to respect the OPTS variable which is used |
|---|
| 158 |
in the RPM spec file. |
|---|
| 159 |
Bugfix in fwknop_serv to support the variable expansion code from |
|---|
| 160 |
fwknopd. This was important for the TCPSERV_PID_FILE file which is |
|---|
| 161 |
defined as $FWKNOP_RUN_DIR/fwknop_serv.pid. |
|---|
| 162 |
Updated fwknopd to use the Net::Pcap API valid in Net::Pcap-0.14 for |
|---|
| 163 |
the datalink() function (used to detect the datalink layer type). |
|---|
| 164 |
|
|---|
| 165 |
- Updated fwknop, fwknopd, and knoptm to import perl modules out of the |
|---|
| 166 |
/usr/lib/fwknop/ directory if it exists. This allows the perl module |
|---|
| 167 |
path to be manipulated via the --Lib-dir command line argument and |
|---|
| 168 |
'require' statements instead of the old 'use module' strategy. |
|---|
| 169 |
- Added module version output for each non-core perl module used by fwknop |
|---|
| 170 |
and fwknopd in --debug mode. This is mostly useful for the test suite |
|---|
| 171 |
to see which versions of the modules are being used. |
|---|
| 172 |
- Added the ability to ignore any local GnuPG 'options' file with a new |
|---|
| 173 |
command line argument --gpg-no-options (for the fwknop client) and a new |
|---|
| 174 |
access.conf config variable GPG_NO_OPTIONS (for the fwknopd daemon). |
|---|
| 175 |
This fixes a problem reported by Mike Holzmann where the 'encrypt-to' |
|---|
| 176 |
option in the default options file was causing SPA packets to exceed |
|---|
| 177 |
1500 bytes when encrypted with a 2048-bit GnuPG key. Also added the |
|---|
| 178 |
MAX_SNIFF_BYTES to the fwknop.conf file and --Max-packet-size to the |
|---|
| 179 |
fwknop command line to alter the default of 1500 bytes if needed (but |
|---|
| 180 |
this shouldn't really be necessary). |
|---|
| 181 |
- Bugfix for 'Premature end of base64 data' and 'Premature padding of |
|---|
| 182 |
base64 data' warning messages from MIME::Base64 errors. Now fwknopd |
|---|
| 183 |
applies more rigorous checks for base64 encoded characters, and either |
|---|
| 184 |
of these two messages above will result in the packet data being |
|---|
| 185 |
discarded before it is sent through any decryption function. Mike |
|---|
| 186 |
Holzmann reported this issue. |
|---|
| 187 |
- (Test suite) Added --test-system-fwknop to allow any installed version |
|---|
| 188 |
of fwknop to be installed instead of the scripts bundled within the |
|---|
| 189 |
local source distribution. |
|---|
| 190 |
|
|---|
| 191 |
fwknop-1.9.6 (07/18/2008): |
|---|
| 192 |
- SPA packets are base64-encoded by the fwknop client, and this encoding |
|---|
| 193 |
pads data with '=' chars until the total length of the encoded data is a |
|---|
| 194 |
multiple of four. This characteristic can be used within a Snort rule |
|---|
| 195 |
to assist in the detection of SPA communications. The 1.9.6 release of |
|---|
| 196 |
fwknop strips out these padding characters before the client sends an |
|---|
| 197 |
SPA packet, and the fwknopd server adds them back in (to form a multiple |
|---|
| 198 |
of four) before base64 decoding the packet data. This reduces the level |
|---|
| 199 |
of identifying information in SPA packets and therefore makes it more |
|---|
| 200 |
difficult to detect the usage of SPA for service access. For reference, |
|---|
| 201 |
a Snort rule that would detect SPA packets via the trailing '=' chars |
|---|
| 202 |
(previous to this release) would be: |
|---|
| 203 |
|
|---|
| 204 |
alert udp any any -> any 62201 (msg:"fwknop SPA traffic"; \ |
|---|
| 205 |
dsize:>150; pcre:"/==$/"; sid:20080001; rev:1;) |
|---|
| 206 |
|
|---|
| 207 |
- According to the 'file' command (via it's 'magic') database, files that |
|---|
| 208 |
are encrypted with GnuPG begin with 0x8502, and this is true for SPA |
|---|
| 209 |
packets generated by fwknop (previous to this release). In |
|---|
| 210 |
fwknop-1.9.6, the "hQ" prefix is removed by the fwknop client and added |
|---|
| 211 |
back in by the fwknopd server if it doesn't exist. This measure is |
|---|
| 212 |
another effort to make SPA packets more difficult to detect on the wire, |
|---|
| 213 |
such as with the following Snort rule: |
|---|
| 214 |
|
|---|
| 215 |
alert udp any any -> any 62201 (msg:"fwknop GnuPG encrypted SPA |
|---|
| 216 |
traffic"; content:"hQ"; depth:2; dsize:>1000; sid:20080003; rev:1;) |
|---|
| 217 |
|
|---|
| 218 |
- Updated the fwknop client to randomize the UDP source port for default |
|---|
| 219 |
SPA packet generation. There is also a new command line argument |
|---|
| 220 |
--Source-port <port> to allow the user to manually set the source port |
|---|
| 221 |
on the fwknop client command line. A lot more attention is given now to |
|---|
| 222 |
source ports after the Dan Kaminsky DNS caching exploit, and it turns |
|---|
| 223 |
out that even on Linux that the kernel did not randomize UDP source |
|---|
| 224 |
ports until the 2.6.24 kernel. Of course, any userspace process is free |
|---|
| 225 |
to request a random port itself, but if a userspace application did not |
|---|
| 226 |
build this in then it would be up to the kernel to assign a source port. |
|---|
| 227 |
In the case of Linux, here are two links that show the change to the |
|---|
| 228 |
kernel code as well as the ChangeLog entry for UDP source port |
|---|
| 229 |
randomization: |
|---|
| 230 |
|
|---|
| 231 |
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;\ |
|---|
| 232 |
a=commit;h=32c1da70810017a98aa6c431a5494a302b6b9a30 |
|---|
| 233 |
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.24 |
|---|
| 234 |
|
|---|
| 235 |
- (Test suite): Added the ability to explicitly run major classes of tests |
|---|
| 236 |
with two new command line arguments to the fwknop_test.pl script: |
|---|
| 237 |
--test-include <test>, and --test-exclude <test>. In each case the |
|---|
| 238 |
<test> string is used as a sub-string match against the main identifying |
|---|
| 239 |
string for the name of the test. For example, to run all tests for |
|---|
| 240 |
replay attacks, use "--test-include Replay", and for all port |
|---|
| 241 |
randomization tests use "--test-include random". To see all possible |
|---|
| 242 |
classes of tests, run the test suite without any command line arguments |
|---|
| 243 |
and examine the test.log file. |
|---|
| 244 |
- (Test suite): Added tests for the legacy shared and encrypted port |
|---|
| 245 |
knocking modes. |
|---|
| 246 |
- (Legacy port knocking mode): Updated to not require iptables log |
|---|
| 247 |
messages to be written to the fwknopfifo named pipe and just parse the |
|---|
| 248 |
/var/log/messages file directly by default. This can be configured via |
|---|
| 249 |
two new variables ENABLE_SYSLOG_FILE and IPT_SYSLOG_FILE (similarly to |
|---|
| 250 |
the psad project). In support of this feature, install.pl now does not |
|---|
| 251 |
create the fwknopfifo or reconfigure the syslog daemon unless the |
|---|
| 252 |
--install-syslog-fifo argument is used, and the knopmd does not have to |
|---|
| 253 |
run. |
|---|
| 254 |
- (Legacy port knocking mode): Added the ability to re-open the |
|---|
| 255 |
/var/log/messages file if it is rotated by an external program such as |
|---|
| 256 |
logrotate. |
|---|
| 257 |
- (Test suite): Bugfix to use --fw-type argument on fwknopd command line. |
|---|
| 258 |
This fixes various tests on Mac OS X and FreeBSD systems running ipfw. |
|---|
| 259 |
- Minor bugfix to require a space character after variable names when |
|---|
| 260 |
parsing the fwknop.conf file via knopmd and knopwatchd (implemented in |
|---|
| 261 |
fwknop_funcs.c) |
|---|
| 262 |
|
|---|
| 263 |
fwknop-1.9.5 (06/08/2008): |
|---|
| 264 |
- Updated to Class::MethodMaker 2.11 from CPAN. This helps with systems |
|---|
| 265 |
running perl-5.10.0 and greater (such as Fedora 9). |
|---|
| 266 |
- Added the LOCALE variable to fwknop.conf and made the "C" locale set by |
|---|
| 267 |
default so that gpg process output would always be correctly |
|---|
| 268 |
interpreted. |
|---|
| 269 |
- Updated to Net::RawIP 0.23 from 0.21_03 and removed List::MoreUtils |
|---|
| 270 |
since Net::RawIP no longer requires it |
|---|
| 271 |
- Updated to Crypt::Rijndael 1.06 from 1.04. |
|---|
| 272 |
- Updated to Crypt::CBC 2.29 from 2.19. |
|---|
| 273 |
- Updated to GnuPG::Interface 0.36 from 0.34. |
|---|
| 274 |
- Removed legacy knopmd.conf file since knopmd uses the fwknop.conf file |
|---|
| 275 |
instead. Also, note that knopmd only runs in the legacy port knocking |
|---|
| 276 |
mode to collect iptables log information from syslog. The default |
|---|
| 277 |
authentication/authorization method used by fwknop is SPA which exhibits |
|---|
| 278 |
far better security properties than port knocking (see |
|---|
| 279 |
http://www.cipherdyne.org/fwknop/docs/SPA.html). |
|---|
| 280 |
|
|---|
| 281 |
fwknop-1.9.4 (06/01/2008): |
|---|
| 282 |
- Added two new port randomization options. The first instructs the |
|---|
| 283 |
fwknop client to select a random port between 10,000 and 65,535 as the |
|---|
| 284 |
destination port over which to send an SPA packet. This feature is |
|---|
| 285 |
enabled with a new command line argument "--rand-port" like so: |
|---|
| 286 |
|
|---|
| 287 |
$ fwknop -A tcp/22 --rand-port -R -D 11.1.1.1 |
|---|
| 288 |
|
|---|
| 289 |
On the fwknopd server side, the default PCAP_FILTER setting of "udp port |
|---|
| 290 |
62201" should be changed to "udp dst portrange 10000-65535" so that |
|---|
| 291 |
fwknopd can sniff SPA packets that are sent over randomized destination |
|---|
| 292 |
ports. Randomizing the destination port makes it more difficult to |
|---|
| 293 |
write IDS signatures to detect fwknop SPA communications. |
|---|
| 294 |
|
|---|
| 295 |
The second port randomization technique uses a new SPA message type to |
|---|
| 296 |
tell the fwknopd daemon to create a NAT rule for access to a local |
|---|
| 297 |
socket via the iptables INPUT chain. This allows an SSH client to meet |
|---|
| 298 |
the local SSHD daemon running on the fwknopd server system by SSH'ing to |
|---|
| 299 |
the random port. This functionality is implemented via two new command |
|---|
| 300 |
line arguments on the fwknop client command line: "--NAT-rand-port" to |
|---|
| 301 |
instruct fwknop to select a random port over which the follow-on |
|---|
| 302 |
connection will be made), and "--NAT-local" (to instruct the fwknopd |
|---|
| 303 |
server that new firewall rules should NAT an incoming connection to the |
|---|
| 304 |
randomly selected port). Here is an example: |
|---|
| 305 |
|
|---|
| 306 |
$ fwknop -A tcp/22 --NAT-rand-port --NAT-local -R -D 11.1.1.1 |
|---|
| 307 |
|
|---|
| 308 |
Now the fwknop client will select a random port to NAT the incoming |
|---|
| 309 |
connection. So say it selects port 31001 (as indicated by the output of |
|---|
| 310 |
fwknop on the command line as displayed below) - then you would SSH to |
|---|
| 311 |
this port to access the real SSH daemon on the system where fwknopd is |
|---|
| 312 |
running: |
|---|
| 313 |
|
|---|
| 314 |
[+] Sending 206 byte message to 127.0.0.1 over udp/46245... |
|---|
| 315 |
Requesting NAT access to tcp/22 on 127.0.0.1 via port 31001 |
|---|
| 316 |
|
|---|
| 317 |
$ ssh -p 31001 <user>@11.1.1.1 |
|---|
| 318 |
|
|---|
| 319 |
Note that in this case it is not necessary to use --NAT-access since the |
|---|
| 320 |
fwknopd daemon knows that access is requested to a local service (so an |
|---|
| 321 |
internal IP address does not have to be specified). |
|---|
| 322 |
|
|---|
| 323 |
- Added the ability to specify the port that SPA packets are sent over |
|---|
| 324 |
with the fwknop client by using the syntax "<host|IP>:<port>". So, for |
|---|
| 325 |
example, to have the client send an SPA packet to 11.1.1.1 over UDP port |
|---|
| 326 |
12345 (instead of the default of 62201), one could use the following |
|---|
| 327 |
command: |
|---|
| 328 |
|
|---|
| 329 |
$ fwknop -A tcp/22 -R -D 11.1.1.1:12345 |
|---|
| 330 |
|
|---|
| 331 |
- Bugfix to add a check for "keep-state" in ipfw policies in addition to |
|---|
| 332 |
the existing "check-state" check (noticed by Sebastien Jeanquier). |
|---|
| 333 |
- Updated the install.pl script to try to determine the OS type as early |
|---|
| 334 |
as possible during the install process. |
|---|
| 335 |
- Added the MIN_SPA_PKT_LEN variable with 150 (bytes) as the default. |
|---|
| 336 |
This allows fwknopd to ignore packets that are not at least this many |
|---|
| 337 |
bytes (including packet headers) before any decryption attempt is made. |
|---|
| 338 |
- Added --time-offset-plus and --time-offset-minus args to the fwknop |
|---|
| 339 |
client command line. This allows the time stamp within an SPA packet to |
|---|
| 340 |
be influenced without setting the system clock (which normal users |
|---|
| 341 |
cannot usually do). This is useful for when the client and server |
|---|
| 342 |
systems have clocks that are out of sync. |
|---|
| 343 |
- Bugfix on Ubuntu systems to make sure that the fwknop init script is |
|---|
| 344 |
installed with a priority of 99 instead of 20 - this puts fwknop as late |
|---|
| 345 |
as possible within the boot sequence so that the system is ready to run |
|---|
| 346 |
fwknop. |
|---|
| 347 |
- Bugfix to not open ports that are not specifically requested in an SPA |
|---|
| 348 |
packet even if those ports are listed in the OPEN_PORTS variable in the |
|---|
| 349 |
access.conf file. |
|---|
| 350 |
- Updated to version 5.47 of the Digest::SHA module. |
|---|
| 351 |
- Updated to version 0.7 of the IPTables::ChainMgr module (includes |
|---|
| 352 |
perldoc documentation). |
|---|
| 353 |
- Updated to version 0.6 of the IPTables::Parse module (includes perldoc |
|---|
| 354 |
documentation). |
|---|
| 355 |
- Added NAT, port randomization, and and time offset option discussions to |
|---|
| 356 |
fwknop(8) man page. |
|---|
| 357 |
|
|---|
| 358 |
fwknop-1.9.3 (04/05/2008): |
|---|
| 359 |
- Added MASQUERADE and SNAT support to complement inbound DNAT connections |
|---|
| 360 |
for SPA packets that request --Forward-access to internal systems. This |
|---|
| 361 |
functionality is only enabled when both ENABLE_IPT_FORWARDING and |
|---|
| 362 |
ENABLE_IPT_SNAT are set, and is configured by two new variables |
|---|
| 363 |
IPT_MASQUERADE_ACCESS and IPT_SNAT_ACCESS which define the iptables |
|---|
| 364 |
interface to creating SNAT rules. The SNAT supplements of DNAT rules |
|---|
| 365 |
are not usually necessary because internal systems usually have a route |
|---|
| 366 |
back out to the Internet, but this feature accommodates those systems |
|---|
| 367 |
that do not have such a route. By default, the MASQUERADE target is |
|---|
| 368 |
used if ENABLE_IPT_SNAT is enabled because this means that the external |
|---|
| 369 |
IP does not have to be manually defined. However, the external IP can |
|---|
| 370 |
be defined by the SNAT_TRANSLATE_IP variable. |
|---|
| 371 |
- Added hex_dump() feature for fwknop client so that raw encrypted SPA |
|---|
| 372 |
packet data can be displayed in --verbose mode. |
|---|
| 373 |
- When ENABLE_IPT_FORWARDING is set, added a check for the value of the |
|---|
| 374 |
/proc/sys/net/ipv4/ip_forward file to ensure that the local system |
|---|
| 375 |
allows packets to be forwarded. Unless ENABLE_PROC_IP_FORWARD is |
|---|
| 376 |
disabled, then fwknopd will automatically set the ip_forward file to "1" |
|---|
| 377 |
if it is set to "0" (again, only if ENABLE_IPT_FORWARDING is enabled). |
|---|
| 378 |
- Minor bugfix to remove sys_log() call in legacy port knocking mode. |
|---|
| 379 |
- Minor bugfix to expand both the Id and Revision tags via the |
|---|
| 380 |
svn:keywords directive. |
|---|
| 381 |
|
|---|
| 382 |
fwknop-1.9.2 (03/12/2008): |
|---|
| 383 |
- Crypt::CBC adds the string "Salted__" to the beginning of the encrypted |
|---|
| 384 |
text (at least for how fwknop interfaces with Crypt::CBC), so the fwknop |
|---|
| 385 |
client was updated to delete the encoded version of this string |
|---|
| 386 |
"U2FsdGVkX1" before sending a Rijndael-encrypted SPA packet on the wire. |
|---|
| 387 |
The fwknopd server will add this string back in before decrypting. This |
|---|
| 388 |
makes it harder to write an IDS signature that looks for fwknop traffic; |
|---|
| 389 |
e.g. look for the default prefix string "U2FsdGVkX1" over UDP port 62201, |
|---|
| 390 |
which would work for fwknop clients < 1.9.2 (as long as the port number |
|---|
| 391 |
is not changed with --Server-port). |
|---|
| 392 |
- Added more granular source IP and allowed IP tests so that access to |
|---|
| 393 |
particular internal IP addresses can be excluded in --Forward-access |
|---|
| 394 |
mode. A new keyword "INTERNAL_NET_ACCESS" is now parsed from the |
|---|
| 395 |
access.conf file in order to implemented these restrictions. |
|---|
| 396 |
- (SPAPICT Group) Added BLACKLIST functionality to allow source IP |
|---|
| 397 |
addresses to easily be excluded from the authentication process. |
|---|
| 398 |
- (Grant Ferley) Submitted patch to handle SIGCHLD in IPTables::ChainMgr. |
|---|
| 399 |
- (Grant Ferley) Submitted patch to handle Linux "cooked" interfaces for |
|---|
| 400 |
packet capture (e.g. PPPoE interfaces). |
|---|
| 401 |
- (SPAPICT Group) Applied modified version of the client-defined access |
|---|
| 402 |
timeout patches submitted by the PICT SPA Group. There are two new |
|---|
| 403 |
message types to facilitate client timeouts; one for normal access mode, |
|---|
| 404 |
and the other for the FORWARD access mode. In the access.conf file, |
|---|
| 405 |
there is also a new variable "PERMIT_CLIENT_TIMEOUT" to allow each |
|---|
| 406 |
SOURCE stanza to allow client-defined timeouts or not. |
|---|
| 407 |
- (SPAPICT Group) Submitted patches to include support for the SHA1 digest |
|---|
| 408 |
algorithm for SPA packet replay attack detection. I modified these |
|---|
| 409 |
patches for maximum configurability (see the --digest-alg argument on |
|---|
| 410 |
the fwknop command line), and the ability to use the SHA256 algorithm as |
|---|
| 411 |
well. The default path to the /var/log/fwknop/md5sums file has been |
|---|
| 412 |
changed to /var/log/fwknop/digest.cache, and the default digest |
|---|
| 413 |
algorithm is now SHA256 (but this is tunable via the DIGEST_TYPE |
|---|
| 414 |
variable in the fwknop.conf file). |
|---|
| 415 |
- Added the Digest::SHA perl module in support of the SHA1 and SHA256 |
|---|
| 416 |
digest algorithms for replay attack detection and SPA message integrity. |
|---|
| 417 |
- Added full packet hex dumps (including packet headers) to fwknopd in |
|---|
| 418 |
--debug --verbose mode. This is to help diagnose packet sniffing issues |
|---|
| 419 |
over the loopback interface on Mac OS X (first reported by Sebastien |
|---|
| 420 |
Jeanquier). |
|---|
| 421 |
- (Test suite) Bugfix to ensure that the FWKNOP_DIR variable is set to the |
|---|
| 422 |
local output/ directory in several of the test config files in the |
|---|
| 423 |
test/conf/ directory. |
|---|
| 424 |
- (Test suite) Added several tests for configurable digest algorithms in |
|---|
| 425 |
support for the SHA256, SHA1, and MD5 digest changes made by the SPAPICT |
|---|
| 426 |
Group. |
|---|
| 427 |
- Updated the fwknop client to always call encode_base64() with the string |
|---|
| 428 |
to encode along with a second null-string argument to force all encoded |
|---|
| 429 |
data to not include line breaks. |
|---|
| 430 |
- Bugfix in install.pl to not test for the iptable command on non-Linux |
|---|
| 431 |
systems, and to not test for the ipfw command on systems that are Linux. |
|---|
| 432 |
- (Test suite) Updated to include the /proc/config.gz file so that the |
|---|
| 433 |
kernel config can be reviewed (not all Netfilter hooks are necessarily |
|---|
| 434 |
compiled in). |
|---|
| 435 |
|
|---|
| 436 |
fwknop-1.9.1 (01/26/2008): |
|---|
| 437 |
- Added ENABLE_OUTPUT_ACCESS keyword to access.conf file parsing. This |
|---|
| 438 |
provides a similar configuration gate for the iptables OUTPUT chain to |
|---|
| 439 |
the ENABLE_FORWARD_ACCESS keyword, and adds the abiliy to control which |
|---|
| 440 |
access.conf SOURCE blocks interface to the OUTPUT chain. |
|---|
| 441 |
- Better installation support for various Linux distributions including |
|---|
| 442 |
Fedora 8 and Ubuntu. The current runlevel is now acquired via the |
|---|
| 443 |
"runlevel" command instead of attempting to read /etc/inittab (which |
|---|
| 444 |
does not even exist on Ubuntu 7.10), and there are new command line |
|---|
| 445 |
arguments --init-dir, --init-name, and --runlevel to allow the init |
|---|
| 446 |
directory, init script name, and the runlevel to be manually specified |
|---|
| 447 |
on the install.pl command line. |
|---|
| 448 |
- Added command line argument display to fwknop client --verbose mode. |
|---|
| 449 |
- Updated the test suite to include OUTPUT chain tests, reference |
|---|
| 450 |
access.conf files in the test/conf/ directory, and perform SPA packet |
|---|
| 451 |
format validation tests by parsing fwknopd output. |
|---|
| 452 |
- Updated fwknopd to use always use the -c argument on the knoptm command |
|---|
| 453 |
line (this makes sure that the test suite usage of fwknopd causes knoptm |
|---|
| 454 |
to reference the correct configuration). |
|---|
| 455 |
- Updated IPTables::ChainMgr to print iptables command output to stdout or |
|---|
| 456 |
stderr if running in debug or verbose mode. |
|---|
| 457 |
- Added --Exclude-mod-regex to install.pl so that the installation of |
|---|
| 458 |
particular perl modules that match the supplied regex can be skipped. |
|---|
| 459 |
- Added SIGALRM wrapper to the test suite since some libpcap and system |
|---|
| 460 |
combinations break the ability of fwknopd to sniff packets. |
|---|
| 461 |
- Added srand() call to the fwknop client (this is useful for older |
|---|
| 462 |
versions of perl which do not automatically call srand() at the first |
|---|
| 463 |
rand() call if srand() was not already called). |
|---|
| 464 |
- Added a test to the test suite for sniffing packets over the loopback |
|---|
| 465 |
interface. |
|---|
| 466 |
- Added SPA packet aging test to the test suite to ensure that packet |
|---|
| 467 |
expirations work properly (this feature protects against MITM attacks |
|---|
| 468 |
where a valid SPA packet is stopped by an inline attacker and |
|---|
| 469 |
retransmitted at a later time to acquire access). |
|---|
| 470 |
- Added a file (test.log) to collect test suite console output. |
|---|
| 471 |
- Added --Prepare-results argument to test suite to anonymize test results |
|---|
| 472 |
and create a tarball that can be emailed to a third party to assist in |
|---|
| 473 |
- Added full firewall policy dumps and the collection of system specifics |
|---|
| 474 |
to the test suite. This makes it easy to send the output directory and |
|---|
| 475 |
the test.log file to developers to assist in debugging (no information |
|---|
| 476 |
is sent anywhere except as part of a manual process of course, and |
|---|
| 477 |
addresses can be anonymized with --Prepare-results - loopback addresses |
|---|
| 478 |
are not modified). |
|---|
| 479 |
- Added --fw-del-ip <IP> argument to fwknopd so that a specific IP address |
|---|
| 480 |
can be removed from the local firewall policy (this is used by the test |
|---|
| 481 |
suite to ensure that if a test for removed firewall rules fails then |
|---|
| 482 |
subsequent tests will not also fail because they are no longer tracked |
|---|
| 483 |
by a running knoptm instance). |
|---|
| 484 |
- Added a test to the test suite to collect fwknopd syslog output. This |
|---|
| 485 |
is useful to see if a mechanism such as SELinux is deployed in a manner |
|---|
| 486 |
that prevents normal fwknop communications. |
|---|
| 487 |
- Bugfix to track MD5 digest for SPA command mode packets. |
|---|
| 488 |
- Bugfix in fwknopd to not open ports listed in OPEN_PORTS in the absence |
|---|
| 489 |
of the PERMIT_CLIENT_PORTS directive when an SPA packet contains a |
|---|
| 490 |
request for access to a port not listed in OPEN_PORTS. |
|---|
| 491 |
debugging fwknop if there are any issues. |
|---|
| 492 |
- Added --verbose flag to fwknopd commands issued by the test suite so |
|---|
| 493 |
that more data is collected for debugging analysis. |
|---|
| 494 |
- Added GnuPG tests to the test suite with dedicated keys (for use only |
|---|
| 495 |
with the test suite) in the test/conf/client-gpg and |
|---|
| 496 |
test/conf/server-gpg directories. |
|---|
| 497 |
- Added digest file validation to test suite to make sure that fwknopd |
|---|
| 498 |
correctly tracks SPA packet MD5 digests. |
|---|
| 499 |
- Updated to search state tracking rule in any iptables chain (many |
|---|
| 500 |
iptables policies have user-defined chains that can be a bit complicated |
|---|
| 501 |
to parse). |
|---|
| 502 |
- Updated install.pl to be more strict in stopping any running fwknopd |
|---|
| 503 |
processes. |
|---|
| 504 |
|
|---|
| 505 |
fwknop-1.9.0 (12/15/2007): |
|---|
| 506 |
- Added a test suite so that fwknop and fwknopd functionality can be |
|---|
| 507 |
automatically tested over the loopback interface (see the fwknop_test.pl |
|---|
| 508 |
script in the test/ directory). |
|---|
| 509 |
- Major update to allow SPA packets to create DNAT connections to internal |
|---|
| 510 |
systems through the FORWARD chain (iptables only). This is useful to |
|---|
| 511 |
connect through to internal systems (that may be running on non-routable |
|---|
| 512 |
IP addresses) via a border firewall or router that is running fwknopd to |
|---|
| 513 |
create inbound DNAT rules. |
|---|
| 514 |
- Added support for the iptables OUTPUT chain via two new variable in the |
|---|
| 515 |
fwknop.conf file: ENABLE_IPT_OUTPUT and IPT_OUTPUT_ACCESS. This is |
|---|
| 516 |
useful for iptables firewalls that are not running the conntrack modules |
|---|
| 517 |
and that have a restrictive OUTPUT chain (so SYN/ACK responses are not |
|---|
| 518 |
allowed out without an explicit ACCEPT rule). |
|---|
| 519 |
- Added the ability to force the fwknopd and knoptm daemons to restart |
|---|
| 520 |
themselves (via knopwatchd) after a configurable timeout (see the |
|---|
| 521 |
ENABLE_VOLUNTARY_EXITS and EXIT_INTERVAL variables in the |
|---|
| 522 |
/etc/fwknop/fwknop.conf file). This feature is for those that want |
|---|
| 523 |
fwknopd to go through its initialization routine periodically just in |
|---|
| 524 |
case there is a logic (or other) bug that might result in fwknopd not |
|---|
| 525 |
accepting a valid SPA packet. NOTE: This feature is disabled by default, |
|---|
| 526 |
and is not normally needed since fwknopd is quite stable in most |
|---|
| 527 |
deployments. |
|---|
| 528 |
- Major update to perform all firewall rule expirations with knoptm, which |
|---|
| 529 |
is now started in all data collection modes. Older versions of fwknopd |
|---|
| 530 |
maintained its own firewall rule expiration code for the FILE_PCAP, |
|---|
| 531 |
ULOG_PCAP, and KNOCK modes, so two mechanisms were being maintained for |
|---|
| 532 |
the same purpose. The 1.9.0 release fixes this oversight. |
|---|
| 533 |
- Minor bugfix to have knopwatchd generate syslog messages whenever an |
|---|
| 534 |
fwknop daemon needs to be restarted. |
|---|
| 535 |
- Added --interface command line argument to install.pl to allow the |
|---|
| 536 |
sniffing interface to be specified from the command line. Also updated |
|---|
| 537 |
install.pl to enforce a 10-try maximum for attempting to accept a valid |
|---|
| 538 |
interface name from the command line (LANG env issues can exist |
|---|
| 539 |
sometimes). |
|---|
| 540 |
- Updated SPA packet format for server_auth and forward_info elements; |
|---|
| 541 |
the internal MD5 sum is now always the last field in an SPA packet. This |
|---|
| 542 |
makes extensions of the SPA protocol much easier, and the generation of |
|---|
| 543 |
SPA packets more elegant. Also, SPA packet validation has been improved |
|---|
| 544 |
to ensure that fields that are supposed to be digits really only contain |
|---|
| 545 |
integer data. |
|---|
| 546 |
- Added ENABLE_FORWARD_ACCESS variable to the access.conf file, and added |
|---|
| 547 |
ENABLE_IPT_FORWARDING to the fwknop.conf file. These variables provide |
|---|
| 548 |
the per-SOURCE ability to create DNAT connnections through the FORWARD |
|---|
| 549 |
chain.. |
|---|
| 550 |
- Replaced the IPT_AUTO_CHAIN1 variable with IPT_INPUT_ACCESS and |
|---|
| 551 |
IPT_FORWARD_ACCESS in fwknop.conf. |
|---|
| 552 |
- Added --Forward-access argument to the fwknop client. |
|---|
| 553 |
- Added client version number to syslog messages generated by fwknopd when |
|---|
| 554 |
a valid SPA packet is received. |
|---|
| 555 |
- Added human readable timestamp to MD5 cache. Here is an example of the |
|---|
| 556 |
update format: |
|---|
| 557 |
127.0.0.1 X6WF2C29kEgAv4aDJ8TDeQ [Wed Nov 28 09:24:46 2007] |
|---|
| 558 |
- Added --Count argument to fwknopd so that it calls exit() when the |
|---|
| 559 |
specified number of packets is monitored. |
|---|
| 560 |
- Added --no-logs argument to knoptm in support of the test suite so that |
|---|
| 561 |
no emails are generated. |
|---|
| 562 |
- Bugfix in fwknopd to account for non-Ethernet link layer header over |
|---|
| 563 |
*BSD loopback interfaces. |
|---|
| 564 |
- Added --Save-dst argument to the fwknop client to add a priority file to |
|---|
| 565 |
store client command line arguments (~/.fwknop.save). This file is only |
|---|
| 566 |
overwritten when --Save-dst is used. |
|---|
| 567 |
- Added fwknopd --fw-del-chains to allow the fwknopd iptables chains to |
|---|
| 568 |
easily be deleted. |
|---|
| 569 |
- Minor fwknopd bugfix to set process exit status to 0 when --Kill is |
|---|
| 570 |
used. |
|---|
| 571 |
|
|---|
| 572 |
fwknop-1.8.3 (11/17/2007): |
|---|
| 573 |
- Updated external IP resolution to point to http://www.whatismyip.org, |
|---|
| 574 |
and added http://www.cipherdyne.org/cgi/clientip.cgi as a backup site |
|---|
| 575 |
for fwknop IP resolution. |
|---|
| 576 |
- Added storage of source IP along with SPA MD5 sum. This allows the user |
|---|
| 577 |
to infer which networks are more hostile if an SPA packet is replayed. |
|---|
| 578 |
- Added SPA packet hex dumps in 'fwknopd --debug' mode so that the |
|---|
| 579 |
integration of third-party encryption algorithms is easier to |
|---|
| 580 |
troubleshoot. Sean Greven contributed a patch for this. |
|---|
| 581 |
- Reinstated the legacy port knocking mode. It appears that all encrypted |
|---|
| 582 |
output from the updated Crypt::Rijndael module is at least 32 bytes |
|---|
| 583 |
long, so port knocking sequences are now 32 bytes long as well (they |
|---|
| 584 |
were previously 16 bytes long in old versions of fwknop). |
|---|
| 585 |
- Bugfix to ensure the key length is at least 8 chars in --get-key mode. |
|---|
| 586 |
- Minor update to remove init message on OS X install. |
|---|
| 587 |
- Updated install.pl to set the LANG environmental variable to |
|---|
| 588 |
"en_US.UTF-8". This should fix the problem where the output of ifconfig |
|---|
| 589 |
was not interpreted correctly if the locale LANG setting is not English. |
|---|
| 590 |
- Implemented verbose email alerting by setting the ALERTING_METHODS |
|---|
| 591 |
variable to "verbose". This instructs fwknopd to generate a new email |
|---|
| 592 |
message for each message that it normally logs vis syslog (this feature |
|---|
| 593 |
is not the default, and must be manually enabled). |
|---|
| 594 |
|
|---|
| 595 |
fwknop-1.8.2 (09/15/2007): |
|---|
| 596 |
- Added fwknopd server support for Mac OS X. The Darwin uname return |
|---|
| 597 |
string is detected and this enables Darwin-specific installation code in |
|---|
| 598 |
install.pl. |
|---|
| 599 |
- Updated to not print sensitive key/password information in --debug mode |
|---|
| 600 |
with fwknopd. |
|---|
| 601 |
- Bugfix for install.pl on Windows 2003 Server running under Cygwin where |
|---|
| 602 |
'uname -o' output is reported 'Gygwin' for some reason. |
|---|
| 603 |
- Added --Cygwin-install command line argument to install.pl to force |
|---|
| 604 |
client-only fwknop install on Cygwin systems. |
|---|
| 605 |
- Added --OS-type command line argument to install.pl to allow the user to |
|---|
| 606 |
force the installation type. |
|---|
| 607 |
- Updated to version 1.04 of Crypt::Rijndael. This fixes incompatibilities |
|---|
| 608 |
between SPA packets between 64-bit and 32-bit platorms. |
|---|
| 609 |
- Bugfix to enforce a maximum of 20 tries to read a password from stdin. |
|---|
| 610 |
- Applied TCP options parsing fix from psad for invalid zero or one length |
|---|
| 611 |
fields that break TLV encoding (this is for fwknopd, and only applies to |
|---|
| 612 |
the legacy port knocking mode). |
|---|
| 613 |
- Added code to fwknopd to check to see if there are any state tracking |
|---|
| 614 |
rules in place within the local iptables or ipfw policy. |
|---|
| 615 |
- Made syslog identity, facility, and priority configurable (applied code |
|---|
| 616 |
from the psad project). |
|---|
| 617 |
- Implemented --fw-list for ipfw firewalls. |
|---|
| 618 |
- Bugfix for knoptm removing ipfw rules too quickly after not timing out |
|---|
| 619 |
previously instantiated rules properly. |
|---|
| 620 |
- Implemented smarter cache removal strategy in knoptm so that rules that |
|---|
| 621 |
are manually removed from the running iptables or ipfw policy are also |
|---|
| 622 |
removed from the cache. |
|---|
| 623 |
- Added /var/log/fwknop/errs/fwknopd.{warn,die} tracking to the fwknopd |
|---|
| 624 |
daemon for the PCAP modes of collecting packet data. Added |
|---|
| 625 |
knoptm{warn,die} files for knoptm as well. |
|---|
| 626 |
- Bugfix to import the GnuPG::Interface module in --get-key mode. |
|---|
| 627 |
- Bugfix to send source IP as a part of the command message in command |
|---|
| 628 |
mode so that REQUIRE_SOURCE_ADDRESS controls can be applied. |
|---|
| 629 |
- Added --Test-mode to fwknop client so that SPA packets can be built but |
|---|
| 630 |
never sent over the network. |
|---|
| 631 |
|
|---|
| 632 |
fwknop-1.8.1 (06/06/2007): |
|---|
| 633 |
- Bugfix to ensure that the "keep-state" directive is added to firewall |
|---|
| 634 |
rules on systems running the ipfw firewall. |
|---|
| 635 |
- Added the --Save-packet and --Save-packet-file command line arguments |
|---|
| 636 |
to the fwknop client. These options instruct fwknop to save a copy of |
|---|
| 637 |
an encrypted SPA packet before it is sent across the network. |
|---|
| 638 |
- Bugfix to find minimal unused ipfw rule number for ipfw firewalls. This |
|---|
| 639 |
fixes an issue where ipfw rules added by fwknopd could be inserted at |
|---|
| 640 |
the same position as rules from an existing ipfw policy. While ipfw |
|---|
| 641 |
allows duplicate rules, whenever such a rule is deleted by its rule |
|---|
| 642 |
number all matching rules are deleted. |
|---|
| 643 |
|
|---|
| 644 |
fwknop-1.8 (06/03/2007): |
|---|
| 645 |
- Added support for ipfw firewalls (found on *BSD systems). The |
|---|
| 646 |
IPTables::Parse and IPTables::ChainMgr modules are not installed on |
|---|
| 647 |
such systems. |
|---|
| 648 |
- Added gpg-agent support for both the fwknop client and fwknopd SPA |
|---|
| 649 |
server. |
|---|
| 650 |
- Updated client-only installation mode to restrict perl module |
|---|
| 651 |
installation to those module that are actually required by the fwknop |
|---|
| 652 |
client. This results in clean installs of the fwknop client on Windows |
|---|
| 653 |
systems running Cygwin. |
|---|
| 654 |
- Added --Defaults to install.pl so that fwknop can be installed without |
|---|
| 655 |
prompting the user to answer any questions. This is to make it easier |
|---|
| 656 |
to install fwknop on the Source Mage Linux distro. |
|---|
| 657 |
- Consolidated daemon config files into the fwknop.conf file (except for |
|---|
| 658 |
the access.conf file). This simplifies the configuration of fwknop. |
|---|
| 659 |
- Added recursive variable resolution in the parsing routines for the |
|---|
| 660 |
fwknop.conf file. This allows variable values to contain embedded |
|---|
| 661 |
variables. |
|---|
| 662 |
- Added init script for FreeBSD systems. |
|---|
| 663 |
- Added --BSD-install command line argument to install.pl. This is not |
|---|
| 664 |
normally necessary since the installer should detect installations on |
|---|
| 665 |
*BSD systems, but this option can force this behavior. |
|---|
| 666 |
- Updated knopmd and knopwatchd to use safe_malloc() instead of malloc(). |
|---|
| 667 |
- Bugfix to never time out rules from SOURCE blocks with FW_ACCESS_TIMEOUT |
|---|
| 668 |
set to zero |
|---|
| 669 |
|
|---|
| 670 |
fwknop-1.0.1 (01/09/2007): |
|---|
| 671 |
- Updated fwknopd to allow the GPG_REMOTE_ID variable to have the value |
|---|
| 672 |
"ANY" to allow a SOURCE block to match on arbitrary remote gpg signing |
|---|
| 673 |
keys (Leland Weathers). |
|---|
| 674 |
- Bugfix to allow OPEN_PORTS to be omitted in access.conf in favor of |
|---|
| 675 |
having only PERMIT_CLIENT_PORTS enabled (reported by Raul Siles). |
|---|
| 676 |
- Added the cd_rpmbuilder script to make it easy to build RPM's out of |
|---|
| 677 |
CipherDyne projects by automatically downloading the project .tar.gz and |
|---|
| 678 |
.spec files from http://www.cipherdyne.org/. |
|---|
| 679 |
|
|---|
| 680 |
fwknop-1.0 (11/05/2006): |
|---|
| 681 |
- Bugfix for OpenSSH-4.3p2 patch to make sure to include the spa.h header |
|---|
| 682 |
file. |
|---|
| 683 |
- Bugfix for access hashes accumluating when multiple ports are requested |
|---|
| 684 |
to be opened by a client. |
|---|
| 685 |
- Better validation of IPT_AUTO_CHAIN variable so that the from_chain |
|---|
| 686 |
cannot be identical to the to_chain. |
|---|
| 687 |
- Bugfix in RPM to install List::MoreUtils. |
|---|
| 688 |
- Bugfix so that the MD5 sum for an SPA packet is not examined for each |
|---|
| 689 |
SOURCE block. This fixes a problem where an SPA packet could appear to |
|---|
| 690 |
be replayed if multiple SOURCE blocks are defined in |
|---|
| 691 |
/etc/fwknop/access.conf. |
|---|
| 692 |
- Refactored main SPA access loop so that it is clearer how and when SPA |
|---|
| 693 |
clients are granted access. |
|---|
| 694 |
- Better handling of GnuPG key identifier strings (they can now contain |
|---|
| 695 |
spaces, and syslog messages wrap the identifiers with double quotes). |
|---|
| 696 |
- Added source IP address to command string in the SPA packet so that |
|---|
| 697 |
the REQUIRE_SOURCE_ADDRESS criteria can be applied by the fwknopd |
|---|
| 698 |
server. |
|---|
| 699 |
- Added --Show-last-cmd and --Show-host-cmd args to fwknop so that the |
|---|
| 700 |
last fwknop command and the last fwknop host commands can be viewed. |
|---|
| 701 |
- Added the svn revision number to --Version and --help output. |
|---|
| 702 |
|
|---|
| 703 |
fwknop-0.9.9 (10/15/2006): |
|---|
| 704 |
- Added REQUIRE_SOURCE_ADDRESS (disabled by default) to force fwknop |
|---|
| 705 |
clients to know their source IP address (i.e. -s cannot be used). So, |
|---|
| 706 |
either fwknop clients have to use -R to resolve their externally |
|---|
| 707 |
routable address, or they must just know what it is. |
|---|
| 708 |
- Updated to Net-RawIP-0.21_03 for compatibility with gcc-4.x compilers. |
|---|
| 709 |
- Added List-MoreUtils-0.22 which is a dependency of the new Net::RawIP |
|---|
| 710 |
module. |
|---|
| 711 |
- Bugfix to restore "start" functionality in Gentoo init script. |
|---|
| 712 |
- Bugfix to use the IPT_OUTPUT_FILE and IPT_ERROR_FILE configuration |
|---|
| 713 |
variables in fwknopd. |
|---|
| 714 |
- Added KNOPTM_IPT_OUTPUT_FILE and KNOPTM_IPT_ERROR_FILE variables |
|---|
| 715 |
specifically for the knoptm daemon so that it can use IPTables::ChainMgr |
|---|
| 716 |
completely independently of fwknopd (this removes a potential race |
|---|
| 717 |
condition between fwknopd and knoptm). |
|---|
| 718 |
|
|---|
| 719 |
fwknop-0.9.8 (09/17/2006): |
|---|
| 720 |
- Added the ability to ignore old SPA packets through use of the |
|---|
| 721 |
client-side time stamp. This means that an attacker cannot intercept an |
|---|
| 722 |
SPA packet, prevent it from being forwarded to its intended destination, |
|---|
| 723 |
and then put the packet on the wire at some time outside of the allowed |
|---|
| 724 |
time window. There are two new configuration options in fwknop.conf |
|---|
| 725 |
"ENABLE_SPA_PACKET_AGING" and "MAX_SPA_PACKET_AGE" that control the |
|---|
| 726 |
length of the acceptable time window (2 minutes by default). This |
|---|
| 727 |
requires some level of synchronization between the fwknop client and the |
|---|
| 728 |
fwknopd server, but this is not onerous through the use of NTP. This |
|---|
| 729 |
feature is enabled by default, and the idea for it was contributed by |
|---|
| 730 |
Sebastien J. |
|---|
| 731 |
- Completely re-worked IPTables::ChainMgr to support the return of |
|---|
| 732 |
iptables error messages that are collected via stderr. This is critical |
|---|
| 733 |
to fixing any bugs where fwknopd could die as a result of a poorly |
|---|
| 734 |
crafted iptables command. |
|---|
| 735 |
but no information would be returned to the user. |
|---|
| 736 |
- Added the ability to specify the position for both the jump rule into |
|---|
| 737 |
the fwknopd chains as well as the position for new rules within the |
|---|
| 738 |
fwknopd chains via the -I argument to iptables. This fixes a bug where |
|---|
| 739 |
the user was given the impression that the IPTABLES_AUTO_RULENUM would |
|---|
| 740 |
accomplish this (IPTABLES_AUTO_RULENUM has been removed). |
|---|
| 741 |
- Updated fwknopd to require < 1500 byte payload length before attempting |
|---|
| 742 |
to decrypt. Also, GnuPG decrypts are not attempted unless the encrypted |
|---|
| 743 |
payload is at least 400 bytes long (this is conservative since even |
|---|
| 744 |
encrypting a single byte with a 1024-bit key will result in about 340 |
|---|
| 745 |
bytes of encrypted data). |
|---|
| 746 |
- Added the --gpg-default-key option to have fwknop use the default GnuPG |
|---|
| 747 |
key that is defined in the ~/.gnupg/options file. |
|---|
| 748 |
- Added the --URL command line argument so that a URL other than the |
|---|
| 749 |
default http://www.whatismyip.com/ can be provided by the user for |
|---|
| 750 |
external IP resolution (suggested by Sebastien J.). |
|---|
| 751 |
- Updated to be more rigorous with md5 sums; we now require that the |
|---|
| 752 |
md5_base64() function actually returns a non-null result. |
|---|
| 753 |
- Bugfix to make sure that only the users associated with the a specific |
|---|
| 754 |
REQUIRE_USERNAME value (in a specific SOURCE block in access.conf) are |
|---|
| 755 |
granted the appropriate access even if a valid encrypted packet is |
|---|
| 756 |
constructed from a different user name (by an fwknop client). |
|---|
| 757 |
- Populated the _debug option in the IPTables::ChainMgr module, and also |
|---|
| 758 |
added a _verbose option so that the specific iptables commands can |
|---|
| 759 |
actually be seen as IPTables::ChainMgr functions are called. |
|---|
| 760 |
- Added code to install.pl to update command paths in fwknop.conf and |
|---|
| 761 |
knopwatchd.conf if any of the paths are broken (i.e. the local system |
|---|
| 762 |
does not conform to the default paths). By default this only happens if |
|---|
| 763 |
the user does not want old configs to be merged, but to override this |
|---|
| 764 |
use the new --path-update command line argument to install.pl. |
|---|
| 765 |
- Added the --Skip-mod-install command line argument to install.pl to |
|---|
| 766 |
allow all perl module installs to be skipped. |
|---|
| 767 |
- Added the --force-mod-regex command line argument to install.pl to allow |
|---|
| 768 |
a regex match on perl module names to force matching modules to be |
|---|
| 769 |
installed. |
|---|
| 770 |
- Minor bugfix to generate better (i.e. closer to those that Firefox |
|---|
| 771 |
generates) http requests to http://www.whatismyip.com/). |
|---|
| 772 |
- Adapted Mate Wierdl's RPM patch from the psad project so that the fwknop |
|---|
| 773 |
RPM builds on x86_64 systems. |
|---|
| 774 |
- Removed iptables requirement in RPM spec file because fwknop may be |
|---|
| 775 |
installed on a system just to run the fwknop client. |
|---|
| 776 |
- Updated to email username mismatch errors. |
|---|
| 777 |
|
|---|
| 778 |
fwknop-0.9.7 (08/04/2006): |
|---|
| 779 |
- Added fwknop_serv to function as minimal TCP server over which SPA |
|---|
| 780 |
packets can be sent. This allows SPA to be compatible with the Tor |
|---|
| 781 |
network, which requires that a virtual circuit is established before |
|---|
| 782 |
traffic can be sent. |
|---|
| 783 |
- Updated to Crypt::CBC-2.18 after a vulnerability was discovered in |
|---|
| 784 |
previous versions of Crypt::CBC that caused weak ciphertext to be |
|---|
| 785 |
generated for algorithms that have blocksizes greater than 8 bytes (such |
|---|
| 786 |
as Rijndael used by fwknop). Manually specifying initialization vectors |
|---|
| 787 |
is not necessary now. |
|---|
| 788 |
- Updated SSH patch to support OpenSSH-4.3p2. |
|---|
| 789 |
- Bugfix to make sure to create /var/* directories if they don't exist |
|---|
| 790 |
(such as when /var is a tmpfs). |
|---|
| 791 |
- Bugfix (Dwayne Rightler) to restore -w IP lookup functionality after |
|---|
| 792 |
format change on data returned by whatismyip.com. |
|---|
| 793 |
- Bugfix to wrap SPA Rijndael decryption with eval{} so that fwknopd does |
|---|
| 794 |
not die if there are problems trying to decrypt data. This is necessary |
|---|
| 795 |
because of the security vulnerability fix in Crypt::CBC that creates |
|---|
| 796 |
some incompatibilities in different versions of Crypt::CBC. |
|---|
| 797 |
- Added "--L-host" command line argument so that the arguments used for |
|---|
| 798 |
multiple hosts are preserved and can be recalled. |
|---|
| 799 |
- Changed default user-agent setting for whatismyip.com lookups to |
|---|
| 800 |
Firefox/1.0.5.4; there is no need to gratuitously advertise fwknop |
|---|
| 801 |
traffic. |
|---|
| 802 |
- Updated GunPG HOWTO to provide a step-by-step guide to getting fwknop |
|---|
| 803 |
Single Packet Authorization working with GnuPG. |
|---|
| 804 |
- Updated to derive perl module versions from the VERSION files within |
|---|
| 805 |
each of the perl module source directories. |
|---|
| 806 |
|
|---|
| 807 |
fwknop-0.9.6 (01/13/2006): |
|---|
| 808 |
- Added GPG based authentication capability for SPA packets. This new |
|---|
| 809 |
mode can be configured to require that a GPG message be signed with a |
|---|
| 810 |
particular key or set of keys. |
|---|
| 811 |
- In GPG mode, the fwknop client now prints GPG errors to stdout if not |
|---|
| 812 |
running with --gpg-no-batch-mode. |
|---|
| 813 |
- Added the ability to require that the client know the UNIX crypt() |
|---|
| 814 |
password associated with a username on the server side. This |
|---|
| 815 |
functionality is enabled on the fwknop client with the "--Server-auth |
|---|
| 816 |
crypt" command line argument, and the REQUIRE_AUTH_METHOD variable in |
|---|
| 817 |
/etc/fwknop/access.conf on the fwknopd server. |
|---|
| 818 |
- Added patch against OpenSSH-4.2p1 to integrate SPA mode. This patch |
|---|
| 819 |
adds a "-K <fwknop cmd line>" argument to the SSH client so that |
|---|
| 820 |
fwknop can be executed directly before an SSH connection is made. |
|---|
| 821 |
- Separated server and client portions of fwknop into "fwknopd" and |
|---|
| 822 |
fwknop repectively. This will allow better portability to be |
|---|
| 823 |
developed since the client and server pieces can be developed more |
|---|
| 824 |
independently. NOTE: With so many changes, it is probably a good idea |
|---|
| 825 |
to not preserve old fwknop configs via install.pl. |
|---|
| 826 |
- Renamed all relevant fwknopd command and file paths to support new |
|---|
| 827 |
fwknopd server component. |
|---|
| 828 |
- Added --quiet mode (this is used by default in the OpenSSH patch). |
|---|
| 829 |
- Removed legacy port knocking installation in install.pl (fwknopfifo, |
|---|
| 830 |
and fwdata file) unless the data collection mode is set to syslog or |
|---|
| 831 |
syslog-ng for legacy iptables log messages. |
|---|
| 832 |
- Added inode checking for PCAP_PKT_FILE. This helps to ensure that log |
|---|
| 833 |
rotation schemes don't interfere with reading packets out of the file |
|---|
| 834 |
since this check is size independent. |
|---|
| 835 |
- Bugfix for Makefile debug mode. |
|---|
| 836 |
- Added compilation check for perl programs in install.pl before |
|---|
| 837 |
installation into the filesystem. |
|---|
| 838 |
- Bugfix for knopwatchd to make sure it can actually restart all running |
|---|
| 839 |
daemons properly. |
|---|
| 840 |
- Added --force-mod command line argument to install.pl to allow the user |
|---|
| 841 |
to force all perl modules to be be installed regardless of whether a |
|---|
| 842 |
module exists in the system perl lib tree. |
|---|
| 843 |
- Added --no-save-args to fwknop so that existing .fwknop.run file can |
|---|
| 844 |
be preserved (helps to testing new features of fwknop client). |
|---|
| 845 |
- Removed useless --encrypt command line argument (only the old shared |
|---|
| 846 |
port knock sequences are not encrypted). |
|---|
| 847 |
|
|---|
| 848 |
fwknop-0.9.5 (10/02/2005): |
|---|
| 849 |
- Added the ability to resolve the external IP associated with the |
|---|
| 850 |
local network via http://www.whatismyip.com. This is a more secure |
|---|
| 851 |
method of accomplishing what the -s option performs. The new |
|---|
| 852 |
command line option is --whatismyip (or just -w). |
|---|
| 853 |
- Updated fwknop to communicate with knoptm via a UNIX domain socket |
|---|
| 854 |
instead of the previous file-based communication. |
|---|
| 855 |
- Updated to flush the fwknop iptables chains at start time. |
|---|
| 856 |
- Bugfix for removing the wrong hash key in the knoptm IP cache. |
|---|
| 857 |
|
|---|
| 858 |
fwknop-0.9.4 (09/17/2005): |
|---|
| 859 |
- Bugfix for knoptm timing out new entries based on old time values |
|---|
| 860 |
(this caused new rules to timed out too quickly). |
|---|
| 861 |
- Added support for multiple users in REQUIRE_USERNAME keyword in |
|---|
| 862 |
access.conf. |
|---|
| 863 |
- Added the ability to display raw encrypted packet data in client |
|---|
| 864 |
mode with --verbose. |
|---|
| 865 |
- Created fwknop RPM for RPM-based Linux distributions. |
|---|
| 866 |
- Bugfix for inappropriate redirects in command mode where the command |
|---|
| 867 |
already contained a redirect. |
|---|
| 868 |
|
|---|
| 869 |
fwknop-0.9.3 (08/27/2005): |
|---|
| 870 |
- Added an on-disk cache of md5 sums so that the md5 sum check can |
|---|
| 871 |
survive restarts of fwknop. |
|---|
| 872 |
- Updated install.pl to be more friendly to Mac OS X (Blair Zajac). |
|---|
| 873 |
- Updated to allow access.conf variables to have values instead of just |
|---|
| 874 |
being defined. |
|---|
| 875 |
- Started on additional server authentication mode code (re-worked MD5 |
|---|
| 876 |
sum calculation to allow packet format to be extended by taking into |
|---|
| 877 |
account the fwknop version number). |
|---|
| 878 |
|
|---|
| 879 |
fwknop-0.9.2 (08/06/2005): |
|---|
| 880 |
- Added FILE_PCAP data collection method when running in server mode. |
|---|
| 881 |
This is a more general way of getting packets than the ULOG_PCAP |
|---|
| 882 |
mode since then a normal ethernet sniffer can be used to build the |
|---|
| 883 |
file. |
|---|
| 884 |
- Added the ability to re-open a pcap file if its size shrinks (i.e. |
|---|
| 885 |
it gets rotated out or something). |
|---|
| 886 |
- Bugfix for multiple rules with the same timestamp not being timed out |
|---|
| 887 |
by knoptm. |
|---|
| 888 |
- Integrated spoofing capability directly within fwknop (instead of |
|---|
| 889 |
using the knopspoof command) through the use of "require Net::RawIP". |
|---|
| 890 |
- Better multi-protocol support in server mode. Tcp and icmp packets |
|---|
| 891 |
are properly decoded now. |
|---|
| 892 |
|
|---|
| 893 |
fwknop-0.9.1 (07/29/2005): |
|---|
| 894 |
- Added the ability to specify multiple ports/protocols to access on a |
|---|
| 895 |
server with the --Access command line option. |
|---|
| 896 |
- Added the ability to spoof SPA packets over icmp and tcp protocols. |
|---|
| 897 |
- Added the ability to restrict access at the server to only those |
|---|
| 898 |
ports defined in the OPEN_PORTS keyword. This option is controled by |
|---|
| 899 |
a new keyword "PERMIT_CLIENT_PORTS". |
|---|
| 900 |
- Bugfix for MD5 sum not being properly calculated over decrypted data. |
|---|
| 901 |
This allowed old packets that contained additional garbage data to |
|---|
| 902 |
be replayed against an fwknop server. |
|---|
| 903 |
- Updated to fall back to getpwuid() if getlogin() fails (Blair Zajac). |
|---|
| 904 |
- Added --ipt-list to list all current rules in the FWKNOP iptables |
|---|
| 905 |
chains. |
|---|
| 906 |
- Added --ipt-flush to flush all current rules in the FWKNOP iptables |
|---|
| 907 |
chains. |
|---|
| 908 |
- Bugfix for the installer dying if ~/lib already exists (Blair Zajac). |
|---|
| 909 |
- Updated to delay the loading of server perl modules (Net::Pcap, etc.) |
|---|
| 910 |
only if we are running in server mode. |
|---|
| 911 |
- Bugfix for module directory paths in install.pl. |
|---|
| 912 |
|
|---|
| 913 |
fwknop-0.9.0 (05/29/2005): |
|---|
| 914 |
- Added new authorization mode that uses Net::Pcap to read packets |
|---|
| 915 |
out of a file that is written to by the ulogd pcap writer (also |
|---|
| 916 |
stubbed in code to sniff packets directly off the wire). This |
|---|
| 917 |
authorization mode only requires single packets, and has many |
|---|
| 918 |
characteristics that are better than simple port knocking, including |
|---|
| 919 |
being non-replayable, and much more data can be sent. This mode |
|---|
| 920 |
is now the default for both the server and the client. |
|---|
| 921 |
- Made the execution of knopmd optional depending on whether AUTH_MODE |
|---|
| 922 |
is a pcap mode (e.g. ULOG_PCAP or PCAP). |
|---|
| 923 |
- Added --Spoof-src argument so that encrypted packets can be spoofed |
|---|
| 924 |
via /usr/sbin/knopspoof. |
|---|
| 925 |
- Added /usr/sbin/knoptm so that firewall rules can be timed-out when |
|---|
| 926 |
the server is running in PCAP mode even if new packets don't appear |
|---|
| 927 |
on the wire. |
|---|
| 928 |
- Updated fwknop man page to talk about the new pcap-based |
|---|
| 929 |
authorization mode. |
|---|
| 930 |
|
|---|
| 931 |
fwknop-0.5.0 (03/19/2005): |
|---|
| 932 |
- Added ALERTING_METHOD to allow syslog and/or email reporting to be |
|---|
| 933 |
disabled (there is a dedicated file /etc/fwknop/alert.conf that |
|---|
| 934 |
governs this behavior, and both fwknop and knopwatchd reference this |
|---|
| 935 |
file). |
|---|
| 936 |
- Bugfix for distinguishing OPT field associated with --log-tcp-options |
|---|
| 937 |
vs. --log-ip-options. |
|---|
| 938 |
- Added install_perl_module() install.pl from psad to provide a |
|---|
| 939 |
consistent installation interface. |
|---|
| 940 |
- Applied patch to only install perl modules that are not already |
|---|
| 941 |
installed (Blair Zajac). |
|---|
| 942 |
- Added --last-cmd option to allow fwknop to be executed with command |
|---|
| 943 |
line arguments from the previous execution (they are saved in |
|---|
| 944 |
~/.fwknop.run). |
|---|
| 945 |
- Added --Home-dir option to allow the home directory to be manually |
|---|
| 946 |
specified. |
|---|
| 947 |
- Re-worked get_homedir() to be more friendly to systems that do not |
|---|
| 948 |
necessarily have /etc/passwd (e.g. OS X). |
|---|
| 949 |
- Added configuration preservation and querying for which syslog |
|---|
| 950 |
daemon is running to install.pl. These features were adapted from the |
|---|
| 951 |
psad installer (http://www.cipherdyne.org/psad). |
|---|
| 952 |
- Added IPTables::ChainMgr. Fwknop uses this module to maintain |
|---|
| 953 |
dedicated chains to which access rules are added. |
|---|
| 954 |
- Added IPTables::Parse, which is used internally by IPTables::ChainMgr. |
|---|
| 955 |
- Added __WARN__ and __DIE__ handlers so errors can easily be collected. |
|---|
| 956 |
|
|---|
| 957 |
fwknop-0.4.2 (09/27/2004): |
|---|
| 958 |
- Added init script for Fedora systems. |
|---|
| 959 |
- Added --Kill, --Restart, and --Status modes (this fixes the generic |
|---|
| 960 |
init script which depends on these arguments). |
|---|
| 961 |
|
|---|
| 962 |
fwknop-0.4.1 (09/14/2004): |
|---|
| 963 |
- Bugfix for legacy posf code in fwknop and variable in fwknop.conf. |
|---|
| 964 |
|
|---|
| 965 |
fwknop-0.4 (09/10/2004): |
|---|
| 966 |
- Added ability to specify multiple IPs/networks in a single SOURCE |
|---|
| 967 |
definition. |
|---|
| 968 |
- Better examples section in the fwknop manpage. |
|---|
| 969 |
- Bugfix to make sure EMAIL_ADDRESSES variable does not contain commas |
|---|
| 970 |
(any commas are translated into spaces). |
|---|
| 971 |
- Added LICENSE file. |
|---|
| 972 |
|
|---|
| 973 |
fwknop-0.3 (08/21/2004): |
|---|
| 974 |
- Bugfix for tracking knock sequences by source IP address. |
|---|
| 975 |
- Bugfix for knock sequence timeouts. |
|---|
| 976 |
- Removed old passive OS fingerprinting code in favor of the p0f |
|---|
| 977 |
strategy. |
|---|
| 978 |
- Added support for taking encryption keys from a file specified on |
|---|
| 979 |
the command line. |
|---|
| 980 |
- Update to send "sequence decrypt failed" email message only if |
|---|
| 981 |
decryption failed for all encrypt sequence SOURCE blocks. |
|---|
| 982 |
|
|---|
| 983 |
fwknop-0.2 (07/31/2004): |
|---|
| 984 |
- Implemented remote username checking in encrypted sequences. |
|---|
| 985 |
- Added support for icmp in knock sequences. |
|---|
| 986 |
- Added protocol rotation option for encrypted sequences. |
|---|
| 987 |
- Added code for multiple SOURCE access blocks with the same source |
|---|
| 988 |
net/IP. |
|---|
| 989 |
- Added KNOCK_LIMIT access control variable to limit the number of |
|---|
| 990 |
times a particular knock sequence is honored. |
|---|
| 991 |
- Added email alerts. |
|---|
| 992 |
|
|---|
| 993 |
fwknop-0.1 (07/08/2004): |
|---|
| 994 |
- Initial release. |
|---|