10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: pf 69ef91759SPawel Biernacki# REQUIRE: FILESYSTEMS netif pflog pfsync routing 70696600cSBjoern A. Zeeb# KEYWORD: nojailvnet 80696600cSBjoern A. Zeeb 90696600cSBjoern A. Zeeb. /etc/rc.subr 100696600cSBjoern A. Zeeb 110696600cSBjoern A. Zeebname="pf" 120696600cSBjoern A. Zeebdesc="Packet filter" 130696600cSBjoern A. Zeebrcvar="pf_enable" 140696600cSBjoern A. Zeebload_rc_config $name 150696600cSBjoern A. Zeebstart_cmd="pf_start" 160696600cSBjoern A. Zeebstop_cmd="pf_stop" 170696600cSBjoern A. Zeebcheck_cmd="pf_check" 180696600cSBjoern A. Zeebreload_cmd="pf_reload" 190696600cSBjoern A. Zeebresync_cmd="pf_resync" 200696600cSBjoern A. Zeebstatus_cmd="pf_status" 210696600cSBjoern A. Zeebextra_commands="check reload resync" 220696600cSBjoern A. Zeebrequired_files="$pf_rules" 230696600cSBjoern A. Zeebrequired_modules="pf" 240696600cSBjoern A. Zeeb 25*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: config setting 26*f99f0ee1SAlexander Leidingerpf_svcj="NO" 27*f99f0ee1SAlexander Leidinger 2828f47a19SThomas Steen Rasmussenpf_fallback() 2928f47a19SThomas Steen Rasmussen{ 3028f47a19SThomas Steen Rasmussen warn "Unable to load $pf_rules." 3128f47a19SThomas Steen Rasmussen 3228f47a19SThomas Steen Rasmussen if ! checkyesno pf_fallback_rules_enable; then 3328f47a19SThomas Steen Rasmussen return 3428f47a19SThomas Steen Rasmussen fi 3528f47a19SThomas Steen Rasmussen 3628f47a19SThomas Steen Rasmussen if [ -f $pf_fallback_rules_file ]; then 3728f47a19SThomas Steen Rasmussen warn "Loading fallback rules file: $pf_fallback_rules_file" 3828f47a19SThomas Steen Rasmussen $pf_program -f "$pf_fallback_rules_file" $pf_flags 3928f47a19SThomas Steen Rasmussen else 4028f47a19SThomas Steen Rasmussen warn "Loading fallback rules: $pf_fallback_rules" 4128f47a19SThomas Steen Rasmussen echo $pf_fallback_rules | $pf_program -f - $pf_flags 4228f47a19SThomas Steen Rasmussen fi 4328f47a19SThomas Steen Rasmussen} 4428f47a19SThomas Steen Rasmussen 450696600cSBjoern A. Zeebpf_start() 460696600cSBjoern A. Zeeb{ 47325ebf37SJose Luis Duran startmsg -n 'Enabling pf' 480696600cSBjoern A. Zeeb $pf_program -F all > /dev/null 2>&1 4928f47a19SThomas Steen Rasmussen $pf_program -f "$pf_rules" $pf_flags || pf_fallback 500696600cSBjoern A. Zeeb if ! $pf_program -s info | grep -q "Enabled" ; then 510696600cSBjoern A. Zeeb $pf_program -eq 520696600cSBjoern A. Zeeb fi 53325ebf37SJose Luis Duran startmsg '.' 540696600cSBjoern A. Zeeb} 550696600cSBjoern A. Zeeb 560696600cSBjoern A. Zeebpf_stop() 570696600cSBjoern A. Zeeb{ 580696600cSBjoern A. Zeeb if $pf_program -s info | grep -q "Enabled" ; then 590696600cSBjoern A. Zeeb echo -n 'Disabling pf' 600696600cSBjoern A. Zeeb $pf_program -dq 610696600cSBjoern A. Zeeb echo '.' 620696600cSBjoern A. Zeeb fi 630696600cSBjoern A. Zeeb} 640696600cSBjoern A. Zeeb 650696600cSBjoern A. Zeebpf_check() 660696600cSBjoern A. Zeeb{ 670696600cSBjoern A. Zeeb echo "Checking pf rules." 680696600cSBjoern A. Zeeb $pf_program -n -f "$pf_rules" $pf_flags 690696600cSBjoern A. Zeeb} 700696600cSBjoern A. Zeeb 710696600cSBjoern A. Zeebpf_reload() 720696600cSBjoern A. Zeeb{ 730696600cSBjoern A. Zeeb echo "Reloading pf rules." 740696600cSBjoern A. Zeeb pf_resync 750696600cSBjoern A. Zeeb} 760696600cSBjoern A. Zeeb 770696600cSBjoern A. Zeebpf_resync() 780696600cSBjoern A. Zeeb{ 790696600cSBjoern A. Zeeb $pf_program -n -f "$pf_rules" $pf_flags || return 1 800696600cSBjoern A. Zeeb $pf_program -f "$pf_rules" $pf_flags 810696600cSBjoern A. Zeeb} 820696600cSBjoern A. Zeeb 830696600cSBjoern A. Zeebpf_status() 840696600cSBjoern A. Zeeb{ 850696600cSBjoern A. Zeeb if ! [ -c /dev/pf ] ; then 860696600cSBjoern A. Zeeb echo "pf.ko is not loaded" 870696600cSBjoern A. Zeeb return 1 880696600cSBjoern A. Zeeb else 890696600cSBjoern A. Zeeb $pf_program -s info 900696600cSBjoern A. Zeeb $pf_program -s Running >/dev/null 910696600cSBjoern A. Zeeb fi 920696600cSBjoern A. Zeeb} 930696600cSBjoern A. Zeeb 940696600cSBjoern A. Zeebrun_rc_command "$1" 95