xref: /openbsd-src/share/man/man7/securelevel.7 (revision 5dab6feb3cee6b30d7e812ecffccbdc07c0b0f80)
1.\"     $OpenBSD: securelevel.7,v 1.28 2016/09/28 17:54:01 jmc Exp $
2.\"
3.\" Copyright (c) 2000 Hugh Graham
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15.\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
16.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17.\" IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
18.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
23.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24.\" POSSIBILITY OF SUCH DAMAGE.
25.\"
26.Dd $Mdocdate: September 28 2016 $
27.Dt SECURELEVEL 7
28.Os
29.Sh NAME
30.Nm securelevel
31.Nd securelevel and its effects
32.Sh DESCRIPTION
33The
34.Ox
35kernel provides four levels of system security:
36.Bl -tag -width flag
37.It \&-1 Em Permanently insecure mode
38.Bl -hyphen -compact
39.It
40.Xr init 8
41will not attempt to raise the securelevel
42.It
43may only be set with
44.Xr sysctl 8
45while the system is insecure
46.It
47otherwise identical to securelevel 0
48.El
49.It \ 0 Em Insecure mode
50.Bl -hyphen -compact
51.It
52used during bootstrapping and while the system is single-user
53.It
54all devices may be read or written subject to their permissions
55.It
56system file flags may be cleared with
57.Xr chflags 2
58.El
59.It \ 1 Em Secure mode
60.Bl -hyphen -compact
61.It
62default mode when system is multi-user
63.It
64securelevel may no longer be lowered except by init
65.It
66.Pa /dev/mem
67and
68.Pa /dev/kmem
69may not be written to
70.It
71raw disk devices of mounted file systems are read-only
72.It
73system immutable and append-only file flags may not be removed
74.It
75the
76.Va fs.posix.setuid
77.Xr sysctl 8
78variable may not be changed
79.It
80the
81.Va hw.allowpowerdown
82.Xr sysctl 8
83variable may not be changed
84.It
85the
86.Va net.inet.ip.sourceroute
87.Xr sysctl 8
88variable may not be changed
89.It
90the
91.Va machdep.kbdreset
92.Xr sysctl 8
93variable may not be changed
94.It
95the
96.Va kern.allowkmem
97.Xr sysctl 8
98variable may not be changed
99.It
100the
101.Va ddb.console
102and
103.Va ddb.panic
104.Xr sysctl 8
105variables may not be raised
106.It
107the
108.Va machdep.allowaperture
109.Xr sysctl 8
110variable may not be raised
111.It
112.Xr gpioctl 8
113may only access GPIO pins configured at system startup
114.El
115.It \ 2 Em Highly secure mode
116.Bl -hyphen -compact
117.It
118all effects of securelevel 1
119.It
120raw disk devices are always read-only whether mounted or not
121.It
122.Xr settimeofday 2
123and
124.Xr clock_settime 2
125may not set the time backwards or close to overflow
126.It
127.Xr pf 4
128filter and NAT rules may not be altered
129.El
130.El
131.Pp
132Securelevel provides convenient means of
133.Dq locking down
134a system to a degree suited to its environment.
135It is normally set at boot by
136.Xr rc 8 ,
137or the superuser may raise securelevel at any time by modifying the
138.Va kern.securelevel
139.Xr sysctl 8
140variable.
141However, only
142.Xr init 8
143may lower it once the system has entered secure mode.
144.Pp
145Highly secure mode may seem Draconian, but is intended as a last line of
146defence should the superuser account be compromised.
147Its effects preclude
148circumvention of file flags by direct modification of a raw disk device,
149or erasure of a file system by means of
150.Xr newfs 8 .
151Further, it can limit the potential damage of a compromised
152.Dq firewall
153by prohibiting the modification of packet filter rules.
154Preventing
155the system clock from being set backwards aids in post-mortem analysis
156and helps ensure the integrity of logs.
157Precision timekeeping is not
158affected because the clock may still be slowed.
159.Pp
160Because securelevel can be modified with the in-kernel debugger
161.Xr ddb 4 ,
162a convenient means of locking it off (if present) is provided
163at securelevels 1 and 2.
164This is accomplished by setting
165.Va ddb.console
166and
167.Va ddb.panic
168to 0 with the
169.Xr sysctl 8
170utility.
171.Sh FILES
172.Bl -tag -width /etc/rc.securelevel -compact
173.It Pa /etc/rc.securelevel
174commands that run before the security level changes
175.El
176.Sh SEE ALSO
177.Xr init 8 ,
178.Xr rc 8 ,
179.Xr sysctl 8
180.Sh HISTORY
181The
182.Nm
183manual page first appeared in
184.Ox 2.6 .
185.Sh BUGS
186The list of securelevel's effects may not be comprehensive.
187