IPF(8)
π NAME π
okay so bestie, this is the ipf page from the System Manager's Manual β page IPF(8) β and it's literally the tool that alters packet filtering lists for IP packet input and output. it's giving βrule-loader main character energy,β no cap. π
β¨ SYNOPSIS β¨
ipf [ -6AcdDEInoPrsvVyzZ ] [ -l <block|pass|nomatch> ] [ -T <optionlist>
] [ -F <i|o|a|s|S> ] -f <filename> [ -f <filename> [...]]
π¦ DESCRIPTION π¦
so ipf opens the filenames listed β and yes, it treats - as stdin β then parses the file for a set of rules that are gonna be added or removed from the packet filter rule set. iconic behavior honestly.
each rule processed by ipf gets 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 ipf. order matters, bestie. periodt.
π OPTIONS π
-6β IPv4 and IPv6 rules are stored in a single table and can be read from a single file. this option is no longer required to load IPv6 rules. it's ignored when specified with the-Foption, and the-Foption will flush IPv4 rules even if this option is specified. okayyy, noted. π-Aβ set the list to make changes to the active list (default).-c <language>β causesipfto generate output files for a compiler that supports language. at present, the only target language supported isC (-cc), for which two files βip_rules.candip_rules.hβ are generated in theCURRENT DIRECTORYwhenipfis being run. these files can be used with theIPFILTER_COMPILEDkernel option to build filter rules statically into the kernel. compiler girlies rise. π-dβ turn debug mode on. causes a hexdump of filter rules to be generated as it processes each one.-Dβ disable the filter (if enabled). not effective for loadable kernel versions.-Eβ enable the filter (if disabled). not effective for loadable kernel versions.-F <i|o|a>β specifies which filter list to flush. the parameter should either bei(input),o(output) ora(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. lowkey flexible. π-F <s|S>β to flush entries from the state table, the-Foption is used in conjunction with eithers(removes state information about any non-fully established connections) orS(deletes the entire state table). only one of the two options may be given. a fully established connection will show up inipfstat -soutput as5/5, with deviations either way indicating it is not fully established any more.-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. state-table cleanup slay. π§-F<number>β if the argument supplied to-Fis greater than 30, then state table entries that have been idle for more than this many seconds will be flushed.-f <filename>β this option specifies which filesipfshould use to get input from for modifying the packet filter rule lists.-Iβ set the list to make changes to the inactive list.-l <pass|block|nomatch>β use of the-lflag toggles default logging of packets. valid arguments to this option arepass,blockandnomatch. 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. logging bestie activated. π₯-nβ this flag (no-change) preventsipffrom actually making anyioctlcalls or doing anything which would alter the currently running kernel. look don't touch vibes.-oβ force rules by default to be added/deleted to/from the output list, rather than the (default) input list.-Pβ add rules as temporary entries in the authentication rule table.-rβ remove matching filter rules rather than add them to the internal lists.-sβ swap the active filter list in use to be the "other" one. switcheroo. π¦-T <optionlist>β this option allows run-time changing of IPFilter kernel variables. some variables require IPFilter to be in a disabled state (-D) for changing, others do not. the optionlist parameter is a comma separated list of tuning commands. a tuning command is eitherlist(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.
# 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
-vβ turn verbose mode on. displays information relating to rule processing. she's chatty and we love that. π-Vβ show version information. this will display the version information compiled into theipfbinary 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). version-check queen. π-yβ manually resync the in-kernel interface list maintained by IP Filter with the current interface status list.-zβ for each rule in the input file, reset the statistics for it to zero and display the statistics prior to them being zeroed. cute little stats reset moment.-Zβ zero global statistics held in the kernel for filtering only (this doesn't affect fragment or state statistics). important distinction, bestie. π
πΈ ENVIRONMENT πΈ
ipf utilizes the following environment variable.
IPF_PREDEFINEDβ ipfilter variables, seeVARIABLESinipf(5), can be specified in this environment variable providing shell access to ipfilter and ipnat variables. for example:
IPF_PREDEFINED='my_server="10.1.1.1"; my_client="10.1.1.2";'
π FILES π
/dev/ipauth/dev/ipl/dev/ipstate
π SEE ALSO π
ipftest(1)mkfilters(1)ipf(4)ipl(4)ipf(5)ipfstat(8)ipmon(8)ipnat(8)
π«Ά DIAGNOSTICS π«Ά
needs to be run as root for the packet filtering lists to actually be affected inside the kernel. like, actually actually. no cap.
π BUGS π
if you find any, please send email to me at darrenr@pobox.com. bug reports are self-care, bestie. π
okay that's a wrap on IPF(8) from the System Manager's Manual β that's the source/version footer, and there's no date stamped on this copy, so don't come for me. byeee π
β¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms