| .TH IPF 8 |
| .SH NAME |
| ipf \- alters packet filtering lists for IP packet input and output |
| .SH SYNOPSIS |
| .B ipf |
| [ |
| .B \-6AdDEInoPrsvVyzZ |
| ] [ |
| .B \-l |
| {block|pass|nomatch|state|nat|none} |
| ] [ |
| .B \-c |
| c |
| ] [ |
| .B \-T |
| <optionlist> |
| ] [ |
| .B \-F |
| {i|o|a|s|S|<number>} |
| ] |
| .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 \0{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 \0<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|state|nat|none} |
| 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 |