sync
[bitrig.git] / share / man / man7 / securelevel.7
blob4bb98bb48dc8a5d3cf662517578b1a5aac2ea625
1 .\"     $OpenBSD: securelevel.7,v 1.23 2011/06/24 19:47:48 naddy 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: June 24 2011 $
27 .Dt SECURELEVEL 7
28 .Os
29 .Sh NAME
30 .Nm securelevel
31 .Nd securelevel and its effects
32 .Sh DESCRIPTION
33 The
34 .Ox
35 kernel 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
41 will not attempt to raise the securelevel
42 .It
43 may only be set with
44 .Xr sysctl 8
45 while the system is insecure
46 .It
47 otherwise identical to securelevel 0
48 .El
49 .It \ 0 Em Insecure mode
50 .Bl -hyphen -compact
51 .It
52 used during bootstrapping and while the system is single-user
53 .It
54 all devices may be read or written subject to their permissions
55 .It
56 system file flags may be cleared with
57 .Xr chflags 2
58 .El
59 .It \ 1 Em Secure mode
60 .Bl -hyphen -compact
61 .It
62 default mode when system is multi-user
63 .It
64 securelevel may no longer be lowered except by init
65 .It
66 .Pa /dev/mem
67 and
68 .Pa /dev/kmem
69 may not be written to
70 .It
71 raw disk devices of mounted file systems are read-only
72 .It
73 system immutable and append-only file flags may not be removed
74 .It
75 kernel modules may not be loaded or unloaded
76 .It
77 the
78 .Va fs.posix.setuid
79 .Xr sysctl 8
80 variable may not be changed
81 .It
82 the
83 .Va hw.allowpowerdown
84 .Xr sysctl 8
85 variable may not be changed
86 .It
87 the
88 .Va net.inet.ip.sourceroute
89 .Xr sysctl 8
90 variable may not be changed
91 .It
92 the
93 .Va machdep.kbdreset
94 .Xr sysctl 8
95 variable may not be changed
96 .It
97 the
98 .Va ddb.console
99 and
100 .Va ddb.panic
101 .Xr sysctl 8
102 variables may not be raised
105 .Va machdep.allowaperture
106 .Xr sysctl 8
107 variable may not be raised
109 .Xr gpioctl 8
110 may only access GPIO pins configured at system startup
112 .It \ 2 Em Highly secure mode
113 .Bl -hyphen -compact
115 all effects of securelevel 1
117 raw disk devices are always read-only whether mounted or not
119 .Xr settimeofday 2
121 .Xr clock_settime 2
122 may not set the time backwards or close to overflow
124 .Xr pf 4
125 filter and NAT rules may not be altered
129 Securelevel provides convenient means of
130 .Dq locking down
131 a system to a degree suited to its environment.
132 It is normally set at boot via the
133 .Xr rc.securelevel 8
134 script, or the superuser may raise securelevel at any time by modifying the
135 .Va kern.securelevel
136 .Xr sysctl 8
137 variable.
138 However, only
139 .Xr init 8
140 may lower it once the system has entered secure mode.
141 A kernel built with
142 .Cm option INSECURE
143 in the config file will default to permanently insecure mode.
145 Highly secure mode may seem Draconian, but is intended as a last line of
146 defence should the superuser account be compromised.
147 Its effects preclude
148 circumvention of file flags by direct modification of a raw disk device,
149 or erasure of a file system by means of
150 .Xr newfs 8 .
151 Further, it can limit the potential damage of a compromised
152 .Dq firewall
153 by prohibiting the modification of packet filter rules.
154 Preventing
155 the system clock from being set backwards aids in post-mortem analysis
156 and helps ensure the integrity of logs.
157 Precision timekeeping is not
158 affected because the clock may still be slowed.
160 Because securelevel can be modified with the in-kernel debugger
161 .Xr ddb 4 ,
162 a convenient means of locking it off (if present) is provided
163 at securelevels 1 and 2.
164 This is accomplished by setting
165 .Va ddb.console
167 .Va ddb.panic
168 to 0 with the
169 .Xr sysctl 8
170 utility.
171 .Sh FILES
172 .Bl -tag -width /etc/rc.securelevel -compact
173 .It Pa /etc/rc.securelevel
174 commands that run before the security level changes
176 .Sh SEE ALSO
177 .Xr options 4 ,
178 .Xr init 8 ,
179 .Xr rc 8 ,
180 .Xr sysctl 8
181 .Sh HISTORY
184 manual page first appeared in
185 .Ox 2.6 .
186 .Sh BUGS
187 The list of securelevel's effects may not be comprehensive.