63d9f27e1d7db2f520b4eb55d08597b657db3b12
[fwknop.git] / README
1 This is the top-level directory for the C version of fwknop.
2
3 Additional information and details can be found on the fwknop-c site at
4 http://devmetrix.org/trac/fwknop-c.
5
6
7 INTRODUCTION
8 ============
9 This distribution will be a C-based implementation of Michael Rash's
10 Perl-based "fwknop" programs.  For more information on fwknop and what
11 it is all about, go to http://www.cipherdyne.org/fwknop.
12
13
14 CURRENT STATE
15 =============
16 At present, we have an implementation of the Firewall Knock Operator
17 library; `libfko', as well as the fwknop client and server applications.
18 The library provides the API and back-end functionality for managing the
19 Single Packet Authorization (SPA) data that the other fwknop components
20 employ.  It also can be used by other programs that need SPA functonality
21 (see the `perl' directory for the FKO perl module as an example).
22
23 This first version of the C implementation is planned to be compatible
24 with legacy Perl-based fwknop version 1.9.x. However, it was decided to
25 start the version number at 2.0.0 to differentiate it from the current
26 Perl implementation.
27
28
29 BUILDING fwknop
30 ===============
31 This distribution uses GNU autoconf for setting up the build.  Please see
32 the `INSTALL' file for the general basics on using autoconf.
33
34 There are some "configure" options that are specific to fwknop.  They are
35 (extracted from ./configure --help):
36
37   --disable-client        Do not build the fwknop client component. The
38                           default is to build the client.
39   --disable-server        Do not build the fwknop server component. The
40                           default is to build the server.
41   --with-gpgme            support for gpg encryption using libgpgme
42                           [default=check]
43   --with-gpgme-prefix=PFX prefix where GPGME is installed (optional)
44   --with-gpg=/path/to/gpg Specify path to the gpg executable that gpgme will
45                           use [default=check path]
46   --with-iptables=/path/to/iptables
47                           Specify path to the iptables executable
48                           [default=check path]
49   --with-ipfw=/path/to/ipfw
50                           Specify path to the ipfw executable [default=check
51                           path]
52   --with-sh=/path/to/sh   Specify path to the sh executable [default=check
53                           path]
54
55
56 NOTE to those who may be migrating from the Perl version of fwknop
57 ==================================================================
58 For those of you who are currently using the Perl version and plan to 
59 migrate to this version, there are some things to be aware of:
60
61     - Not all of the features and functionality of the Perl-based
62       fwknop were ported to this implementation.  We felt it important
63       to keep the C version as lean and lightweight as possible.  Most
64       of the omitted feature/functions (like email alerts) can be
65       accomplished through other means (i.e. use an external script
66       to monitor log files and alert based on appropriate log messages).
67
68     - There are some diffences in the fwknop configuration and access
69       file directives and values.  Some of these are fairly subtle. You
70       should pay careful attention to the documentation and comments in
71       those files.
72
73
74 NOTE FOR DEVELOPERS
75 ===================
76 If you are pulling this distribution from git, you should run the
77 "autogen.sh" script to generate the autoconf files. If you get errors about
78 missing directories or files, try running "autogen.sh" again.  After that
79 you can run the "autoreconf -i" when you want to regenerate the configuration.
80 If, for some reason, autoreconf does not work for you, the "autogen.sh"
81 script should suffice.
82
83 The fwknop and fwknopd man page nroff sources are included in their
84 respective directorys (client and server).  These nroff files are derived
85 from the asciidoc sources in the 'docs' directory.  See the README in docs
86 for details.
87