10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: ipfilter 60696600cSBjoern A. Zeeb# REQUIRE: FILESYSTEMS 751da4b19SCy Schubert# BEFORE: ipmon ipnat netif netwait securelevel 8795be686SCy Schubert# KEYWORD: nojailvnet 90696600cSBjoern A. Zeeb 100696600cSBjoern A. Zeeb. /etc/rc.subr 110696600cSBjoern A. Zeeb 120696600cSBjoern A. Zeebname="ipfilter" 130696600cSBjoern A. Zeebdesc="IP packet filter" 140696600cSBjoern A. Zeebrcvar="ipfilter_enable" 150696600cSBjoern A. Zeebload_rc_config $name 16*e2ad10e8SCy Schubertstop_precmd="test -f ${ipfilter_rules}" 170696600cSBjoern A. Zeeb 180696600cSBjoern A. Zeebstart_precmd="$stop_precmd" 190696600cSBjoern A. Zeebstart_cmd="ipfilter_start" 200696600cSBjoern A. Zeebstop_cmd="ipfilter_stop" 210696600cSBjoern A. Zeebreload_precmd="$stop_precmd" 220696600cSBjoern A. Zeebreload_cmd="ipfilter_reload" 230696600cSBjoern A. Zeebresync_precmd="$stop_precmd" 240696600cSBjoern A. Zeebresync_cmd="ipfilter_resync" 250696600cSBjoern A. Zeebstatus_precmd="$stop_precmd" 260696600cSBjoern A. Zeebstatus_cmd="ipfilter_status" 270696600cSBjoern A. Zeebextra_commands="reload resync" 280696600cSBjoern A. Zeebrequired_modules="ipl:ipfilter" 290696600cSBjoern A. Zeeb 300696600cSBjoern A. Zeebipfilter_start() 310696600cSBjoern A. Zeeb{ 320696600cSBjoern A. Zeeb echo "Enabling ipfilter." 330696600cSBjoern A. Zeeb if ! ${ipfilter_program:-/sbin/ipf} -V | grep -q 'Running: yes'; then 340696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -E 350696600cSBjoern A. Zeeb fi 360696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -Fa 370696600cSBjoern A. Zeeb if [ -r "${ipfilter_rules}" ]; then 380696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} \ 390696600cSBjoern A. Zeeb -f "${ipfilter_rules}" ${ipfilter_flags} 400696600cSBjoern A. Zeeb fi 410696600cSBjoern A. Zeeb} 420696600cSBjoern A. Zeeb 430696600cSBjoern A. Zeebipfilter_stop() 440696600cSBjoern A. Zeeb{ 450696600cSBjoern A. Zeeb if ${ipfilter_program:-/sbin/ipf} -V | grep -q 'Running: yes'; then 460696600cSBjoern A. Zeeb echo "Saving firewall state tables" 470696600cSBjoern A. Zeeb ${ipfs_program:-/sbin/ipfs} -W ${ipfs_flags} 480696600cSBjoern A. Zeeb echo "Disabling ipfilter." 490696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -D 500696600cSBjoern A. Zeeb fi 510696600cSBjoern A. Zeeb} 520696600cSBjoern A. Zeeb 530696600cSBjoern A. Zeebipfilter_reload() 540696600cSBjoern A. Zeeb{ 550696600cSBjoern A. Zeeb echo "Reloading ipfilter rules." 560696600cSBjoern A. Zeeb 570696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -I -Fa 580696600cSBjoern A. Zeeb if [ -r "${ipfilter_rules}" ]; then 590696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -I \ 600696600cSBjoern A. Zeeb -f "${ipfilter_rules}" ${ipfilter_flags} 610696600cSBjoern A. Zeeb if [ $? -ne 0 ]; then 620696600cSBjoern A. Zeeb err 1 'Load of rules into alternate set failed; aborting reload' 630696600cSBjoern A. Zeeb fi 640696600cSBjoern A. Zeeb fi 650696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -s 660696600cSBjoern A. Zeeb 670696600cSBjoern A. Zeeb} 680696600cSBjoern A. Zeeb 690696600cSBjoern A. Zeebipfilter_resync() 700696600cSBjoern A. Zeeb{ 710696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -y ${ipfilter_flags} 720696600cSBjoern A. Zeeb} 730696600cSBjoern A. Zeeb 740696600cSBjoern A. Zeebipfilter_status() 750696600cSBjoern A. Zeeb{ 760696600cSBjoern A. Zeeb ${ipfilter_program:-/sbin/ipf} -V 770696600cSBjoern A. Zeeb} 780696600cSBjoern A. Zeeb 790696600cSBjoern A. Zeebrun_rc_command "$1" 80