Import release 0.1.12
[secnet] / NEWS
CommitLineData
8dea8d37
SE
1* Planned for the future
2
469fd1d9 3Netlink device that implements an Ethernet bridge.
8dea8d37 4
469fd1d9
SE
5Modular transform code: choice of block ciphers, modes, sequence
6numbers / timestamps, etc. similar to IWJ's udptunnel
8dea8d37 7
d3fe100d
SE
8Path-MTU discovery for each tunnel, and fragmentation/DF support in
9netlink code.
10
11* New in version 0.1.12
12
13IMPORTANT: fix calculation of 'now' in secnet.c; necessary for correct
14operation.
15
16(Only interesting for people building and modifying secnet by hand:
17the Makefile now works out most dependencies automatically.)
18
19The netlink code no longer produces an internal routing table sorted
20by netmask length. Instead, netlink instances have a 'priority'; the
21table of routes is sorted by priority. Devices like laptops that have
22tunnels that must sometimes 'mask' parts of other tunnels should be
23given higher priorities. If a priority is not specified it is assumed
24to be zero.
25
26Example usage:
27site laptop { ...
28 link netlink {
29 route "192.168.73.74/31";
30 priority 10;
31 };
32};
33
794f2398
SE
34* New in version 0.1.11
35
36Lists of IP addresses in the configuration file can now include
37exclusions as well as inclusions. For example, you can specify all
38the hosts on a subnet except one as follows:
39
40networks "192.168.73.0/24","!192.168.73.70";
41
42(If you were only allowed inclusions, you'd have to specify that like
43this:
44networks "192.168.73.71/32","192.168.73.68/31","192.168.73.64/30",
45 "192.168.73.72/29","192.168.73.80/28","192.168.73.96/27",
46 "192.168.73.0/26","192.168.73.128/25";
47)
48
49secnet now ensures that it invokes userv-ipif with a non-overlapping
50list of subnets.
51
52There is a new command-line option, --sites-key or -s, that enables
53the configuration file key that's checked to determine the list of
54active sites (default "sites") to be changed. This enables a single
55configuration file to contain multiple cofigurations conveniently.
56
57NAKs are now sent when packets arrive that are not understood. The
58tunnel code initiates a key setup if it sees a NAK. Future
59developments should include configuration options that control this.
60
61The tunnel code notifies its peer when secnet is terminating, so the
62peer can close the session.
63
64The netlink "exclude-remote-networks" option has now been replaced by
65a "remote-networks" option; instead of specifying networks that no
66site may access, you specify the set of networks that remote sites are
67allowed to access. A sensible example: "192.168.0.0/16",
68"172.16.0.0/12", "10.0.0.0/8", "!your-local-network"
469fd1d9
SE
69
70* New in version 0.1.10
71
72WARNING: THIS VERSION MAKES A CHANGE TO THE CONFIGURATION FILE FORMAT
73THAT IS NOT BACKWARD COMPATIBLE. However, in most configurations the
74change only affects the sites.conf file, which is generated by the
75make-secnet-sites script; after you regenerate your sites.conf using
76version 0.1.10, everything should continue to work.
77
78Netlink devices now interact slightly differently with the 'site'
79code. When you invoke a netlink closure like 'tun' or 'userv-ipif',
80you get another closure back. You then invoke this closure (usually
81in the site definitions) to specify things like routes and options.
82The result of this invocation should be used as the 'link' option in
83site configurations.
84
85All this really means is that instead of site configurations looking
86like this:
87
88foo {
89 name "foo";
90 networks "a", "b", "c";
91 etc.
92};
93
94...they look like this:
95
96foo {
97 name "foo";
98 link netlink { routes "a", "b", "c"; };
99 etc.
100};
101
102This change was made to enable the 'site' code to be completely free
103of any knowledge of the contents of the packets it transmits. It
104should now be possible in the future to tunnel other protocols like
105IPv6, IPX, raw Ethernet frames, etc. without changing the 'site' code
106at all.
107
108Point-to-point netlink devices work slightly differently; when you
109apply the 'tun', 'userv-ipif', etc. closure and specify the
110ptp-address option, you must also specify the 'routes' option. The
111result of this invocation should be passed directly to the 'link'
112option of the site configuration. You can do things like this:
113
114sites site {
115 name "foo";
116 link tun {
117 networks "192.168.73.76/32";
118 local-address "192.168.73.76"; # IP address of interface
119 ptp-address "192.168.73.75"; # IP address of other end of link
120 routes "192.168.73.74/32";
121 mtu 1400;
122 buffer sysbuffer();
123 };
124 etc.
125};
126
127The route dump obtained by sending SIGUSR1 to secnet now includes
128packet counts.
129
130Point-to-point mode has now been tested.
131
132tun-old has now been tested, and the annoying 'untested' message has
133been removed. Thanks to SGT and JDA.
134
135secnet now closes its stdin, stdout and stderr just after
136backgrounding.
137
138Bugfix: specifying network "0.0.0.0/0" (or "default") now works
139correctly.
140
8dea8d37
SE
141* New in version 0.1.9
142
143The netlink code may now generate ICMP responses to ICMP messages that
144are not errors, eg. ICMP echo-request. This makes Windows NT
145traceroute output look a little less strange.
146
147configure.in and config.h.bot now define uint32_t etc. even on systems
148without stdint.h and inttypes.h (needed for Solaris 2.5.1)
149
150GNU getopt is included for systems that lack it.
151
152We check for LOG_AUTHPRIV before trying to use it in log.c (Solaris
1532.5.1 doesn't have it.)
154
155Portable snprintf.c from http://www.ijs.si/software/snprintf/ is
156included for systems that lack snprintf/vsnprintf.
157
158make-secnet-sites.py renamed to make-secnet-sites and now installed in
159$prefix/sbin/make-secnet-sites; ipaddr.py library installed in
160$prefix/share/secnet/ipaddr.py. make-secnet-sites searches
161/usr/local/share/secnet and /usr/share/secnet for ipaddr.py
162
c6f79b17
SE
163* New in version 0.1.8
164
165Netlink devices now support a 'point-to-point' mode. In this mode the
166netlink device does not require an IP address; instead, the IP address
167of the other end of the tunnel is specified using the 'ptp-address'
168option. Precisely one site must be configured to use the netlink
8dea8d37
SE
169device. (I haven't had a chance to test this because 0.1.8 turned into
170a 'quick' release to enable secnet to cope with the network problems
171affecting connections going via LINX on 2001-10-16.)
c6f79b17
SE
172
173The tunnel code in site.c now initiates a key setup if the
174reverse-transform function fails (wrong key, bad MAC, too much skew,
175etc.) - this should make secnet more reliable on dodgy links, which
176are much more common than links with active attackers... (an attacker
177can now force a new key setup by replaying an old packet, but apart
178from minor denial of service on slow links or machines this won't
8dea8d37 179achieve them much). This should eventually be made configurable.
c6f79b17
SE
180
181The sequence number skew detection code in transform.c now only
182complains about 'reverse skew' - replays of packets that are too
183old. 'Forward skew' (gaps in the sequence numbers of received packets)
184is now tolerated silently, to cope with large amounts of packet loss.