Restrict unprivileged access to kernel syslog
[linux-3.10.git] / security / Kconfig
1 #
2 # Security configuration
3 #
4
5 menu "Security options"
6
7 config KEYS
8         bool "Enable access key retention support"
9         help
10           This option provides support for retaining authentication tokens and
11           access keys in the kernel.
12
13           It also includes provision of methods by which such keys might be
14           associated with a process so that network filesystems, encryption
15           support and the like can find them.
16
17           Furthermore, a special type of key is available that acts as keyring:
18           a searchable sequence of keys. Each process is equipped with access
19           to five standard keyrings: UID-specific, GID-specific, session,
20           process and thread.
21
22           If you are unsure as to whether this is required, answer N.
23
24 config KEYS_DEBUG_PROC_KEYS
25         bool "Enable the /proc/keys file by which keys may be viewed"
26         depends on KEYS
27         help
28           This option turns on support for the /proc/keys file - through which
29           can be listed all the keys on the system that are viewable by the
30           reading process.
31
32           The only keys included in the list are those that grant View
33           permission to the reading process whether or not it possesses them.
34           Note that LSM security checks are still performed, and may further
35           filter out keys that the current process is not authorised to view.
36
37           Only key attributes are listed here; key payloads are not included in
38           the resulting table.
39
40           If you are unsure as to whether this is required, answer N.
41
42 config SECURITY_DMESG_RESTRICT
43         bool "Restrict unprivileged access to the kernel syslog"
44         default n
45         help
46           This enforces restrictions on unprivileged users reading the kernel
47           syslog via dmesg(8).
48
49           If this option is not selected, no restrictions will be enforced
50           unless the dmesg_restrict sysctl is explicitly set to (1).
51
52           If you are unsure how to answer this question, answer N.
53
54 config SECURITY
55         bool "Enable different security models"
56         depends on SYSFS
57         help
58           This allows you to choose different security modules to be
59           configured into your kernel.
60
61           If this option is not selected, the default Linux security
62           model will be used.
63
64           If you are unsure how to answer this question, answer N.
65
66 config SECURITYFS
67         bool "Enable the securityfs filesystem"
68         help
69           This will build the securityfs filesystem.  It is currently used by
70           the TPM bios character driver and IMA, an integrity provider.  It is
71           not used by SELinux or SMACK.
72
73           If you are unsure how to answer this question, answer N.
74
75 config SECURITY_NETWORK
76         bool "Socket and Networking Security Hooks"
77         depends on SECURITY
78         help
79           This enables the socket and networking security hooks.
80           If enabled, a security module can use these hooks to
81           implement socket and networking access controls.
82           If you are unsure how to answer this question, answer N.
83
84 config SECURITY_NETWORK_XFRM
85         bool "XFRM (IPSec) Networking Security Hooks"
86         depends on XFRM && SECURITY_NETWORK
87         help
88           This enables the XFRM (IPSec) networking security hooks.
89           If enabled, a security module can use these hooks to
90           implement per-packet access controls based on labels
91           derived from IPSec policy.  Non-IPSec communications are
92           designated as unlabelled, and only sockets authorized
93           to communicate unlabelled data can send without using
94           IPSec.
95           If you are unsure how to answer this question, answer N.
96
97 config SECURITY_PATH
98         bool "Security hooks for pathname based access control"
99         depends on SECURITY
100         help
101           This enables the security hooks for pathname based access control.
102           If enabled, a security module can use these hooks to
103           implement pathname based access controls.
104           If you are unsure how to answer this question, answer N.
105
106 config INTEL_TXT
107         bool "Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)"
108         depends on HAVE_INTEL_TXT
109         help
110           This option enables support for booting the kernel with the
111           Trusted Boot (tboot) module. This will utilize
112           Intel(R) Trusted Execution Technology to perform a measured launch
113           of the kernel. If the system does not support Intel(R) TXT, this
114           will have no effect.
115
116           Intel TXT will provide higher assurance of system configuration and
117           initial state as well as data reset protection.  This is used to
118           create a robust initial kernel measurement and verification, which
119           helps to ensure that kernel security mechanisms are functioning
120           correctly. This level of protection requires a root of trust outside
121           of the kernel itself.
122
123           Intel TXT also helps solve real end user concerns about having
124           confidence that their hardware is running the VMM or kernel that
125           it was configured with, especially since they may be responsible for
126           providing such assurances to VMs and services running on it.
127
128           See <http://www.intel.com/technology/security/> for more information
129           about Intel(R) TXT.
130           See <http://tboot.sourceforge.net> for more information about tboot.
131           See Documentation/intel_txt.txt for a description of how to enable
132           Intel TXT support in a kernel boot.
133
134           If you are unsure as to whether this is required, answer N.
135
136 config LSM_MMAP_MIN_ADDR
137         int "Low address space for LSM to protect from user allocation"
138         depends on SECURITY && SECURITY_SELINUX
139         default 65536
140         help
141           This is the portion of low virtual memory which should be protected
142           from userspace allocation.  Keeping a user from writing to low pages
143           can help reduce the impact of kernel NULL pointer bugs.
144
145           For most ia64, ppc64 and x86 users with lots of address space
146           a value of 65536 is reasonable and should cause no problems.
147           On arm and other archs it should not be higher than 32768.
148           Programs which use vm86 functionality or have some need to map
149           this low address space will need the permission specific to the
150           systems running LSM.
151
152 source security/selinux/Kconfig
153 source security/smack/Kconfig
154 source security/tomoyo/Kconfig
155 source security/apparmor/Kconfig
156
157 source security/integrity/ima/Kconfig
158
159 choice
160         prompt "Default security module"
161         default DEFAULT_SECURITY_SELINUX if SECURITY_SELINUX
162         default DEFAULT_SECURITY_SMACK if SECURITY_SMACK
163         default DEFAULT_SECURITY_TOMOYO if SECURITY_TOMOYO
164         default DEFAULT_SECURITY_APPARMOR if SECURITY_APPARMOR
165         default DEFAULT_SECURITY_DAC
166
167         help
168           Select the security module that will be used by default if the
169           kernel parameter security= is not specified.
170
171         config DEFAULT_SECURITY_SELINUX
172                 bool "SELinux" if SECURITY_SELINUX=y
173
174         config DEFAULT_SECURITY_SMACK
175                 bool "Simplified Mandatory Access Control" if SECURITY_SMACK=y
176
177         config DEFAULT_SECURITY_TOMOYO
178                 bool "TOMOYO" if SECURITY_TOMOYO=y
179
180         config DEFAULT_SECURITY_APPARMOR
181                 bool "AppArmor" if SECURITY_APPARMOR=y
182
183         config DEFAULT_SECURITY_DAC
184                 bool "Unix Discretionary Access Controls"
185
186 endchoice
187
188 config DEFAULT_SECURITY
189         string
190         default "selinux" if DEFAULT_SECURITY_SELINUX
191         default "smack" if DEFAULT_SECURITY_SMACK
192         default "tomoyo" if DEFAULT_SECURITY_TOMOYO
193         default "apparmor" if DEFAULT_SECURITY_APPARMOR
194         default "" if DEFAULT_SECURITY_DAC
195
196 endmenu
197