Import release 0.1.14
[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
ff05a229
SE
11Separation of device drivers from IP router code - driver produces a
12stream of packets (which has a tag indicating type and parameters).
13Router module can be connected to stream to multiplex it between
14different tunnels.
15
16Support for dynamic creation of streams/tunnels to cope with laptops,
17etc.
18
19See also file "TODO".
20
4f5e39ec 21* New in version 0.1.14
ff05a229 22
4f5e39ec
SE
23The --help and --version options now send their output to stdout.
24
25Bugfix: TUN flavour "BSD" no longer implies a BSD-style ifconfig and
26route command invocation. Instead "ioctl"-style is used, which should
27work on both BSD and linux-2.2 systems.
28
29If no "networks" parameter is specified for a netlink device then it
30is assumed to be 0.0.0.0/0 rather than the empty set. So, by default
31there is a default route from each netlink device to the host machine.
32The "networks" parameter can be used to implement a primitive
33firewall, restricting the destination addresses of packets received
34through tunnels; if a more complex firewall is required then implement
35it on the host.
ff05a229
SE
36
37* New in version 0.1.13
38
39site.c code cleaned up; no externally visible changes
40
41secnet now calls setsid() after becoming a daemon.
42
43secnet now supports TUN on Solaris 2.5 and above (and possibly other
44STREAMS-based systems as well).
45
46The TUN code now tries to auto-detect the type of "TUN" in use
47(BSD-style, Linux-style or STREAMS-style). If your configuration file
48specifies "tun-old" then it defaults to BSD-style; however, since
49"tun-old" will be removed in a future release, you should change your
50configuration file to specify "tun" and if there's a problem also
51specify the flavour in use.
52
53Example:
54netlink tun-old {
55 ...
56};
57should be rewritten as
58netlink tun {
59 flavour "bsd";
60 ...
61};
62
63The flavours currently defined are "bsd", "linux" and "streams".
64
65The TUN code can now be configured to configure interfaces and
66add/delete routes using one of several methods: invoking a
67"linux"-style ifconfig/route command, a "bsd"-style ifconfig/route
68command, "solaris-2.5"-style ifconfig/route command or calling ioctl()
69directly. These methods can be selected using the "ifconfig-type" and
70"route-type" options.
71
72Example:
73netlink tun {
74 ifconfig-type "ioctl";
75 route-type "ioctl";
76 ...
77};
78
79The ioctl-based method is now the default for Linux systems.
80
81Magic numbers used within secnet are now collected in the header file
82"magic.h".
83
84netlink now uses ICMP type=0 code=13 for 'administratively prohibited'
85instead of code 9. See RFC1812 section 5.2.7.1.
86
87The UDP comm module now supports a proxy server, "udpforward". This
88runs on a machine which is directly accessible by secnet and which can
89send packets to appropriate destinations. It's useful when the proxy
90machine doesn't support source- and destination-NAT. The proxy server
91is specified using the "proxy" key in the UDP module configuration;
92parameters are IP address (string) and port number.
93
94Bugfix: ipset_to_subnet_list() in ipaddr.c now believed to work in all
95cases, including 0.0.0.0/0
96
d3fe100d
SE
97* New in version 0.1.12
98
99IMPORTANT: fix calculation of 'now' in secnet.c; necessary for correct
100operation.
101
102(Only interesting for people building and modifying secnet by hand:
103the Makefile now works out most dependencies automatically.)
104
105The netlink code no longer produces an internal routing table sorted
106by netmask length. Instead, netlink instances have a 'priority'; the
107table of routes is sorted by priority. Devices like laptops that have
108tunnels that must sometimes 'mask' parts of other tunnels should be
109given higher priorities. If a priority is not specified it is assumed
110to be zero.
111
112Example usage:
113site laptop { ...
114 link netlink {
115 route "192.168.73.74/31";
116 priority 10;
117 };
118};
119
794f2398
SE
120* New in version 0.1.11
121
122Lists of IP addresses in the configuration file can now include
123exclusions as well as inclusions. For example, you can specify all
124the hosts on a subnet except one as follows:
125
126networks "192.168.73.0/24","!192.168.73.70";
127
128(If you were only allowed inclusions, you'd have to specify that like
129this:
130networks "192.168.73.71/32","192.168.73.68/31","192.168.73.64/30",
131 "192.168.73.72/29","192.168.73.80/28","192.168.73.96/27",
132 "192.168.73.0/26","192.168.73.128/25";
133)
134
135secnet now ensures that it invokes userv-ipif with a non-overlapping
136list of subnets.
137
138There is a new command-line option, --sites-key or -s, that enables
139the configuration file key that's checked to determine the list of
140active sites (default "sites") to be changed. This enables a single
141configuration file to contain multiple cofigurations conveniently.
142
143NAKs are now sent when packets arrive that are not understood. The
144tunnel code initiates a key setup if it sees a NAK. Future
145developments should include configuration options that control this.
146
147The tunnel code notifies its peer when secnet is terminating, so the
148peer can close the session.
149
150The netlink "exclude-remote-networks" option has now been replaced by
151a "remote-networks" option; instead of specifying networks that no
152site may access, you specify the set of networks that remote sites are
153allowed to access. A sensible example: "192.168.0.0/16",
154"172.16.0.0/12", "10.0.0.0/8", "!your-local-network"
469fd1d9
SE
155
156* New in version 0.1.10
157
158WARNING: THIS VERSION MAKES A CHANGE TO THE CONFIGURATION FILE FORMAT
159THAT IS NOT BACKWARD COMPATIBLE. However, in most configurations the
160change only affects the sites.conf file, which is generated by the
161make-secnet-sites script; after you regenerate your sites.conf using
162version 0.1.10, everything should continue to work.
163
164Netlink devices now interact slightly differently with the 'site'
165code. When you invoke a netlink closure like 'tun' or 'userv-ipif',
166you get another closure back. You then invoke this closure (usually
167in the site definitions) to specify things like routes and options.
168The result of this invocation should be used as the 'link' option in
169site configurations.
170
171All this really means is that instead of site configurations looking
172like this:
173
174foo {
175 name "foo";
176 networks "a", "b", "c";
177 etc.
178};
179
180...they look like this:
181
182foo {
183 name "foo";
184 link netlink { routes "a", "b", "c"; };
185 etc.
186};
187
188This change was made to enable the 'site' code to be completely free
189of any knowledge of the contents of the packets it transmits. It
190should now be possible in the future to tunnel other protocols like
191IPv6, IPX, raw Ethernet frames, etc. without changing the 'site' code
192at all.
193
194Point-to-point netlink devices work slightly differently; when you
195apply the 'tun', 'userv-ipif', etc. closure and specify the
196ptp-address option, you must also specify the 'routes' option. The
197result of this invocation should be passed directly to the 'link'
198option of the site configuration. You can do things like this:
199
200sites site {
201 name "foo";
202 link tun {
203 networks "192.168.73.76/32";
204 local-address "192.168.73.76"; # IP address of interface
205 ptp-address "192.168.73.75"; # IP address of other end of link
206 routes "192.168.73.74/32";
207 mtu 1400;
208 buffer sysbuffer();
209 };
210 etc.
211};
212
213The route dump obtained by sending SIGUSR1 to secnet now includes
214packet counts.
215
216Point-to-point mode has now been tested.
217
218tun-old has now been tested, and the annoying 'untested' message has
219been removed. Thanks to SGT and JDA.
220
221secnet now closes its stdin, stdout and stderr just after
222backgrounding.
223
224Bugfix: specifying network "0.0.0.0/0" (or "default") now works
225correctly.
226
8dea8d37
SE
227* New in version 0.1.9
228
229The netlink code may now generate ICMP responses to ICMP messages that
230are not errors, eg. ICMP echo-request. This makes Windows NT
231traceroute output look a little less strange.
232
233configure.in and config.h.bot now define uint32_t etc. even on systems
234without stdint.h and inttypes.h (needed for Solaris 2.5.1)
235
236GNU getopt is included for systems that lack it.
237
238We check for LOG_AUTHPRIV before trying to use it in log.c (Solaris
2392.5.1 doesn't have it.)
240
241Portable snprintf.c from http://www.ijs.si/software/snprintf/ is
242included for systems that lack snprintf/vsnprintf.
243
244make-secnet-sites.py renamed to make-secnet-sites and now installed in
245$prefix/sbin/make-secnet-sites; ipaddr.py library installed in
246$prefix/share/secnet/ipaddr.py. make-secnet-sites searches
247/usr/local/share/secnet and /usr/share/secnet for ipaddr.py
248
c6f79b17
SE
249* New in version 0.1.8
250
251Netlink devices now support a 'point-to-point' mode. In this mode the
252netlink device does not require an IP address; instead, the IP address
253of the other end of the tunnel is specified using the 'ptp-address'
254option. Precisely one site must be configured to use the netlink
8dea8d37
SE
255device. (I haven't had a chance to test this because 0.1.8 turned into
256a 'quick' release to enable secnet to cope with the network problems
257affecting connections going via LINX on 2001-10-16.)
c6f79b17
SE
258
259The tunnel code in site.c now initiates a key setup if the
260reverse-transform function fails (wrong key, bad MAC, too much skew,
261etc.) - this should make secnet more reliable on dodgy links, which
262are much more common than links with active attackers... (an attacker
263can now force a new key setup by replaying an old packet, but apart
264from minor denial of service on slow links or machines this won't
8dea8d37 265achieve them much). This should eventually be made configurable.
c6f79b17
SE
266
267The sequence number skew detection code in transform.c now only
268complains about 'reverse skew' - replays of packets that are too
269old. 'Forward skew' (gaps in the sequence numbers of received packets)
270is now tolerated silently, to cope with large amounts of packet loss.