package pf-qubes

All checked builds pass
  1. Overview
  2. Docs
QubesOS firewall ruleset handling library

Install

dune-project
 Dependency

Authors

Maintainers

Sources

pf-qubes-0.1.2.tbz
sha256=f1eb3921e827b13e6edfaeb1fcf39360f965e59aec3e8509691490fde24b281c
sha512=5d83e2d7b95dd0577ba762e6e73ecd0ae96ca84efc55df6421cb18c83c1ff4a2d8d6d11a6a2987a925a6006b2e46fa8f18d66cf8d2b5107b8f227bd22a534784

Description

pf-qubes provides a parser for the QubesOS (>=4.0) firewall ruleset syntax.

Tags

org:mirage

Added to opam-repository:

README

ocaml-pf

An Angstrom-based parser for the FreeBSD pf firewall configuration format.

implementation status

Ticked below are the lines that are (at least partially) implemented.

  • macro definitions (NB: macro expansion is NOT)
  • option
  • pf-rule
  • nat-rule
  • binat-rule
  • rdr-rule
  • antispoof-rule
  • altq-rule
  • queue-rule
  • trans-anchors
  • anchor-rule
  • anchor-close
  • load-anchor
  • table-rule
  • include

contributing

  • I would be very grateful for examples of rules that trip the parser - please file an issue ticket on GitHub.
  • Ideas regarding the AST, the API, or other suggestions are also very welcome.
  • It is always nice with improvements to the pretty-printers! :-)
  • Support for more lines is a goal, you can help by writing PRs or submitting examples of syntax that is not handled by the parser.
  • Before taking on larger rewrites, please get in touch so we can avoid merge conflicts.

compiling the example

First, install the dependencies:

opam pin add -n pf .
opam install --deps-only pf

# build test executable, self-test rules from 'man pf.conf':
jbuilder runtest

This will give you the parse_conf.exe utility that you can use to parse firewall configuration files:

./_build/default/test/parse_conf.exe /home/me/my-pf-file.conf
Reading "/home/me/my-pf-file.conf"
Line 0: ext_bridge = "external"
Read 1 lines!

Dependencies (10)

  1. domain-name
  2. ipaddr >= "2.8.0"
  3. uri >= "1.9.5"
  4. rresult >= "0.5.0"
  5. logs >= "0.6.2"
  6. fmt >= "0.8.7"
  7. angstrom >= "0.14.0"
  8. cstruct >= "3.3.0"
  9. ocaml >= "4.07.0"
  10. dune

Dev Dependencies (2)

  1. afl-persistent with-test
  2. alcotest with-test

Optional Dependencies

None

Used by

None

Conflicts

None

Build status

Results of building pf-qubes with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
0.1.2 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure