pf revision 127342
196263Sobrien#!/bin/sh 296263Sobrien# 396263Sobrien# $FreeBSD: head/etc/rc.d/pf 127342 2004-03-23 22:30:15Z mlaier $ 496263Sobrien# 596263Sobrien 6169689Skan# PROVIDE: pf 796263Sobrien# REQUIRE: root beforenetlkm mountcritlocal netif 8117395Skan# BEFORE: DAEMON LOGIN 9169689Skan# KEYWORD: FreeBSD nojail 10169689Skan 1196263Sobrien. /etc/rc.subr 1296263Sobrien 1396263Sobrienname="pf" 1496263Sobrienrcvar=`set_rcvar` 1596263Sobrienload_rc_config $name 1696263Sobrienstop_precmd="test -f ${pf_rules}" 1796263Sobrienstart_precmd="pf_prestart" 1896263Sobrienstart_cmd="pf_start" 1996263Sobrienstop_cmd="pf_stop" 2096263Sobrienreload_precmd="$stop_precmd" 2196263Sobrienreload_cmd="pf_reload" 2296263Sobrienresync_precmd="$stop_precmd" 2396263Sobrienresync_cmd="pf_resync" 24169689Skanstatus_precmd="$stop_precmd" 25169689Skanstatus_cmd="pf_status" 2696263Sobrienextra_commands="reload resync status" 27132718Skan 28132718Skanpf_prestart() 29132718Skan{ 30169689Skan # load pf kernel module if needed 3196263Sobrien if ! kldstat -v | grep -q pf\$; then 3296263Sobrien if kldload pf; then 33132718Skan info 'pf module loaded.' 3496263Sobrien else 35132718Skan err 1 'pf module failed to load.' 36132718Skan fi 3796263Sobrien fi 38119256Skan 3996263Sobrien # check for pf rules 4096263Sobrien if [ ! -r "${pf_rules}" ] 4196263Sobrien then 4296263Sobrien warn 'pf: NO PF RULESET FOUND' 4396263Sobrien return 1 4496263Sobrien fi 4596263Sobrien} 4696263Sobrien 4796263Sobrienpf_start() 4896263Sobrien{ 4996263Sobrien echo "Enabling pf." 50117395Skan if ! ${pf_program:-/sbin/pfctl} -si | grep -q "Enabled" ; then 5196263Sobrien ${pf_program:-/sbin/pfctl} -e 5296263Sobrien fi 5396263Sobrien ${pf_program:-/sbin/pfctl} -Fa > /dev/null 2>&1 5496263Sobrien if [ -r "${pf_rules}" ]; then 55119256Skan ${pf_program:-/sbin/pfctl} \ 56119256Skan -f "${pf_rules}" ${pf_flags} 57119256Skan fi 58169689Skan} 59132718Skan 6096263Sobrienpf_stop() 61132718Skan{ 6296263Sobrien if ${pf_program:-/sbin/pfctl} -si | grep -q "Enabled" ; then 6396263Sobrien echo "Disabling pf." 6496263Sobrien ${pf_program:-/sbin/pfctl} -d 6596263Sobrien fi 6696263Sobrien} 6796263Sobrien 6896263Sobrienpf_reload() 6996263Sobrien{ 70117395Skan echo "Reloading pf rules." 71117395Skan 72117395Skan ${pf_program:-/sbin/pfctl} -Fa > /dev/null 2>&1 73119256Skan if [ -r "${pf_rules}" ]; then 74117395Skan ${pf_program:-/sbin/pfctl} \ 75117395Skan -f "${pf_rules}" ${pf_flags} 76117395Skan fi 77119256Skan} 7896263Sobrien 7996263Sobrienpf_resync() 8096263Sobrien{ 8196263Sobrien # Don't resync if pf is not loaded 8296263Sobrien if ! kldstat -v | grep -q pf\$ ; then 8396263Sobrien return 8496263Sobrien fi 8596263Sobrien ${pf_program:-/sbin/pfctl} -f "${pf_rules}" ${pf_flags} 8696263Sobrien} 87132718Skan 88117395Skanpf_status() 89117395Skan{ 9096263Sobrien ${pf_program:-/sbin/pfctl} -si 91119256Skan} 92132718Skan 9396263Sobrienrun_rc_command "$1" 94117395Skan