HISTORY revision 1.1.1.1 1 #
2 # NOTE: Quite a few patches and suggestions come from other sources, to whom
3 # I'm greatly indebted, even if no names are mentioned.
4 #
5 # Thanks to the Coombs Computing Unit at the ANU for their continued support
6 # in providing a very available location for the IP Filter home page and
7 # distribution center.
8 #
9 # Thanks also to all those who have contributed patches and other code,
10 # and especially those who have found the time to port IP Filter to new
11 # platforms.
12 #
13 5.1 - RELEASED - 9 May 2010
14
15 * See WhatsNew50.txt
16
17 4.1 - RELEASED - 12 February 2004
18
19 4.0-BETA1 20 August 2003
20
21 support 0/32 and 0/0 on the RHS in redirect rules
22
23 where LHS and RHS netmasks are the same size for redirect, do 1:1 mapping
24 for bimap rules.
25
26 allow NAT rule to match 'all' interfaces with * as interface name
27
28 do mapping of ICMP sequence id#'s in pings
29
30 allow default age for NAT entries to be set per NAT rule
31
32 provide round robin selection of destination addresses for redirect
33
34 ipmon can load a configuration file with instructions on actions
35 to take when a matching log entry is received
36
37 now requires pfil to work on Solaris & HP-UX
38
39 supports mapping outbound connections to a specific address/port
40
41 support toggling of logging per ipfilter 'device'
42
43 use queues to expire data rather than lists
44
45 add MSN RPC proxy
46
47 add IRC proxy
48
49 support rules with dynamic ip addresses
50
51 add ability to define a pool of addresses & networks which can then
52 be placed in a single rule
53
54 support passing entire packet back to user program for authentication
55
56 support master/slave for state information sharing
57
58 reorganise generic code into a lib directory and make libipf.a
59
60 user programs enforce version matching with the kernel
61
62 supports window scaling if seen at TCP session setup
63
64 generates C code from filter rules to compile in or load as native
65 machine code.
66
67 supports loading rules comprised of BPF bytecode statements
68
69 HP-UX 11 port completed
70
71 and packets-per-second filtering
72
73 add numerical tags to rules for filtering and display in ipmon output
74
75 3.4.4 23/05/2000 - Released
76
77 don't add TCP state if it is an RST packet and (attempt) to send out
78 RST/ICMP packets in a manner that bypasses IP Filter.
79
80 add patch to work with 4.0_STABLE delayed checksums
81
82 3.4.3 20/05/2000 - Released
83
84 fix ipmon -F
85
86 don't truncate IPv6 packets on Solaris
87
88 fix keep state for ICMP ECHO
89
90 add some NAT stats and use def_nat_age rather than DEF_NAT_AGE
91
92 don't make ftp proxy drop packets
93
94 use MCLISREFERENCED() in tandem with M_EXT to check if IP fields need to be
95 swapped back.
96
97 fix up RST generation for non-Solaris
98
99 get "short" flag right for IPv6
100
101 3.4.2 - 10/5/2000 - Released
102
103 Fix bug in dealing with "hlen == 1 and opt > 1" - Itojun
104
105 ignore previous NAT mappings for 0/0 and 0/32 rules
106
107 bring in a completely new ftp proxy
108
109 allow NAT to cause packets to be dropped.
110
111 add NetBSD callout support for 1.4-current
112
113 3.4.1 - 30/4/2000 - Released
114
115 add ratoui() and fix parsing of group numbers to allow 0 - UINT_MAX
116
117 don't include opt_inet6.h for FreeBSD if KLD_MODULE is defined
118
119 Solaris must use copyin() for all types of ioctl() args
120
121 fix up screen/tty when leaving "top mode" of ipfstat
122
123 linked list for maptable not setup correctly in nat_hostmap()
124
125 check for maptable rather than nat_table[1] to see if malloc for maptable
126 succeeded in nat_init
127
128 fix handling of map NAT rules with "from/to" host specs
129
130 fix printout out of source address when using "from/to" with map rules
131
132 convert ip_len back to network byte order, not plen, for solaris as ip_len
133 may have been changed by NAT and plen won't reflect this
134
135 3.4 - 27/4/2000 - Released
136
137 source address spoofing can be turned on (fr_chksrc) without using
138 filter rules
139
140 group numbers are now 32bits in size, up from 16bits
141
142 IPv6 filtering available
143
144 add frank volf's state-top patches
145
146 add load splitting and round-robin attribute to redirect rules
147
148 FreeBSD-4.0 support (including KLD)
149
150 add top-style operation mode for ipfstat (-t)
151
152 add save/restore of IP Filter state/NAT information (ipfs)
153
154 further ftp proxy security checks
155
156 support for adding and removing proxies at runtime
157
158 3.3.13 26/04/2000 - Released
159
160 Fix parsing of "range" with "portmap"
161
162 Relax checking of ftp replies, slightly.
163
164 Fix NAT timeouts for ICMP packets
165
166 SunOS4 patches for ICMP redirects from Jurgen Keil (jk@tools.de)
167
168 3.3.12 16/03/2000 - Released
169
170 tighten up ftp proxy behaviour. sigh. yuck. hate.
171
172 fix bug in range check for NAT where the last IP# was not used.
173
174 fix problem with icmp codes > 127 in filter rules caused bad things to
175 happen and in particular, where #18 caused the rule to be printed
176 erroneously.
177
178 fix bug with the spl level not being reset when returning EIO from
179 iplioctl due to ipfilter not being initialized yet.
180
181 3.3.11 04/03/2000 - Released
182
183 make "or-block" work with lines that start with "log"
184
185 fix up parsing and printing of rules with syslog levels in them
186
187 fix from Cy Schubert for calling of apr_fini only if non-null
188
189
190 3.3.10 24/02/2000 - Released
191
192 * fix back from guido for state tracking interfaces
193
194 * update for NetBSD pfil interface changes
195
196 * if attaching fails and we can abort, then cleanup when doing so.
197
198 julian@computer.org:
199 * solaris.c (fr_precheck): After calling freemsg on mt, set it point to *mp.
200 * ipf.c (packetlogon): use flag to store the return value from get_flags.
201 * ipmon.c (init_tabs): General cleanup so we do not have to cast
202 an int s->s_port to u_int port and try to check if the u_int port
203 is less than zero.
204
205 3.3.9 15/02/2000 - Released
206
207 fix scheduling of bad locking in fr_addstate() used when we attach onto
208 a filter rule.
209
210 fix up ip_statesync() with storing interface names in ipstate_t
211
212 fix fr_running for LKM's - Eugene Polovnikov
213
214 junk using pullupmsg() for solaris - it's next to useless for what we
215 need to do here anyway - and implement what we require.
216
217 don't call fr_delstate() in fr_checkstate(), when compiled for a user
218 program, early but when we're finished with it (got fr & pass)
219
220 ipnat(5) fix from Guido
221
222 on solaris2, copy message and use that with filter if there is another
223 copy if it being used (db_ref > 1). bad for performance, but better
224 than causing a crash.
225
226 patch for solaris8-fcs compile from Casper Dik
227
228 3.3.8 01/02/2000 - Released
229
230 fix state handling of SYN packets.
231
232 add parsing recognition of extra icmp types/codes and fix handling of
233 icmp time stamps and mask requests - Frank volf
234
235 3.3.7 25/01/2000 - Released
236
237 sync on state information as well as NAT information when required
238
239 record nat protocol in all nat log records
240
241 don't reuse the IP# from an active NAT session if the IP# in the rule
242 has changed dynamically.
243
244 lookup the protocol for NAT log information in ipmon and pass that to
245 portname.
246
247 fix the bug with changing the outbound interface of a packet where it
248 would lead to a panic.
249
250 use fr_running instead of ipl_inited. (sysctl name change on freebsd)
251
252 return EIO if someone attempts an ioctl on state/nat if ipfilter is not
253 enabled.
254
255 fix rule insertion bug
256
257 make state flushing clean anything that's not fully established (4/4)
258
259 call fr_state_flush() after we've released ipf_state so we don't generate
260 a recursive mutex acquisition panic
261
262 fix parsing of icmp code after return-icmp/return-icmp-as-dest and add
263 some patches to enhance parsing strength
264
265 3.3.6 28/12/1999 - Released
266
267 add in missing rwlock release in fr_checkicmpmatchingstate() and fix check
268 for ICMP_ECHO to only be for packet, not state entry which we don't have yet.
269
270 handle SIOCIPFFB in nat_ioctl() and fr_state_ioctl()
271
272 fix size of friostat for SunOS4
273
274 fix bug in running off the end of a buffer in real audio proxy
275
276 3.3.5 11/12/1999 - Released
277
278 fix parsing of "log level" and printing it back out too
279
280 <net/if_types.h> is only present on Solaris2.6/7/8
281
282 use send_icmp_err rather than icmp_error to send back a frag-needed error
283 when doing PMTU
284
285 do not use -b with add_drv on Solaris unless $BASEDIR is set.
286
287 fix problem where source address in icmp replies is reversed
288
289 fix yet another problem with real audio.
290
291 3.3.4 4/12/1999 - Released
292
293 fix up the real audio proxy to properly setup state information and NAT
294 entries, thanks to Laine Stump for testing/advice/fixes.
295
296 fix ipfr_fastroute to set dst->sin_addr (Sean Farley - appears to prevent
297 FreeBSD 3.3 from panic'ing) as this had been removed in prior hacks to this
298 routine.
299
300 fix kinstall for BSDI
301
302 support ICMP errors being allowed through for ICMP packets going out with
303 keep state enabled
304
305 support hardware checksumming (gigabit ethernet cards) on Solaris thanks to
306 Tel.Net Media for providing hardware for testing.
307
308 patched from Frank Volf for ipmon (ICMP & fragmented packets) and allowing
309 ICMP responses to ICMP packets in the keep state table.
310
311 add in patches for hardware checksumming under solaris
312
313 Solaris install scripts now use $BASEDIR as appropriate.
314
315 add Solaris8 support
316
317 fix "ipf -y" on solaris so that it rescans rules also for changes in
318 interface pointers
319
320 let ipmon become a daemon with -D if it is using syslog
321
322 fix parsing of return-icmp-as-dest(foo)
323
324 add reference to ipfstat -g to ipfstat.8
325
326 ipf_mutex needs to be declared for irix in ip_fil.c
327
328 3.3.3 22/10/1999 - Released
329
330 add -g command line option to ipfstat to show groups still define.
331
332 fix problem with fragment table not recording rule pointer when called
333 from state functions (fin_fr not set).
334
335 fixup fastroute problems with keep state rules.
336
337 load rules into inactive set first, so we don't disable things like NIS
338 lookups half way through processing - found by Kevin Littlejohn
339
340 fix handling of unaligned ip pointer for solaris
341
342 patch for fr_newauth from Rudi Sluijtman
343
344 fixed htons() bug in fr_tcpsum() where ip_p wasn't cast to u_short
345
346 3.3.2 23/09/1999 - Released
347
348 patches from Scott Presnell to fix rcmd proxy
349
350 patches from Greg to fix Solaris detachment of interfaces
351
352 add openbsd compatibility fixes
353
354 fix free'ing already freed memory in ipfr_slowtimer()
355
356 fix for deferencing invalid memory in cleaning up after a device disappears
357
358 3.3.1 14/8/1999 - Released
359
360 remove include file sys/user.h for irix
361
362 prevent people from running buildsunos directly
363
364 fix up some problems with the saving of rule pointers so that NAT saves
365 that information in case it should need to call fr_addstate() from a proxy.
366
367 fix up scanning for the end of FTP messages
368
369 don't remove /etc/opt/ipf in postremove
370
371 attempt to prevent people running buildsolaris script without doing a
372 "make solaris"
373
374 fix timeout losing on freebsd3
375
376 3.3 7/8/1999 - Released
377
378 NAT: information (rules, mappings) are stored in hash tables; setup some
379 basic NAT regression testing.
380
381 display version name of installed kernel code when initializing.
382
383 add -V command line option to ipf, showing version (program and kernel
384 module) as well as the run-status of the kernel code.
385
386 fix problem with "log" rules actually affecting result of filtering.
387
388 automatically use SUNWspro if available and on a 64bit Solaris system for
389 compiling.
390
391 add kernel proxies for rcmd(3) and RealAudio (PNA)
392
393 use timeout/untimeout on SunOS4/BSD platforms too rather than hijacking
394 ip_slowtimo
395
396 fix IP headers generated through parsing of text information
397
398 fix NAT rules to be in the correct order again.
399
400 make keep-state work with to/fastroute keywords and enforce usage of those
401 interfaces.
402
403 update keep-state code with new algorithm from Guido
404
405 add FreeBSD-3 support
406
407 add return-icmp-as-dest option to retrun an ICMP packet using the original
408 destination as the source rather than a local IP address
409
410 add "level [facility.]<priority>" option to filter language
411
412 add changes from Guido to state code.
413
414 add code to return EPERM if the device is opened for writing and we're
415 in securelevel 2 or greater.
416
417 authentication code patches from Guido
418
419 fix real audio proxy
420
421 fix ipmon rule printing of interfaces and add IN/OUT to the end of ipmon
422 log output.
423
424 fix bimap rules with hash tables
425
426 update addresses used in NAT mappings for 0/32 rules for any protocol but TCP
427 if it changes on the interface - check every ip_natexpire()
428
429 add redirect regression test
430
431 count buckets used in the state hash table.
432
433 fix sending of RST's with return-rst to use the ack number provided in
434 the packet being replied to in addition to the sequence number.
435
436 fix to compile as a 64bit application on solaris7-64bit
437
438 add NAT IP mapping to ranges of IP addresses that aren't CIDR specified
439
440 fix calculation of in_space parameter for NAT
441
442 fix `wrapping' when incrementing the next ip address for use in NAT
443
444 fix free'ing of kernel memory in ip_natunload on solaris
445
446 fix -l/-U command line options from interfering with each other
447
448 fix fastroute under solaris2 and cleanup compilation for solaris7
449
450 add install scripts and compile cleanly on BSD/OS 4.0
451
452 safely open files in /tmp for writing device output when testing.
453
454 fix uninitialized pointer bug in NAT
455
456 fix SIOCZRLST (zero list rule stats) bug with groups
457
458 change some usage of u_short to u_int in function calling
459
460 fix compilation for Solaris7 (SUNWspro)
461
462 change solaris makefiles to build for either sparc or i386 rather than
463 per-cpu (sun4u, etc).
464
465 fixed bug in ipllog
466
467 add patches from George Michaelson for FreeBSD 3.0
468
469 add patch from Guido to provide ICMP checking for known state in the same
470 manner as is done for NAT.
471
472 enable FTP PASV proxying and enable wildcarding in NAT/state code for ports
473 for better PORT/PASV support with FTP.
474
475 bring into main tree static nat features: map-block and "auto" portmapping.
476
477 add in source host filtering for redirects (alan jones)
478
479 3.2.10 22/11/98 - Released
480
481 3.2.10beta9 17/11/98 - Released
482
483 fix fr_tcpsum problems in handling mbufs with an odd number of bytes
484 and/or split across an mbuf boundary
485
486 fix NAT list entry comparisons and allow multiple entries for the same
487 proxy (but on different ports).
488
489 don't create duplicate NAT entries for repeated PORT commands.
490
491 3.2.10beta8 14/11/98 - Released
492
493 always exit an rwlock before expecting to enter it again on solaris
494
495 fix loop in nat_new for pre-existing nat
496
497 don't setup state for an ftp connection if creating nat fails.
498
499 3.2.10beta7 05/11/98 - Released
500
501 set fake window in ipft_tx.c to ensure code passes tests.
502
503 cleaned up/enhanced ipnat -l/ipnat -lv output
504
505 fixed NAT handling of non-TCP/UDP packets, esp. for ICMP errors returned.
506
507 Solaris recusive mutex on icmp-error/tcp-reset - requires rwlock's rather
508 than mutexes.
509
510 3.2.10beta6 03/11/98 - Released
511
512 fix mixed use of krwlock_t and kmutex_t on Solaris2
513
514 fix FTP proxy back up, splitting pasv code out of port code.
515
516 3.2.10beta5 02/11/98 - Released
517
518 fixed port translation in ICMP reply handling
519
520 3.2.10beta4 01/11/98 - Released
521
522 increase useful statistic collection on solaris
523
524 filter DL_UNITDATA_REQ as well as DL_UNITDATA_IND on solaris
525
526 disable PASV reply translation for now
527
528 fail with an error if we try to load a NAT rule with a non-existant
529 proxy name - Guido
530
531 fix portmap usage with 0/0 and 0/32 map rules
532
533 remove ap_unload/ap_expire - automatically done when NAT is cleaned up
534
535 print "STATE:CLOSED" from ipmon if the connection progresses past established
536 rather than "STATE:EXPIRED"
537
538 3.2.10beta3 26/10/98 - Released
539
540 fixed traceroute/nat problem
541
542 rewrote nat/proxy interface
543
544 ipnat now lists associated proxy sessions for each NAT where applicable
545
546 3.2.10beta2 13/10/98 - Released
547
548 use KRWLOCK_T in place of krwlock_t for solaris as well as irix
549
550 disable use of read-write lock acquisition by default
551
552 add in mb_t for linux, non-kernel
553
554 some changes to progress compilation on linux with glibc
555
556 change PASV as well as PORT when passed through kernel ftp proxy.
557
558 don't allow window to become 0 in tcp state code
559
560 make ipmon compile cleaner
561
562 irix patches
563
564 3.2.10beta 11/09/98 - Released
565
566 stop fr_tcpsum() thinking it has run out of data when it hasn't.
567
568 stop solaris panics due to fin_dp being something wild.
569
570 revisit usage of ATOMIC_*()
571
572 log closing state of TCP connection in "keep state"
573
574 fix fake-arp table code for ipsend.
575
576 ipmon now writes pid to a file.
577
578 fix "ipmon -a" to actually activate all logging devices.
579
580 add patches for BSDOS4.
581
582 perl scripts for log analysis donated.
583
584 3.2.9 22/06/98 - Released
585
586 fix byte order for ICMP packets generated on Solaris
587
588 fix some locking problems.
589
590 fix malloc bug in NAT (introduced in 3.2.8).
591
592 patch from guido for state connections that get fragmented
593
594 3.2.8 08/06/98 - Released
595
596 use readers/writers locks in Solaris2 in place of some mutexes.
597
598 Solaris2 installation enhancements - Martin Forssen (maf@carlstedt.se)
599
600 3.2.7 24/05/98 - Released
601
602 u_long -> u_32_t conversions
603
604 patches from Bernd Ernesti for NetBSD
605
606 fixup ipmon to actually handle HUP's.
607
608 Linux fixes from Michael H. Warfield (mhw (at] wittsend.com)
609
610 update for keep state patch (not security related) - Guido
611
612 dumphex() uses stdout rather than log
613
614 3.2.6 18/05/98 - Released
615
616 fix potential security loop hole in keep state code.
617
618 update examples.
619
620 3.2.5 09/05/98 - Released
621
622 BSD/OS 3.1 .o files added for the kernel.
623
624 fix sequence # skew vs window size check.
625
626 fix minimum ICMP header size check.
627
628 remove references to Cybersource.
629
630 fix my email address.
631
632 remove ntohl in ipnat - Thomas Tornblom
633
634 3.2.4 09/04/98 - Released
635
636 add script to make devices for /dev on BSD boxes
637
638 fixup building into the kernel for FreeBSD 2.2.5
639
640 add -D command line option to ipmon to make it a daemon and SIGHUP causes
641 it to close and reopen the logfile
642
643 fixup make clean and make package for SunOS5 - Marc Boucher
644
645 postinstall keeps adding "minor=ipf ipl" - George Ross <gdmr (at] dcs.ed.ac.uk>
646
647 protected by IP Filter gif - Sergey Solyanik <solik (at] atom.ru>
648
649 3.2.3 10/11/97 - Released
650
651 fix some iplang bugs
652
653 fix tcp checksum data overrun, sgi #define changes,
654 avoid infinite loop when nat'ing to single IP# - Marc Boucher
655
656 fixup DEVFS usage for FreeBSD
657
658 fix sunos5 "make clean" cleaning up too much
659
660 3.2.2 28/11/97 - Released
661
662 change packet matching to return actual error, if bad packet, to facilitate
663 ECONNRESET for TCP.
664
665 allow ip:netmask in grammar too now - Guido
666
667 assume IRIX has u_int32_t in sys/types.h (needed for R10000)
668
669 rewrite parts of command line options for ipmon
670
671 fix TCP urgent packet & offset testing and add LAND attack test for iptest
672
673 fix grammar error in yacc grammar for iplang
674
675 redirect (rdr) destination port bytes-wapped when it shouldn't be.
676
677 general: fr_check now returns error code, such as EHOSTUNREACH or
678 ECONNRESET (attempt to make ECONNRESET work for locally outbound
679 packets).
680
681 linux: enable return-rst, need to filter tcp retransmits which are sent
682 separately from normal packets
683
684 memory leak plugged in ip_proxy.c
685
686 BSDI compatibility patches from Guido
687
688 tcp checksum fix - Marc Boucher
689
690 recursive mutex and ioctl param fix - Marc Boucher
691
692 3.2.1 12/11/97 - Released
693
694 port to BSD/OS 3.0
695
696 port to Linux 2.0.31
697
698 patches to make "map a/m -> 0/0" work with ftp proxying properly - Marc Boucher
699
700 add "ipf -F s" and "ipf -F S" to flush state table entries.
701
702 announce if logging is on or off when ip filter initializes.
703
704 "ipf -F a" doesn't flush groups properly for Solaris.
705
706 3.2 30/10/97 - Released
707
708 ipnat doesn't successfully remove proxy mappings with "-rf" -
709 Alexander Romanyu
710
711 use K&R C function style for solaris kernel code
712
713 use m_adj() to decrease packet size in ftp proxy
714
715 use mbufchainlen rather than msgdsize,
716 IRIX update - Marc Boucher
717
718 fix NetBSD modunload bug (pfil_add_hook done twice)
719
720 patches for OpenBSD 2.1 - Craig Bevins <craigb (at] bitcom.net.au>
721
722 3.2beta10 24/10/97 - Released
723
724 fix fragment table entries allocated for NAT.
725
726 fix tcp checksum calculations over mbuf/mblk boundaries
727
728 fix panic for blen < 0 in ftp kernel proxy - marc boucher
729
730 fix flushing of rules which have been grouped.
731
732 3.2beta9 20/10/97 - Released
733
734 some nit picking on solaris2 with SUNWspro - Michael Lyle <mrl (at] rpnet.net>
735
736 ftp kernel proxy patches from Marc Boucher
737
738 3.2beta8 13/10/97 - Released
739
740 add support for passing ICMP errors back through NAT.
741
742 IRIX port update - Marc Boucher
743
744 calculate correct MIN size of packet to log for UDP - Marc Boucher
745
746 need htons(ETHERTYPE_x) on little endian BSD boxes - Dave Huang
747
748 copyright header fixups
749
750 3.2beta7 23/09/97 - Released
751
752 fickup problems introduced by prior merges & changes.
753
754 3.2beta6 23/09/97 - Released
755
756 patch for spin-reading race condition - Marc Boucher.
757
758 IRIX port by Marc Boucher.
759
760 compatibility updates for Linux to ipsend
761
762 3.2beta5 13/09/97 - Released
763
764 patches from Bernd Ernesti for NetBSD integration (mostly prototyping and
765 compiler warning things)
766
767 ipf -y will resync IP#'s allocated with 0/32 in NAT to match interface if it
768 changes.
769
770 update manual pages and other documentation updates.
771
772 3.2beta4 27/8/97 - Released
773
774 enable setting IP and TCP options for iplang/
775
776 Solaris2 patches from Marc Boucher.
777
778 add groups for filter rules.
779
780 3.2beta3 21/8/97 - Released
781
782 patches for Solaris2 (interface panic solution ?): fix FIONREAD and
783 replacing q_qinfo points - Marc Boucher <marc@CAM.ORG>
784
785 change ipsend/* and ipsd/* copyright notices to be the same as ip filter's
786
787 patch for SYN-ACK skew testing fix from Eric V. Smith <EricSmith (at] windsor.com>
788
789 3.2beta2 6/8/97 - Released
790
791 make it load on Solaris 2.3
792
793 rewrote logging to remove solaris errors, introduced checking to see if the
794 same packet is logged successively.
795
796 fix filter cache to work when there are no rules loaded.
797
798 add "raw" option to ipresend to send entire ethernet frames.
799
800 nat list corruption bug - NetBSD - Klaus Klein
801
802 3.2beta1 5/7/97 - Released
803
804 patches from Jason Thorpe fixing: UNSIGNED_CHAR lossage, off_t being 64bits
805 lossage, and other NetBSD bits.
806
807 NetBSD 1.2G update.
808
809 fixup fwtk patches and add protocol field for SIOCGNATL.
810
811 rdr bugs reported by Alexander Romanyu (alexr (at] aix.krid.crimea.ua), with
812 fixes:
813 * rdr matched all packets of a given protocol (ignored ports).
814 * severe bug in nat_delete which caused system crash/freeze.
815
816 change Makefile so that CC isn't passed on for FreeBSD/NetBSD (will use
817 the default CC - cc, not gcc)
818
819 3.2alpha9 16/6/97 - Released
820
821 added "skip" keyword.
822
823 implement preauthentication of packets, as outlined by Guido.
824
825 Make it compile as cleanly as possible with -Wall & general code cleanup
826
827 getopt returns int, not char. Bernd Ernesti
828
829 3.2alpha8 13/6/97 - Released
830
831 code added to support "auth" rules which require a user program to allow them
832 through. First revision and much of the code came from Guido.
833
834 hex output from ipmon doesn't goto syslog when recovering from out of sync
835 error. Luke Mewburn (lukem (at] connect.com.au)
836
837 fix solaris2.6 lookup of destination ire's.
838
839 ipnat doesn't throw away unused bits (after masking), causing it to
840 behave incorrectly. Carson Gaspar
841
842 NAT code doesn't include inteface name when matching - Alexey Mavrin
843 <lha@elco.spb.ru>
844
845 replace old SunOS tcpip.h with new tcpip.h (from 4.4BSD) - Jason Thorpe.
846
847 update install procedures to include ip_proxy.c
848
849 mask out unused bits in NAT/RDR rules.
850
851 use a generic type (u_32_t) for 32bit variables, rather than rely on
852 u_long being such - Jason Thorpe.
853
854 create a local "netinet" directory and include from ~netinet/*" rather than
855 just "*" to make keeping the code working on ports easier.
856
857 add an m_copydata and m_copyback for SunOS4 (based on 4.4BSD-Lite versions)
858
859 documentation updates.
860
861 NetBSD update from Jason Thorpe <thorpej (at] netbsd.org>
862
863 allow RST's through with a matching SEQ # and 0 ACK. Guido Van Rooij
864
865 ipmon uses excessive amounts of CPU on Solaris2 - Reinhard Bertram
866 <Reinhard.Bertram (at] KOM.th-darmstadt.de>
867
868 3.2alpha7 25/5/97 - Released
869
870 add strlen for pre-2.2 kernels - Doug Kite <dkite (at] websgi.icomnet.com>
871
872 setup bits and pieces for compiling into a FreeBSD-2.2 kernel.
873
874 split up "bsd" targets. Now a separate netbsd/freebsd/bsd target.
875 mln_ipl.c has been split up into itself and mlf_ipl.c (for freebsd).
876
877 fix (negative) host matching in filtering.
878
879 add sysctl interface for some variables when compiled into FreeBSD-2.2 kernels
880 or later.
881
882 make all the candidates for kernel compiling include "netinet/..." and build
883 a subdirectory "netinet" when compiling and symlink all .h files into this.
884
885 add install make target to Makefile.ipsend
886
887 3.2alpha6 8/5/97 - Released
888
889 Add "!" (not) to hostname/ip matching.
890
891 Automatically add packet info to the fragment cache if it is a fragment
892 and we're translating addreses for.
893
894 Automatically add packet info to the fragment cache if it is a fragment
895 and we're "keeping state" for the packet.
896
897 Solaris2 patches - Anthony Baxter (arb (at] connect.com.au)
898
899 change install procedure for FreeBSD 2.2 to allow building to a kernel
900 which is different to the running kernel.
901
902 add FIONREAD for Solaris2!
903
904 when expiring NAT table entries, if we would set a time to fr_tcpclosed
905 (which is 1), make it fr_tcplaskack(20) so that the state tables have a
906 chance to clear up.
907
908 3.2alpha5
909
910 add proxying skeleton support and sample ftp transparent proxy code.
911
912 add printfs at startup to tell user what is happening.
913
914 add packets & bytes for EXPIRE NAT log records.
915
916 fix the "install-bsd" target in the root Makefile. Chris Williams
917 <psion (at] mv.mv.com>
918
919 Fixes for FreeBSD 2.2 (and later revs) to prevent panics. Julian Assange.
920
921 3.2alpha4 2/4/97 - Released
922
923 Some compiler warnings cleaned up.
924
925 FreeBSD-2.2 patches for LKM completed.
926
927 3.2alpha3 31/3/97 - Released
928
929 ipmon changes: -N for reading NAT logfile, -S for reading state logfile.
930 -a for reading all. -n now toggles hostname resolution.
931
932 Add logging of new state entries and expiration of old state entries.
933 count log successes and failures.
934
935 Add logging of new NAT entries and expiration of old NAT entries.
936 count log successes and failures.
937
938 Use u_quad_t for records of bytes & packets where kept
939 (IP Accounting: fr_hits, fr_bytes; IP state: is_pkts, is_bytes).
940
941 Fixup use of CPU and DCPU in Makefiles.
942
943 Fix broken 0/32 NAT mapping. Carl Makin <cmakin (at] nla.gov.au>
944
945 3.2alpha2
946
947 Implement mapping to 0/32 as being an alias for automatically using the
948 interface's first IP address.
949
950 Implement separate minor devices for both NAT and IP state code.
951
952 Fully prototype all functions.
953
954 Fix Makefile problem due to attempt to fix Sun compiling problems.
955
956 3.1.10 23/3/97 - Released
957
958 ipfstat -a requires a -i or -o command line option too. Print an error
959 when not present rather than attempt to do something.
960
961 patch updates for SunOS4 for kernel compiling.
962 patch for ipmon -s (flush's syslog file which isn't good). Andrew J. Schorr
963 <schorr (at] ead.dsa.com>
964
965 too many people hit their heads hard when compiling code into the kernel
966 that doesn't let any packets through. (fil.c - IPF_NOMATCH)
967
968 icmp-type parsing doesn't return any errors when it isn't constructed
969 correctly. Neil Readwin
970
971 Using "-conf" with modload on SunOS4 doesn't work.
972 Timothy Demarest <demarest (at] arraycomm.com>
973
974 Need to define ARCH in makefile for SunOS4 building. "make sunos4"
975 in INSTALL.SunOS is incorrect. James R Grinter <jrg (at] blodwen.demon.co.uk>
976 [all SunOS targets now run buildsunos]
977
978 NAT lookups are still incorrect, matching non-TCP/UDP with TCP/UDP
979 information. ArkanoiD <ark (at] paranoid.convey.ru>
980
981 Need to check for __FreeBSD_version being 199511 rather than 199607
982 in mln_ipl.c. Eric Feillant <Eric.Feillant (at] EUnet.fr>
983
984 3.1.9 8/3/97 - Released
985
986 fixed incorrect lookup of active NAT entries.
987
988 patch for ip_deq() wrong for pre 2.1.6 FreeBSD.
989 fyeung (at] fyeung8.netific.com (Francis Yeung)
990
991 check for out with return-rst/return-icmp at wrong place - Erkki Ritoniemi
992 (erkki (at] vlsi.fi)
993
994 text_readip returns the interface pointer pointing to text on stack -
995 Neil Readwin
996
997 fix from Pradeep Krishnan for printout rules "with not opt sec".
998
999 3.1.8 18/2/97 - Released
1000
1001 Diffs for ip_output.c and ip_input.c updated to fix bug with fastroute and
1002 compiling warnings about reuse of m0.
1003
1004 prevent use of return-rst and return-icmp with rules blocking packets going
1005 out, preventing panics in certain situations.
1006
1007 loop forms in frag cache table - Yury Pshenychny <yura (at] rd.zgik.zaporizhzhe.ua>
1008
1009 should use SPLNET/SPLX around expire routines in NAT/frag/state code.
1010
1011 redeclared malloc in 44arp.c -
1012
1013 3.1.7 8/2/97 - Released
1014
1015 Macros used for ntohs/htons supplied with gcc don't always work very well
1016 when the assignment is the same variable being converted.
1017
1018 Filter matching doesn't not match rule which checks tcp flags on packets
1019 which are fragments - David Wilson
1020
1021 3.1.7beta 30/1/97 - Released
1022
1023 Fix up NAT bugs introduced in last major change (now tested), including
1024 nat_delete(), nat_lookupredir(), checksum changes, etc.
1025
1026 3.1.7alpha 30/1/97 - Released
1027
1028 Many changes to NAT code, including contributions from Laurent Joncheray
1029 <lpj (at] ans.net>
1030
1031 Use "NO_SLEEP" when allocating memory under SunOS.
1032
1033 Make kernel printf's nicer for BSD/SunOS4
1034
1035 Always do a checksum for packets being filtered going out and being
1036 processed by fastroute.
1037
1038 Leave kernel to play with cdevsw on *BSD systems with LKM's.
1039
1040 ipnat.1 man page fixes.
1041
1042 3.1.6 21/1/97 - Released
1043
1044 Allow NAT to work on BSD systems in conjunction with "pass .. to ifname"
1045
1046 Memory leak introduced in 3.1.3 in NAT lists, clearing of NAT table tried
1047 to free memory twice.
1048
1049 NAT recalculates IP header checksum based on difference between IP#'s and
1050 port numbers - should be just IP#'s (Solaris2 only)
1051
1052 3.1.5 13/1/97 - Released
1053
1054 fixed setting of NAT timeouts and use different timeouts for concurrent
1055 TCP sessions using the same IP# mapping (when port mapping isn't used)
1056
1057 multiple loading/unloading of LKM's doesn't clean up cdevsw properly for
1058 *BSD systems.
1059
1060 3.1.4 10/1/97 - Released
1061
1062 add command line options -C and -F to ipnat to flush NAT list and table
1063
1064 ipnat -l loops on output - Neil Readwin (nreadwin (at] nysales.micrognosis.com)
1065
1066 NetBSD/FreeBSD kernel malloc changes - Daniel Carosone
1067
1068 3.1.3 10/1/97 - Released
1069
1070 NAT chains not constructed correctly in hash tables - Antony Y.R Lu
1071 (antony (at] hawk.ee.ncku.edu.tw)
1072
1073 Updated INSTALL.NetBSD, INSTALL.FreeBSD and INSTALL.Sol2
1074
1075 man page update (ipf.5) from Daniel Carosone (dan (at] geek.com.au)
1076
1077 ICMP header checksum update now included in NAT.
1078
1079 Solaris2 needs to modify IP header checksums in ip_natin and ip_natout.
1080
1081 3.1.2 4/12/96 - Released
1082
1083 ipmon doesn't use syslog all the time when given -s option
1084
1085 fixed mclput panic in ip_input.c and replace ntohs() with NTOHS() macro
1086
1087 check the results of hostname resolution in ipnat
1088
1089 "make *install" fixed for subdirectories.
1090
1091 problems with "ARCH:=" and gnu make resolved
1092
1093 parser reports an error for lines with whitespaces only rather than skipping
1094 them. D.Carosone (at] abm.com.au (Daniel Carosone)
1095
1096 patches for integration into NetBSD-current (post 1.2).
1097
1098 add an option to allow non-IP packets going up/down the stream on Solaris2
1099 to be dropped. John Bass.
1100
1101 3.1.2beta 21/11/96 - Released
1102
1103 make ipsend compile on Linux 2.0.24
1104
1105 changes to TCP kept state algorithm, making it watch state on TCP
1106 connections in both directions. Also use the same algorithm for NAT TCP.
1107
1108 -Wall cleanup - Bernd Ernesti
1109
1110 added "or-block" for "pass .. log or-block" after a suggestion from
1111 David Oppenheim (davido (at] optimation.com.au)
1112
1113 added subdirectories for building IP Filter in SunOS5/BSD for different
1114 cpu architecures
1115
1116 Solaris2 fixes to logging and pre-filtering packet processing - 3.1.1p2
1117
1118 mbuf logging not using mtod(), remove iplbusy - 3.1.1p1 1/11/96
1119
1120 3.1.1 28/10/96 - Released
1121
1122 Installation script fixes and deinstall scripts for IP Filter on:
1123 SunOS4/FreeBSD/NetBSD
1124
1125 Man page fixes - Paul Dubois (dubois (at] primate.wisc.edu)
1126
1127 Fix use of SOLARIS macro in ipmon, rewrote ipllog() (again!)
1128
1129 parsing isn't completely case insensitive - David Wilson
1130 (davidw (at] optimation.com.au)
1131
1132 Release ipl_mutex across uiomove() calls
1133
1134 print entire rule entries out for "ipf -z" when zero'ing per-rule stats.
1135
1136 ipfstat returns same output for "hits" in "ipfstat -aio" - Terletsky Slavik
1137 (ts (at] polynet.lviv.ua)
1138
1139 New algorithm for setting timeouts for TCP connection (more closely follow
1140 TCP FSM) - Pradeep Krishnan (pkrishna (at] netcom.com)
1141
1142 Track both window sizes for TCP connections through "keep state".
1143
1144 Solaris2 doesn't like _KERNEL defined in stdargs.h - Jos van Wezel
1145 (wezel (at] bio.vu.nl)
1146
1147 3.1.1-beta2 6/10/96 - Released
1148
1149 Solaris2 fastroute/dup-to/to now works
1150
1151 ipmon `record' reading rewritten
1152
1153 Added post-NetBSD1.2 packet filter patches - Mathew Green (mrg (at] eterna.com.au)
1154
1155 Attempt to use in_proto.c.diff, not "..diffs" for SunOS4 - David Wilson
1156 (davidw (at] optimation.com.au)
1157
1158 Michael Ryan (mike (at] NetworX.ie) reports the following:
1159 * The Trumpet WinSock under Windows always sends its SYN packet with an ACK
1160 value of 1, unlike any other implementation I've seen, which would set it
1161 to zero. The "keep state" feature of IP Filter doesn't work when receiving
1162 non-zero ACK values on new connection requests.
1163 * */Makefile install rule doesn't install all the binaries/man pages
1164 * Make ipnat use "tcp/udp" instead of "tcpudp"
1165 * Print out "tcp/udp" properly
1166 * ipnat "portmap tcp" matches "portmap udp" when adding/removing
1167 * NAT dest. ip# increased by one on mask of 0xffffffff when it shouldn't
1168
1169 3.1.1-beta 1/9/96 - Released
1170
1171 add better detection of TCP connections closing to TCP state monitoring.
1172
1173 fr_addstate() not called correctly for fragments. "keep state" and
1174 "keep frag" code don't work together 100% - Songqing Cai
1175 (songqing_cai (at] sterling.com)
1176
1177 call to fr_addstate() incorrect for adding state in combination with keeping
1178 fragment information - Songqing Cai (songqing_cai (at] sterling.com)
1179
1180 KFREE() passed fp (incorrect) and not fr (correct) in ip_frag.c - John Hood
1181 (cgull (at] smoke.marlboro.vt.us)
1182
1183 make ipf parser recognise '\\' as a `continued line' marker - Dima Ruban
1184 (dima@best.net)
1185
1186 3.1.1-alpha 23/8/96 - Released
1187
1188 kernel panic's when ICMP packets go through NAT code
1189
1190 stats aren't zero'd properly with ipf -Z
1191
1192 ipnat doesn't show port numbers correctly all the time and also add the
1193 protocol (tcp/udp/tcpudp) to rdr output - Carson Gaspar (carson@lehman.com)
1194
1195 fast checksum fixing not 100% - backout patch - Bill Dorsey (dorsey@lila.com)
1196
1197 NetBSD-1.2 patches from - VaX#n8 <vax (at] linkdead.paranoia.com>
1198
1199 Usage() call error in fils.c - Ajay Shekhawat (ajay@cedar.buffalo.edu)
1200
1201 ip_optcopy() staticly defined in ip_output.c in SunOS4 - Nick Hall
1202 (nrh@tardis.ed.ac.uk)
1203
1204 3.1.0 7/7/96 - Released
1205
1206 Reformatted ipnat output to be compatible with it's input, so that
1207 "ipnat -l | ipnat -rf -" is possible.
1208
1209 3.1.0beta 30/6/96 - Released
1210
1211 NetBSD-1.2 patches from Greg Woods (woods (at] most.weird.com)
1212
1213 kernel module must not be installed stripped (Solaris2), as created by
1214 "make package" for Solaris2 - Peter Heimann
1215 (peter (at] i3.informatik.rwth-aachen.de)
1216
1217 3.1.0alpha 5/6/96 - Released
1218
1219 include examples in package for solaris2
1220
1221 patches for removing an extra ip header checksum (FreeBSD/NetBSD/SunOS)
1222
1223 removed trailing space from printouts of rules in ipf.
1224
1225 ipresend supports the same range of inputs that ipftest does.
1226
1227 sending a duplicate copy of a packet to another network devices is now
1228 supported. ("dup-to")
1229
1230 sending a packet to an arbitary interface is now supported, irrespective
1231 of its actual route, with no ttl decrement. Can also be routed without
1232 the ttl being decremented. ("to" and "fastroute").
1233
1234 "call" option added to support calling a generic function if a packet is
1235 matched.
1236
1237 show all (upto 4) recorded bytes from the interface name in logging from
1238 ipmon.
1239
1240 support for using unix file permissions for read/write access on the device
1241 is now in place.
1242
1243 recursive mutex in nat_new() for Solaris 2.x - Per L. Hagen <per (at] stibo.dk>
1244
1245 ipftest doesn't call initparse() for THISHOST - Catherine Allen
1246 (cla@connect.com.au)
1247
1248 Man page corrections from Rex Bona (rex@pengo.comsmiths.com.au)
1249
1250 3.0.4 10/4/96 - Released
1251
1252 looop in `parsing' IP packets with optlen 0 for ip options.
1253
1254 rule number not initialized and resulted in unexpected results for state
1255 maching.
1256
1257 option parsing and printing bugs - Pradeep Krishnan
1258
1259 3.0.4beta 25/3/96 - Released
1260
1261 wouldn't parse "keep flags keep state" correctly.
1262
1263 SunOS4.1.x ip_input.c doesn't recognise all 1s broadcast address - Nigel Verdon
1264
1265 patches for BSDI's BSD/OS 2.1 and libpcap reader on little endian systems
1266 from Thorsten Lockert <tholo (at] tetherless.com>
1267
1268 b* functions in fil.c on Solaris 2.4
1269
1270 3.0.3 17/3/96 - Released
1271
1272 added patches to support IP Filter initialisation when compiled into the
1273 kernel.
1274
1275 added -x option to ipmon to display hex dumps of logged packets.
1276
1277 added -H option to ipftest to allow ascii-hex formatted input to specify
1278 arbitary IP packets.
1279
1280 Sending TCP RSTs as a response now work for Solaris2 x86
1281
1282 add patches to make IP Filter compile into NetBSD kernels properly.
1283
1284 patch to stop SunOS 4.1.x kernels panicing with "data traps".
1285
1286 ipfboot script unloads and reloads ipf module on Solaris2 if it is already
1287 loaded into the kernel.
1288
1289 Installation of IP Filter as a Solaris2 package is now supported.
1290
1291 Man pages for ipnat.4, ipnat.5 added.
1292
1293 added some more regression tests and fixed up IP Filter to pass the new tests
1294 (previous versions failed some of the tests in set 12).
1295
1296 IP option filter processing has changed so that saying "with opt lsrr" will
1297 check only for that one, but not mask out other options, so a packet with
1298 strict source routing, along with loose source routing will match all of
1299 "with opt lsrr", "with opt ssrr" and "with opt lsrr,ssrr".
1300
1301 IPL_NAME needed in ipnat.c - Kelly (kelly (at] count04.mry.scruznet.com)
1302
1303 patches for clean NetBSD compilation from Bernd Ernesti (bernd (at] arresum.inka.de)
1304
1305 make install is incorrect - Julian Briggs (julian (at] lightwork.co.uk)
1306
1307 strtol() returns 0x7fffffff for all negative numbers,
1308 printfr() generates incorrect output for "opt sec-class *",
1309 handling of "not opt xxx opt yyy" incorrect.
1310 - Minh Tonthat (minht (at] sbei.com)/Pradeep Krishnan (pradeepk (at] sbei.com)
1311
1312 m_pullup() called only for input and not output; caused problems
1313 with filtering icmp - Nigel Verdon (verdenn (at] gb.swissbank.com)
1314
1315 parsing problem for "port 1" and NetBSD patches incorrect -
1316 Andreas Gustafsson (gson (at] guava.araneus.fi)
1317
1318 3.0.2 4/2/96 - Released
1319
1320 Corrected bug where NAT recalculates checksums for fragments.
1321
1322 make NAT recalculate UDP checksums (rather than setting them to 0),
1323 if they're non-zero.
1324
1325 DNS patches - Real Page (Real.Page (at] Matrox.com)
1326
1327 alteration of checksum recalculations in NAT code and addition of
1328 redirection with NAT - Mike Neuman
1329
1330 core dump, if tcp/udp is used with a port number and not service name,
1331 in ipf - Mike Neuman (mcn (at] engarde.com)
1332
1333 initparse() call, missing to prime "<thishost>" hook - Craig Bishop
1334
1335 3.0.1 14/1/96 - Released
1336
1337 miscellaneous patches for Solaris2
1338
1339 3.0 14/1/96 - Released
1340
1341 Patch included for FDDI, from Richard Ohnemus
1342 (Richard_Ohnemus (at] dallas.csd.sterling.com)
1343
1344 Code cleanup for release.
1345
1346 3.0beta4 10/1/96
1347
1348 recursive mutex in ipfr_slowtimer fixed, reported by Craig Bishop
1349
1350 recursive mutex in sending TCP RSTs fixed, reported by Tony Becker
1351
1352 3.0beta3 9/1/96
1353
1354 FIxup for Solaris2.5 install and interface name bug in ipftest from
1355 Julian Briggs (julian (at] lightwork.co.uk)
1356
1357 Byte order patches for ipmon from Tony Becker (tony (at] mcrsys.com)
1358
1359 3.0beta2 7/1/96
1360
1361 Added the (somewhat warped) IP accounting as it exists in ipfw on FreeBSD.
1362 Note, this isn't really what one would call IP account, when compared to
1363 process accounting, sigh.
1364
1365 Split up ipresend into iptest/ipresend/ipsend
1366
1367 Added another m_pullup() inside fr_check() for BSD style kernels and
1368 added some checks to ipllog() to not log more than is present (for short
1369 packets).
1370
1371 Fixed bug where failed hostname/netname resolution goes undetecte and
1372 becomes 0.0.0.0 (any) (reported Guido van Rooij)
1373
1374 3.0beta 11/11/95 - Released
1375
1376 Rewrote the way rule testing is done, reducing the number of files needed and
1377 generated.
1378
1379 SIOCIPFFL was incorrectly affected by IPFILTER_LOG (Mathew Green)
1380
1381 Patches from Guido van Rooij to fix sending back TCP RSTs on Net-2/Net-3
1382 BSD based Unixes (panic'd)
1383
1384 Patches for FreeBSD/i86 ipmon from Riku Kalinen <riku (at] tequila.nixu.fi>
1385 (I think someone else already told me about these but they got lost :-/)
1386
1387 Changed Makefile structure to build object files for different operating
1388 systems in separate directories by default.
1389
1390 BSDI has ef0 for first ethernet interface
1391
1392 Allow for a "not" operator before optional keywords.
1393
1394 The "rule number" was being incorrectly incremented every time it went through
1395 the loop rather than when it matched a rule.
1396
1397 2.8.2 24/10/95 - Released
1398
1399 Fixed up problems with "textip" for doing lots of testing.
1400
1401 Fixed bug in detection of "short" tcp/ip packets (all reported as being short).
1402
1403 Solaris 2.4 port now works 100%.
1404
1405 Man page errors reported and fixed.
1406
1407 Removed duplicate entry in etc/services for login on port 49 (Craig Bishop).
1408
1409 Fixed ipmon output to put a space after the log-letter.
1410
1411 Patch from Guido van Rooij to fix parsing problem.
1412
1413 2.8.1 15/10/95 - Released
1414
1415 Added ttl and tos filtering.
1416
1417 Patches for fixing up compilation and port problems (little endian)
1418 from Guido van Rooij <guido (at] IAEhv.nl>.
1419
1420 Man page problems reported and fixed by Carson Gaspar <carson (at] lehman.com>.
1421
1422 ipsend doesn't compile properly on Solaris2.4
1423
1424 Lots of work done for Solaris2.4 to make it MT/MP safe and work.
1425
1426 2.8 15/9/95 - Released
1427
1428 ipmon can now send messages to syslogd (-s) and use names instead of
1429 numbers (-N).
1430
1431 IP packets are now "compiled" into a structure only containing filterable
1432 bits.
1433
1434 Added regression testing in the test/ subdirectory, using a new option
1435 (-b) with the ipftest program.
1436
1437 Added "nomatch" return to filter results. These are counted and show
1438 up in reports from ipfstat.
1439
1440 Moved filter code out of ip_fil.c and into fil.c - there is now only one
1441 instance of it in the package.
1442
1443 Added Solaris 2.4 support.
1444
1445 Added IPSO basic security option filtering.
1446
1447 Added name support for filtering on all 19 named IP options.
1448
1449 Patches from Ivan Brawley to log packet contents as well as packet headers.
1450
1451 Update for sun/conf.c.diff from Ivan Brawley <ibrawley (at] awadi.com.AU>
1452
1453 Added patches for FreeBSD 1, and added two new switches (-E, -D) to ipf,
1454 along with a new ioctl, SIOCFRENB.
1455 From: Dieter Dworkin Muller <dworkin (at] village.org>
1456
1457 2.7.3 31/7.95 - Released
1458
1459 Didn't compile cleanly without IPFILTER_LOG defined (Mathew Green).
1460
1461 ipftest now deals with tcpdump3 binary output files (from libpcap) with -P.
1462
1463 Brought ipftest program upto date with actual filter code.
1464
1465 Filter would cause a match to occur when it wasn't meant to if the packet
1466 had short headers and was missing portions that should have been there.
1467 Err, it would rightly not match on them, but their absence caused a match
1468 when it shouldn't have been.
1469
1470 2.7.2 26/7/95 - Released
1471
1472 Problem with filtering just SYN flagged packets reported by
1473 Dieter Dworkin Muller <dworkin (at] village.org>. To solve this
1474 problem, added support for masking TCP flags for comparison "flags X/Y".
1475
1476 2.7.1 9/7/95 - Released
1477
1478 Added ip_dirbroadcast support for Sun ip_input.c
1479
1480 Fixed up the install scripts for FreeBSD/NetBSD to recognise where they are
1481 better.
1482
1483 2.7 7/7/95 - Released
1484
1485 Added "return-rst" to return TCP RST's to TCP packets.
1486
1487 Actually ported it to FreeBSD-i386 2.0.0, so it works there properly now.
1488
1489 Added insertion of filter rules. Use "@<#>" at the beginning of a filter
1490 to insert a rule at row #.
1491
1492 Filter keeps track of how many times each rule is matched.
1493
1494 Changed compile time things to match kernel option (IPFILTER_LKM &
1495 IPFILTER_LOG).
1496
1497 Updated ip_input.c and ip_output.c with paches for 3.5 Multicast IP.
1498 (No change required for 3.6)
1499
1500 Now includes TCP fragments which start inside the TCP header as being short.
1501 Added counting the number of times each rule is matched.
1502
1503
1504 2.6 11/5/95 - Released
1505
1506 Added -n option to ipf: when supplied, no changes are made to the kernel.
1507
1508 Added installation scripts for SunOS 4.1.x and NetBSD/FreeBSD/BSDI.
1509
1510 Rewrote filtering to use a more generic mask & match procedure for
1511 checking if a packet matches a rule.
1512
1513 2.5.2 27/4/95 - Released
1514
1515 "tcp/udp" and a non-initialised pointer caused the "proto" to become
1516 a `random' value; added "ip#/dotted.mask" notation to the BNF.
1517 From Adam W. Feigin <feigin (at] iis.ee.ethz.ch>
1518
1519 2.5.1 22/3/95 - Released
1520
1521 "tcp/udp" had a strange effect (undesired) on getserv*() functions,
1522 causing protocol/service lookups to fail. Reported by Matthew Green.
1523
1524 2.5 17/3/95 - Released
1525
1526 Added a new keyword "all" to BNF and parsing of tcpdump/etherfind/snoop
1527 output through the ipftest program. Suggestions from:
1528 Michael Ciavarella (mikec (at] phyto.apana.org.au)
1529
1530 Conflicts occur when "general" filter rules are used for ports and the
1531 lack of a "proto" when used with "port" matches other packets when only
1532 TCP/UDP are implied.
1533 Reported Matthew Green (mrg (at] fulcom.com.au);
1534 reported & fixed 6-8/3/95
1535
1536 Added filtering of short TCP packets using "with short" 28/2/95
1537 (These can possibly slip by checks for the various flags). Short UDP
1538 or ICMP are dropped to the floor and logged.
1539
1540 Added filtering of fragmented packets using "with frag" 24/2/95
1541
1542 Port to NetBSD-current completed 20/2/95, using LKM.
1543
1544 Added logging of the rule # which caused the logging to happen and the
1545 interface on which the packet is currently as suggested by
1546 Andreas Greulich (greulich (at] math-stat.unibe.ch) 10/2/95
1547
1548 2.4 9/2/95 - Released
1549 Fixed saving of IP headers in ICMP packets.
1550
1551 2.3 29/1/95
1552 Added ipf -F [in|out|all] to flush filter rule sets (SIOCIPFFL).
1553 Fixed iplread() and iplsave() with help from Marc Huber.
1554
1555 2.2 7/1/95 - Released
1556 Added code from Marc Huber <huber (at] fzi.de> to allow it to allocate
1557 its own major char number dynamically when modload'ing. Fixed up
1558 use of <, >, <=, >= and >< for ports.
1559
1560 2.1 21/12/94 - Released
1561 repackaged to include the correct ip_output.c and ip_input.c *goof*
1562
1563 2.0 18/12/94 - Released
1564 added code to check for port ranges - complete.
1565 rewrote to work as a loadable kernel module - complete.
1566
1567 1.1
1568 added code for ouput filtering as well as input filtering and added support for logging to a simple character device of packet headers.
1569
1570 1.0 22/04/93 - Released
1571 First release cut.
1572