192 |
- |
1 |
# Master libvirt daemon configuration file
|
|
|
2 |
#
|
|
|
3 |
|
|
|
4 |
#################################################################
|
|
|
5 |
#
|
|
|
6 |
# UNIX socket access controls
|
|
|
7 |
#
|
|
|
8 |
|
|
|
9 |
# Set the UNIX domain socket group ownership. This can be used to
|
|
|
10 |
# allow a 'trusted' set of users access to management capabilities
|
|
|
11 |
# without becoming root.
|
|
|
12 |
#
|
|
|
13 |
# This setting is not required or honoured if using systemd socket
|
|
|
14 |
# activation.
|
|
|
15 |
#
|
|
|
16 |
# This is restricted to 'root' by default.
|
|
|
17 |
#unix_sock_group = "libvirt"
|
|
|
18 |
|
|
|
19 |
# Set the UNIX socket permissions for the R/O socket. This is used
|
|
|
20 |
# for monitoring VM status only
|
|
|
21 |
#
|
|
|
22 |
# This setting is not required or honoured if using systemd socket
|
|
|
23 |
# activation.
|
|
|
24 |
#
|
|
|
25 |
# Default allows any user. If setting group ownership, you may want to
|
|
|
26 |
# restrict this too.
|
|
|
27 |
#unix_sock_ro_perms = "0777"
|
|
|
28 |
|
|
|
29 |
# Set the UNIX socket permissions for the R/W socket. This is used
|
|
|
30 |
# for full management of VMs
|
|
|
31 |
#
|
|
|
32 |
# This setting is not required or honoured if using systemd socket
|
|
|
33 |
# activation.
|
|
|
34 |
#
|
|
|
35 |
# Default allows only root. If PolicyKit is enabled on the socket,
|
|
|
36 |
# the default will change to allow everyone (eg, 0777)
|
|
|
37 |
#
|
|
|
38 |
# If not using PolicyKit and setting group ownership for access
|
|
|
39 |
# control, then you may want to relax this too.
|
|
|
40 |
#unix_sock_rw_perms = "0770"
|
|
|
41 |
|
|
|
42 |
# Set the UNIX socket permissions for the admin interface socket.
|
|
|
43 |
#
|
|
|
44 |
# This setting is not required or honoured if using systemd socket
|
|
|
45 |
# activation.
|
|
|
46 |
#
|
|
|
47 |
# Default allows only owner (root), do not change it unless you are
|
|
|
48 |
# sure to whom you are exposing the access to.
|
|
|
49 |
#unix_sock_admin_perms = "0700"
|
|
|
50 |
|
|
|
51 |
# Set the name of the directory in which sockets will be found/created.
|
|
|
52 |
#
|
|
|
53 |
# This setting is not required or honoured if using systemd socket
|
|
|
54 |
# activation with systemd version >= 227
|
|
|
55 |
#
|
204 |
- |
56 |
#unix_sock_dir = "/run/libvirt"
|
192 |
- |
57 |
|
|
|
58 |
|
|
|
59 |
|
|
|
60 |
#################################################################
|
|
|
61 |
#
|
|
|
62 |
# Authentication.
|
|
|
63 |
#
|
204 |
- |
64 |
# There are the following choices available:
|
|
|
65 |
#
|
192 |
- |
66 |
# - none: do not perform auth checks. If you can connect to the
|
|
|
67 |
# socket you are allowed. This is suitable if there are
|
|
|
68 |
# restrictions on connecting to the socket (eg, UNIX
|
|
|
69 |
# socket permissions), or if there is a lower layer in
|
|
|
70 |
# the network providing auth (eg, TLS/x509 certificates)
|
|
|
71 |
#
|
|
|
72 |
# - sasl: use SASL infrastructure. The actual auth scheme is then
|
204 |
- |
73 |
# controlled from /etc/sasl2/libvirt.conf. For the TCP
|
192 |
- |
74 |
# socket only GSSAPI & DIGEST-MD5 mechanisms will be used.
|
|
|
75 |
# For non-TCP or TLS sockets, any scheme is allowed.
|
|
|
76 |
#
|
|
|
77 |
# - polkit: use PolicyKit to authenticate. This is only suitable
|
|
|
78 |
# for use on the UNIX sockets. The default policy will
|
|
|
79 |
# require a user to supply their own password to gain
|
|
|
80 |
# full read/write access (aka sudo like), while anyone
|
|
|
81 |
# is allowed read/only access.
|
|
|
82 |
#
|
204 |
- |
83 |
|
192 |
- |
84 |
# Set an authentication scheme for UNIX read-only sockets
|
204 |
- |
85 |
#
|
192 |
- |
86 |
# By default socket permissions allow anyone to connect
|
|
|
87 |
#
|
204 |
- |
88 |
# If libvirt was compiled without support for 'polkit', then
|
|
|
89 |
# no access control checks are done, but libvirt still only
|
|
|
90 |
# allows execution of APIs which don't change state.
|
|
|
91 |
#
|
|
|
92 |
# If libvirt was compiled with support for 'polkit', then
|
|
|
93 |
# the libvirt socket will perform a check with polkit after
|
|
|
94 |
# connections. The default policy still allows any local
|
|
|
95 |
# user access.
|
|
|
96 |
#
|
|
|
97 |
# To restrict monitoring of domains you may wish to either
|
|
|
98 |
# enable 'sasl' here, or change the polkit policy definition.
|
|
|
99 |
#auth_unix_ro = "polkit"
|
192 |
- |
100 |
|
204 |
- |
101 |
# Set an authentication scheme for UNIX read-write sockets.
|
192 |
- |
102 |
#
|
204 |
- |
103 |
# If libvirt was compiled without support for 'polkit', then
|
|
|
104 |
# the systemd .socket files will use SocketMode=0600 by default
|
|
|
105 |
# thus only allowing root user to connect, and 'auth_unix_rw'
|
|
|
106 |
# will default to 'none'.
|
|
|
107 |
#
|
|
|
108 |
# If libvirt was compiled with support for 'polkit', then
|
|
|
109 |
# the systemd .socket files will use SocketMode=0666 which
|
|
|
110 |
# allows any user to connect and 'auth_unix_rw' will default
|
|
|
111 |
# to 'polkit'. If you disable use of 'polkit' here, then it
|
|
|
112 |
# is essential to change the systemd SocketMode parameter
|
|
|
113 |
# back to 0600, to avoid an insecure configuration.
|
|
|
114 |
#
|
|
|
115 |
#auth_unix_rw = "polkit"
|
192 |
- |
116 |
|
|
|
117 |
|
|
|
118 |
# Change the API access control scheme
|
|
|
119 |
#
|
|
|
120 |
# By default an authenticated user is allowed access
|
|
|
121 |
# to all APIs. Access drivers can place restrictions
|
|
|
122 |
# on this. By default the 'nop' driver is enabled,
|
|
|
123 |
# meaning no access control checks are done once a
|
|
|
124 |
# client has authenticated with virtnodedevd
|
|
|
125 |
#
|
|
|
126 |
#access_drivers = [ "polkit" ]
|
|
|
127 |
|
|
|
128 |
#################################################################
|
|
|
129 |
#
|
|
|
130 |
# Authorization controls
|
|
|
131 |
#
|
|
|
132 |
|
|
|
133 |
|
204 |
- |
134 |
# An access control list of allowed SASL usernames. The format for username
|
192 |
- |
135 |
# depends on the SASL authentication mechanism. Kerberos usernames
|
|
|
136 |
# look like username@REALM
|
|
|
137 |
#
|
|
|
138 |
# This list may contain wildcards such as
|
|
|
139 |
#
|
|
|
140 |
# "*@EXAMPLE.COM"
|
|
|
141 |
#
|
|
|
142 |
# See the g_pattern_match function for the format of the wildcards.
|
|
|
143 |
#
|
|
|
144 |
# https://developer.gnome.org/glib/stable/glib-Glob-style-pattern-matching.html
|
|
|
145 |
#
|
|
|
146 |
# NB If this is an empty list, no client can connect, so comment out
|
|
|
147 |
# entirely rather than using empty list to disable these checks
|
|
|
148 |
#
|
|
|
149 |
# By default, no Username's are checked
|
|
|
150 |
#sasl_allowed_username_list = ["joe@EXAMPLE.COM", "fred@EXAMPLE.COM" ]
|
|
|
151 |
|
|
|
152 |
|
|
|
153 |
#################################################################
|
|
|
154 |
#
|
|
|
155 |
# Processing controls
|
|
|
156 |
#
|
|
|
157 |
|
|
|
158 |
# The maximum number of concurrent client connections to allow
|
|
|
159 |
# over all sockets combined.
|
|
|
160 |
#max_clients = 5000
|
|
|
161 |
|
|
|
162 |
# The maximum length of queue of connections waiting to be
|
|
|
163 |
# accepted by the daemon. Note, that some protocols supporting
|
|
|
164 |
# retransmission may obey this so that a later reattempt at
|
|
|
165 |
# connection succeeds.
|
|
|
166 |
#max_queued_clients = 1000
|
|
|
167 |
|
|
|
168 |
# The maximum length of queue of accepted but not yet
|
|
|
169 |
# authenticated clients. The default value is 20. Set this to
|
|
|
170 |
# zero to turn this feature off.
|
|
|
171 |
#max_anonymous_clients = 20
|
|
|
172 |
|
|
|
173 |
# The minimum limit sets the number of workers to start up
|
|
|
174 |
# initially. If the number of active clients exceeds this,
|
|
|
175 |
# then more threads are spawned, up to max_workers limit.
|
|
|
176 |
# Typically you'd want max_workers to equal maximum number
|
|
|
177 |
# of clients allowed
|
|
|
178 |
#min_workers = 5
|
|
|
179 |
#max_workers = 20
|
|
|
180 |
|
|
|
181 |
|
|
|
182 |
# The number of priority workers. If all workers from above
|
|
|
183 |
# pool are stuck, some calls marked as high priority
|
|
|
184 |
# (notably domainDestroy) can be executed in this pool.
|
|
|
185 |
#prio_workers = 5
|
|
|
186 |
|
|
|
187 |
# Limit on concurrent requests from a single client
|
|
|
188 |
# connection. To avoid one client monopolizing the server
|
|
|
189 |
# this should be a small fraction of the global max_workers
|
|
|
190 |
# parameter.
|
|
|
191 |
#max_client_requests = 5
|
|
|
192 |
|
|
|
193 |
# Same processing controls, but this time for the admin interface.
|
|
|
194 |
# For description of each option, be so kind to scroll few lines
|
|
|
195 |
# upwards.
|
|
|
196 |
|
|
|
197 |
#admin_min_workers = 1
|
|
|
198 |
#admin_max_workers = 5
|
|
|
199 |
#admin_max_clients = 5
|
|
|
200 |
#admin_max_queued_clients = 5
|
|
|
201 |
#admin_max_client_requests = 5
|
|
|
202 |
|
|
|
203 |
#################################################################
|
|
|
204 |
#
|
|
|
205 |
# Logging controls
|
|
|
206 |
#
|
|
|
207 |
|
|
|
208 |
# Logging level: 4 errors, 3 warnings, 2 information, 1 debug
|
|
|
209 |
# basically 1 will log everything possible
|
|
|
210 |
#
|
|
|
211 |
# WARNING: USE OF THIS IS STRONGLY DISCOURAGED.
|
|
|
212 |
#
|
|
|
213 |
# WARNING: It outputs too much information to practically read.
|
|
|
214 |
# WARNING: The "log_filters" setting is recommended instead.
|
|
|
215 |
#
|
|
|
216 |
# WARNING: Journald applies rate limiting of messages and so libvirt
|
|
|
217 |
# WARNING: will limit "log_level" to only allow values 3 or 4 if
|
|
|
218 |
# WARNING: journald is the current output.
|
|
|
219 |
#
|
|
|
220 |
# WARNING: USE OF THIS IS STRONGLY DISCOURAGED.
|
|
|
221 |
#log_level = 3
|
|
|
222 |
|
|
|
223 |
# Logging filters:
|
|
|
224 |
# A filter allows to select a different logging level for a given category
|
|
|
225 |
# of logs. The format for a filter is:
|
|
|
226 |
#
|
|
|
227 |
# level:match
|
|
|
228 |
#
|
|
|
229 |
# where 'match' is a string which is matched against the category
|
|
|
230 |
# given in the VIR_LOG_INIT() at the top of each libvirt source
|
|
|
231 |
# file, e.g., "remote", "qemu", or "util.json". The 'match' in the
|
|
|
232 |
# filter matches using shell wildcard syntax (see 'man glob(7)').
|
|
|
233 |
# The 'match' is always treated as a substring match. IOW a match
|
|
|
234 |
# string 'foo' is equivalent to '*foo*'.
|
|
|
235 |
#
|
|
|
236 |
# 'level' is the minimal level where matching messages should
|
|
|
237 |
# be logged:
|
|
|
238 |
#
|
|
|
239 |
# 1: DEBUG
|
|
|
240 |
# 2: INFO
|
|
|
241 |
# 3: WARNING
|
|
|
242 |
# 4: ERROR
|
|
|
243 |
#
|
|
|
244 |
# Multiple filters can be defined in a single @log_filters, they just need
|
|
|
245 |
# to be separated by spaces. Note that libvirt performs "first" match, i.e.
|
|
|
246 |
# if there are concurrent filters, the first one that matches will be applied,
|
|
|
247 |
# given the order in @log_filters.
|
|
|
248 |
#
|
|
|
249 |
# A typical need is to capture information from a hypervisor driver,
|
|
|
250 |
# public API entrypoints and some of the utility code. Some utility
|
|
|
251 |
# code is very verbose and is generally not desired. Taking the QEMU
|
|
|
252 |
# hypervisor as an example, a suitable filter string for debugging
|
|
|
253 |
# might be to turn off object, json & event logging, but enable the
|
|
|
254 |
# rest of the util code:
|
|
|
255 |
#
|
|
|
256 |
#log_filters="1:qemu 1:libvirt 4:object 4:json 4:event 1:util"
|
|
|
257 |
|
|
|
258 |
# Logging outputs:
|
|
|
259 |
# An output is one of the places to save logging information
|
|
|
260 |
# The format for an output can be:
|
|
|
261 |
# level:stderr
|
|
|
262 |
# output goes to stderr
|
|
|
263 |
# level:syslog:name
|
|
|
264 |
# use syslog for the output and use the given name as the ident
|
|
|
265 |
# level:file:file_path
|
|
|
266 |
# output to a file, with the given filepath
|
|
|
267 |
# level:journald
|
|
|
268 |
# output to journald logging system
|
|
|
269 |
# In all cases 'level' is the minimal priority, acting as a filter
|
|
|
270 |
# 1: DEBUG
|
|
|
271 |
# 2: INFO
|
|
|
272 |
# 3: WARNING
|
|
|
273 |
# 4: ERROR
|
|
|
274 |
#
|
|
|
275 |
# Multiple outputs can be defined, they just need to be separated by spaces.
|
|
|
276 |
# e.g. to log all warnings and errors to syslog under the virtnodedevd ident:
|
|
|
277 |
#log_outputs="3:syslog:virtnodedevd"
|
|
|
278 |
|
|
|
279 |
|
|
|
280 |
##################################################################
|
|
|
281 |
#
|
|
|
282 |
# Auditing
|
|
|
283 |
#
|
|
|
284 |
# This setting allows usage of the auditing subsystem to be altered:
|
|
|
285 |
#
|
|
|
286 |
# audit_level == 0 -> disable all auditing
|
|
|
287 |
# audit_level == 1 -> enable auditing, only if enabled on host (default)
|
|
|
288 |
# audit_level == 2 -> enable auditing, and exit if disabled on host
|
|
|
289 |
#
|
|
|
290 |
#audit_level = 2
|
|
|
291 |
#
|
|
|
292 |
# If set to 1, then audit messages will also be sent
|
|
|
293 |
# via libvirt logging infrastructure. Defaults to 0
|
|
|
294 |
#
|
|
|
295 |
#audit_logging = 1
|
|
|
296 |
|
|
|
297 |
###################################################################
|
|
|
298 |
# UUID of the host:
|
|
|
299 |
# Host UUID is read from one of the sources specified in host_uuid_source.
|
|
|
300 |
#
|
|
|
301 |
# - 'smbios': fetch the UUID from 'dmidecode -s system-uuid'
|
|
|
302 |
# - 'machine-id': fetch the UUID from /etc/machine-id
|
|
|
303 |
#
|
|
|
304 |
# The host_uuid_source default is 'smbios'. If 'dmidecode' does not provide
|
|
|
305 |
# a valid UUID a temporary UUID will be generated.
|
|
|
306 |
#
|
|
|
307 |
# Another option is to specify host UUID in host_uuid.
|
|
|
308 |
#
|
|
|
309 |
# Keep the format of the example UUID below. UUID must not have all digits
|
|
|
310 |
# be the same.
|
|
|
311 |
|
|
|
312 |
# NB This default all-zeros UUID will not work. Replace
|
|
|
313 |
# it with the output of the 'uuidgen' command and then
|
|
|
314 |
# uncomment this entry
|
|
|
315 |
#host_uuid = "00000000-0000-0000-0000-000000000000"
|
|
|
316 |
#host_uuid_source = "smbios"
|
|
|
317 |
|
|
|
318 |
###################################################################
|
|
|
319 |
# Keepalive protocol:
|
|
|
320 |
# This allows virtnodedevd to detect broken client connections or even
|
|
|
321 |
# dead clients. A keepalive message is sent to a client after
|
|
|
322 |
# keepalive_interval seconds of inactivity to check if the client is
|
|
|
323 |
# still responding; keepalive_count is a maximum number of keepalive
|
|
|
324 |
# messages that are allowed to be sent to the client without getting
|
|
|
325 |
# any response before the connection is considered broken. In other
|
|
|
326 |
# words, the connection is automatically closed approximately after
|
|
|
327 |
# keepalive_interval * (keepalive_count + 1) seconds since the last
|
|
|
328 |
# message received from the client. If keepalive_interval is set to
|
|
|
329 |
# -1, virtnodedevd will never send keepalive requests; however clients
|
|
|
330 |
# can still send them and the daemon will send responses. When
|
|
|
331 |
# keepalive_count is set to 0, connections will be automatically
|
|
|
332 |
# closed after keepalive_interval seconds of inactivity without
|
|
|
333 |
# sending any keepalive messages.
|
|
|
334 |
#
|
|
|
335 |
#keepalive_interval = 5
|
|
|
336 |
#keepalive_count = 5
|
|
|
337 |
|
|
|
338 |
#
|
|
|
339 |
# These configuration options are no longer used. There is no way to
|
|
|
340 |
# restrict such clients from connecting since they first need to
|
|
|
341 |
# connect in order to ask for keepalive.
|
|
|
342 |
#
|
|
|
343 |
#keepalive_required = 1
|
|
|
344 |
#admin_keepalive_required = 1
|
|
|
345 |
|
|
|
346 |
# Keepalive settings for the admin interface
|
|
|
347 |
#admin_keepalive_interval = 5
|
|
|
348 |
#admin_keepalive_count = 5
|
|
|
349 |
|
|
|
350 |
###################################################################
|
|
|
351 |
# Open vSwitch:
|
|
|
352 |
# This allows to specify a timeout for openvswitch calls made by
|
|
|
353 |
# libvirt. The ovs-vsctl utility is used for the configuration and
|
|
|
354 |
# its timeout option is set by default to 5 seconds to avoid
|
|
|
355 |
# potential infinite waits blocking libvirt.
|
|
|
356 |
#
|
|
|
357 |
#ovs_timeout = 5
|