|  | .TH IPF 8 | 
|  | .SH NAME | 
|  | ipf \- alters packet filtering lists for IP packet input and output | 
|  | .SH SYNOPSIS | 
|  | .B ipf | 
|  | [ | 
|  | .B \-6AcdDEInoPrsvVyzZ | 
|  | ] [ | 
|  | .B \-l | 
|  | <block|pass|nomatch> | 
|  | ] [ | 
|  | .B \-T | 
|  | <optionlist> | 
|  | ] [ | 
|  | .B \-F | 
|  | <i|o|a|s|S> | 
|  | ] | 
|  | .B \-f | 
|  | <\fIfilename\fP> | 
|  | [ | 
|  | .B \-f | 
|  | <\fIfilename\fP> | 
|  | [...]] | 
|  | .SH DESCRIPTION | 
|  | .PP | 
|  | \fBipf\fP opens the filenames listed (treating "\-" as stdin) and parses the | 
|  | file for a set of rules which are to be added or removed from the packet | 
|  | filter rule set. | 
|  | .PP | 
|  | Each rule processed by \fBipf\fP | 
|  | is added to the kernel's internal lists if there are no parsing problems. | 
|  | Rules are added to the end of the internal lists, matching the order in | 
|  | which they appear when given to \fBipf\fP. | 
|  | .SH OPTIONS | 
|  | .TP | 
|  | .B \-6 | 
|  | This option is required to parse IPv6 rules and to have them loaded. | 
|  | .TP | 
|  | .B \-A | 
|  | Set the list to make changes to the active list (default). | 
|  | .TP | 
|  | .B \-c <language> | 
|  | This option causes \fBipf\fP to generate output files for a compiler that | 
|  | supports \fBlanguage\fI.  At present, the only target language supported is | 
|  | \fBC\fB (-cc) for which two files - \fBip_rules.c\fP | 
|  | and \fBip_rules.h\fP are generated in the \fBCURRENT DIRECTORY\fP when | 
|  | \fBipf\fP is being run.  These files can be used with the | 
|  | \fBIPFILTER_COMPILED\fP kernel option to build filter rules staticly into | 
|  | the kernel. | 
|  | .TP | 
|  | .B \-d | 
|  | Turn debug mode on.  Causes a hexdump of filter rules to be generated as | 
|  | it processes each one. | 
|  | .TP | 
|  | .B \-D | 
|  | Disable the filter (if enabled).  Not effective for loadable kernel versions. | 
|  | .TP | 
|  | .B \-E | 
|  | Enable the filter (if disabled).  Not effective for loadable kernel versions. | 
|  | .TP | 
|  | .BR \-F \0<i|o|a> | 
|  | This option specifies which filter list to flush.  The parameter should | 
|  | either be "i" (input), "o" (output) or "a" (remove all filter rules). | 
|  | Either a single letter or an entire word starting with the appropriate | 
|  | letter maybe used.  This option maybe before, or after, any other with | 
|  | the order on the command line being that used to execute options. | 
|  | .TP | 
|  | .BR \-F \0<s|S> | 
|  | To flush entries from the state table, the \fB-F\fP option is used in | 
|  | conjunction with either "s" (removes state information about any non-fully | 
|  | established connections) or "S" (deletes the entire state table).  Only | 
|  | one of the two options may be given.  A fully established connection | 
|  | will show up in \fBipfstat -s\fP output as 5/5, with deviations either | 
|  | way indicating it is not fully established any more. | 
|  | .TP | 
|  | .BR \-F <5|6|7|8|9|10|11> | 
|  | For the TCP states that represent the closing of a connection has begun, | 
|  | be it only one side or the complete connection, it is possible to flush | 
|  | those states directly using the number corresponding to that state. | 
|  | The numbers relate to the states as follows: 5 = close-wait, 6 = fin-wait-1, | 
|  | 7 = closing, 8 = last-ack, 9 = fin-wait-2, 10 = time-wait, 11 = closed. | 
|  | .TP | 
|  | .BR \-F <number> | 
|  | If the argument supplied to \fB-F\fP is greater than 30, then state table | 
|  | entries that have been idle for more than this many seconds will be flushed. | 
|  | .TP | 
|  | .BR \-f \0<filename> | 
|  | This option specifies which files | 
|  | \fBipf\fP should use to get input from for modifying the packet filter rule | 
|  | lists. | 
|  | .TP | 
|  | .B \-I | 
|  | Set the list to make changes to the inactive list. | 
|  | .TP | 
|  | .B \-l \0<pass|block|nomatch> | 
|  | Use of the \fB-l\fP flag toggles default logging of packets.  Valid | 
|  | arguments to this option are \fBpass\fP, \fBblock\fP and \fBnomatch\fP. | 
|  | When an option is set, any packet which exits filtering and matches the | 
|  | set category is logged.  This is most useful for causing all packets | 
|  | which don't match any of the loaded rules to be logged. | 
|  | .TP | 
|  | .B \-n | 
|  | This flag (no-change) prevents \fBipf\fP from actually making any ioctl | 
|  | calls or doing anything which would alter the currently running kernel. | 
|  | .TP | 
|  | .B \-o | 
|  | Force rules by default to be added/deleted to/from the output list, rather | 
|  | than the (default) input list. | 
|  | .TP | 
|  | .B \-P | 
|  | Add rules as temporary entries in the authentication rule table. | 
|  | .TP | 
|  | .B \-r | 
|  | Remove matching filter rules rather than add them to the internal lists | 
|  | .TP | 
|  | .B \-s | 
|  | Swap the active filter list in use to be the "other" one. | 
|  | .TP | 
|  | .B \-T <optionlist> | 
|  | This option allows run-time changing of IPFilter kernel variables.  Some | 
|  | variables require IPFilter to be in a disabled state (\fB-D\fP) for changing, | 
|  | others do not.  The optionlist parameter is a comma separated list of tuning | 
|  | commands.  A tuning command is either "list" (retrieve a list of all variables | 
|  | in the kernel, their maximum, minimum and current value), a single variable | 
|  | name (retrieve its current value) and a variable name with a following | 
|  | assignment to set a new value.  Some examples follow. | 
|  | .nf | 
|  | # Print out all IPFilter kernel tunable parameters | 
|  | ipf -T list | 
|  | # Display the current TCP idle timeout and then set it to 3600 | 
|  | ipf -D -T fr_tcpidletimeout,fr_tcpidletimeout=3600 -E | 
|  | # Display current values for fr_pass and fr_chksrc, then set fr_chksrc to 1. | 
|  | ipf -T fr_pass,fr_chksrc,fr_chksrc=1 | 
|  | .fi | 
|  | .TP | 
|  | .B \-v | 
|  | Turn verbose mode on.  Displays information relating to rule processing. | 
|  | .TP | 
|  | .B \-V | 
|  | Show version information.  This will display the version information compiled | 
|  | into the ipf binary and retrieve it from the kernel code (if running/present). | 
|  | If it is present in the kernel, information about its current state will be | 
|  | displayed (whether logging is active, default filtering, etc). | 
|  | .TP | 
|  | .B \-y | 
|  | Manually resync the in-kernel interface list maintained by IP Filter with | 
|  | the current interface status list. | 
|  | .TP | 
|  | .B \-z | 
|  | For each rule in the input file, reset the statistics for it to zero and | 
|  | display the statistics prior to them being zeroed. | 
|  | .TP | 
|  | .B \-Z | 
|  | Zero global statistics held in the kernel for filtering only (this doesn't | 
|  | affect fragment or state statistics). | 
|  | .DT | 
|  | .SH FILES | 
|  | /dev/ipauth | 
|  | .br | 
|  | /dev/ipl | 
|  | .br | 
|  | /dev/ipstate | 
|  | .SH SEE ALSO | 
|  | ipftest(1), mkfilters(1), ipf(4), ipl(4), ipf(5), ipfstat(8), ipmon(8), ipnat(8) | 
|  | .SH DIAGNOSTICS | 
|  | .PP | 
|  | Needs to be run as root for the packet filtering lists to actually | 
|  | be affected inside the kernel. | 
|  | .SH BUGS | 
|  | .PP | 
|  | If you find any, please send email to me at darrenr@pobox.com |