I want to be able to include some parts of my pf.conf from other set of files.

For example I will include "set timeout" vs like statements in another file.

Using anchors and "load anchor from file" statements will not help because anchor can not hold such GLOBAL OPTIONS.

  • 1
    May be you should write your own config generator? Commented May 14, 2011 at 0:02

2 Answers 2


One way to do this is to use m4 as a preprocessor that produces your final pf.conf. Or you can even break your pf.conf into parts and then have a simplistic "preprocessor" cat those parts > /etc/pf.conf.


As per the pf.conf man page:

Comments can be put anywhere in the file using a hash mark (`#'), and
     extend to the end of the current line.  Additional configuration files
     can be included with the include keyword, for example:

       include "/etc/pf/sub.filter.conf"

Source: https://www.freebsd.org/cgi/man.cgi?query=pf.conf&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE

  • 2
    I could be mistaken, but the FreeBSD manual page for pf.conf does not seem to cover the include keyword.
    – adamo
    Commented Jul 11, 2011 at 9:36
  • 1
    Yup. I think you have to add an anchor at the appropriate place, and then call load anchor anchor_name from "/etc/pf/sub.filter.conf"
    – Pitarou
    Commented Mar 12, 2014 at 4:09
  • 1
    As of now, these lines do exist (current version of the man page: FreeBSD 10.3 June 29 2012). This answer works perfectly.
    – zezollo
    Commented Jul 20, 2017 at 6:01
  • 1
    FreeBSD docs don't mention it until 9.0, which wasn't out when I answered this question. OpenBSD 4.9 was out then, and its pf.conf man page does have the include keyword. I probably didn't see the pfsense or freebsd tags and should have cited my source.
    – Michael
    Commented Jul 23, 2017 at 22:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .