append gdbm change to all changes since 2.6.2
[fwknop.git] / perl / legacy / fwknop / README
1
2 fwknop - Firewall Knock Operator
3
4 fwknop implements an authorization scheme that requires only a single
5 encrypted packet to communicate various pieces of information including
6 desired access through an iptables policy and/or specific commands to execute
7 on the target system.  The main application of this program is to protect
8 services such as SSH with an additional layer of security in order to make the
9 exploitation of vulnerabilities (both 0-day and unpatched code) much more
10 difficult.  The authorization server passively monitors authorization packets
11 via libcap and hence there is no "server" to which to connect in the
12 traditional sense.  Any service protected by fwknop is inaccessible (by using
13 iptables to intercept packets within the Linux kernel) before authenticating;
14 anyone scanning for the service will not be able to detect that it is even
15 listening.  This authorization scheme offers many advantages over port
16 knocking (*), include being non-replayable, much more data can be communicated,
17 and the scheme cannot be broken by simply connecting to extraneous ports on
18 the server in an effort to break knock sequences.  The authorization packets
19 can easiliy be spoofed as well, and this makes it possible to make it appear
20 as though, say, www.yahoo.com is trying to authenticate to a target system but
21 in reality the actual connection will come from a seemingly unrelated IP.
22 Although the  default data collection method is to use libpcap to sniff
23 packets off the wire, fwknop can also read packets out of a file that is
24 written by the Netfilter ulogd pcap writer.
25
26 More information can be found in the fwknop(8) man page.
27
28 In addition, fwknop maintains an implementation of a port knocking scheme
29 based around iptables log messages.  Supported knock sequences include both
30 encrypted and shared sequences which can be augmented with both relative and
31 absolute timeouts, multi-protocol usage (tcp, udp, and icmp), and passive OS
32 guess masking.
33
34 fwknop operates in two modes, "server" and "client".  When running in server
35 mode, fwknop parses the file /etc/fwknop/access.conf to get all access
36 definitions (source address, sequence type, access port(s) and protocol, OS
37 fingerprint requirements, etc.) and then begins watching all iptables log
38 messages as they are written to syslog.  If a matching sequence is monitored
39 then the iptables ruleset on the underlying system will be modified to allow
40 access to the port(s) that are either defined in access.conf or contained
41 within the knock sequence (for encrypted sequences).  When running in client
42 mode, fwknop sends either a shared or an encrypted knock sequence to the
43 destination system (which must be running fwknop in server mode).  In client
44 mode fwknop parses the file ~/.fwknoprc if sending a shared knock sequence
45 to the destination or for encrypted sequences fwknop accepts command line
46 input.  Also, for a
47 graphical front-end to fwknop see "fwknopFE"
48 (http://www.snipes.org/index.php?page=fwknopFE) written by Brian Snipes.
49
50 * The term "port knocking" was coined by Martin Krzywinski, see
51 http://www.portknocking.org