xref: /freebsd-13.1/libexec/rc/rc.d/ipsec (revision 51d97e1b)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb# $FreeBSD$
40696600cSBjoern A. Zeeb#
50696600cSBjoern A. Zeeb
60696600cSBjoern A. Zeeb# PROVIDE: ipsec
70696600cSBjoern A. Zeeb# REQUIRE: FILESYSTEMS
80696600cSBjoern A. Zeeb# BEFORE:  DAEMON mountcritremote
90696600cSBjoern A. Zeeb# KEYWORD: nojailvnet
100696600cSBjoern A. Zeeb
110696600cSBjoern A. Zeeb. /etc/rc.subr
120696600cSBjoern A. Zeeb
130696600cSBjoern A. Zeebname="ipsec"
140696600cSBjoern A. Zeebdesc="Internet Protocol Security protocol"
150696600cSBjoern A. Zeebrcvar="ipsec_enable"
160696600cSBjoern A. Zeebstart_precmd="ipsec_prestart"
170696600cSBjoern A. Zeebstart_cmd="ipsec_start"
180696600cSBjoern A. Zeebstop_precmd="test -f $ipsec_file"
190696600cSBjoern A. Zeebstop_cmd="ipsec_stop"
200696600cSBjoern A. Zeebreload_cmd="ipsec_reload"
210696600cSBjoern A. Zeebextra_commands="reload"
220696600cSBjoern A. Zeebipsec_program="/sbin/setkey"
23*51d97e1bSAndrey V. Elsukovrequired_modules="ipsec"
240696600cSBjoern A. Zeeb# ipsec_file is set by rc.conf
250696600cSBjoern A. Zeeb
260696600cSBjoern A. Zeebipsec_prestart()
270696600cSBjoern A. Zeeb{
280696600cSBjoern A. Zeeb	if [ ! -f "$ipsec_file" ]; then
290696600cSBjoern A. Zeeb		warn "$ipsec_file not readable; ipsec start aborted."
300696600cSBjoern A. Zeeb		stop_boot
310696600cSBjoern A. Zeeb		return 1
320696600cSBjoern A. Zeeb	fi
330696600cSBjoern A. Zeeb	return 0
340696600cSBjoern A. Zeeb}
350696600cSBjoern A. Zeeb
360696600cSBjoern A. Zeebipsec_start()
370696600cSBjoern A. Zeeb{
380696600cSBjoern A. Zeeb	echo "Installing ipsec manual keys/policies."
390696600cSBjoern A. Zeeb	${ipsec_program} -f $ipsec_file
400696600cSBjoern A. Zeeb}
410696600cSBjoern A. Zeeb
420696600cSBjoern A. Zeebipsec_stop()
430696600cSBjoern A. Zeeb{
440696600cSBjoern A. Zeeb	echo "Clearing ipsec manual keys/policies."
450696600cSBjoern A. Zeeb
460696600cSBjoern A. Zeeb	# Still not 100% sure if we would like to do this.
470696600cSBjoern A. Zeeb	# It is very questionable to do this during shutdown session
480696600cSBjoern A. Zeeb	# since it can hang any of the remaining IPv4/v6 sessions.
490696600cSBjoern A. Zeeb	#
500696600cSBjoern A. Zeeb	${ipsec_program} -F
510696600cSBjoern A. Zeeb	${ipsec_program} -FP
520696600cSBjoern A. Zeeb}
530696600cSBjoern A. Zeeb
540696600cSBjoern A. Zeebipsec_reload()
550696600cSBjoern A. Zeeb{
560696600cSBjoern A. Zeeb	echo "Reloading ipsec manual keys/policies."
570696600cSBjoern A. Zeeb	${ipsec_program} -f "$ipsec_file"
580696600cSBjoern A. Zeeb}
590696600cSBjoern A. Zeeb
600696600cSBjoern A. Zeebload_rc_config $name
610696600cSBjoern A. Zeebrun_rc_command "$1"
62