As you suggested, I used xen 4.7.0-rc2 to test it again and the problem
still exists.

$ sudo xl create xen-config/win7
> Parsing config from xen-config/win7
> libxl: error: libxl_device.c:1033:device_backend_callback: unable to add
> device with path /local/domain/0/backend/vbd/1/51712
> libxl: error: libxl_create.c:1252:domcreate_launch_dm: unable to add disk
> devices
> libxl: error: libxl_device.c:1033:device_backend_callback: unable to
> remove device with path /local/domain/0/backend/vbd/1/51712
> libxl: error: libxl.c:1636:devices_destroy_cb: libxl__devices_destroy
> failed for 1
> libxl: error: libxl.c:1564:libxl__destroy_domid: non-existant domain 1
> libxl: error: libxl.c:1523:domain_destroy_callback: unable to destroy
> guest with domid 1
> libxl: error: libxl.c:1452:domain_destroy_cb: destruction of domain 1
> failed


Denied behaviors:

~$ sudo xl dmesg | grep avc
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event
> (XEN) avc:  denied  { send } for domid=0 scontext=system_u:system_r:dom0_t
> tcontext=system_u:system_r:dom0_t tclass=event


Corresponding rules:

~$ sudo xl dmesg | grep avc | audit2allow
> #============= dom0_t ==============
> allow dom0_t self:event send;


When I tried to add this rule to xen.te, it says

libsepol.check_assertion_helper: neverallow on line 2023 violated by allow
> dom0_t dom0_t:event { send };
>

So I comment the following restriction in policy.conf and recompile flask
policy with the new rule added.

neverallow * ~event_type:event { create send status };


This time no rule violations are generated by checking 'xl dmesg| grep
avc', but the errors in the very first place when creating domU (both hvm
and pv, with or without seclabel) still exist.

Basic info of xen configuration:

$ sudo xl info
> host                   : storage
> release                : 3.19.0
> version                : #1 SMP Tue Dec 8 09:27:36 CST 2015
> machine                : x86_64
> nr_cpus                : 6
> max_cpu_id             : 143
> nr_nodes               : 1
> cores_per_socket       : 6
> threads_per_core       : 1
> cpu_mhz                : 1600
> hw_caps                :
> b7ebfbff:77fef3ff:2c100800:00000021:00000001:000037ab:
>
>                                00000000:00000100
> virt_caps              : hvm hvm_directio
> total_memory           : 32667
> free_memory            : 24046
> sharing_freed_memory   : 0
> sharing_used_memory    : 0
> outstanding_claims     : 0
> free_cpus              : 0
> xen_major              : 4
> xen_minor              : 7
> xen_extra              : .0-rc
> xen_version            : 4.7.0-rc
> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
> hvm-3.0-
>                                                              x86_32p
> hvm-3.0-x86_64
> xen_scheduler          : credit
> xen_pagesize           : 4096
> platform_params        : virt_start=0xffff800000000000
> xen_changeset          : Fri May 13 18:15:34 2016 +0100 git:4f6aea0-dirty
> xen_commandline        : loglvl=all guest_loglvl=all com2=115200,8n1
> console=co
>                                                                m2,vga
> dom0_mem=8g,max:8g dom0_max_vcpus=1 dom0_vcpus_pin=true hap_1gb=false ha
>
>                                                  p_2mb=false altp2m=1 debug
> gdb=com2 flask=late
> cc_compiler            : gcc (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3
> cc_compile_by          : john
> cc_compile_domain      :
> cc_compile_date        : Mon May 16 09:31:31 CST 2016
> build_id               : a24e288d6620ab380b91abf6e93917c0b0e26651
> xend_config_format     : 4


BTW, I load flask policy after dom0 boots by using 'xl loadpolicy'

Xenstore logs:

>
> [20160516T02:48:50.847Z]  A12          newconn
> [20160516T02:48:50.860Z]  A12.1        rm        /local/domain/1
> [20160516T02:48:50.860Z]  A12.1        write     /local/domain/1
> [20160516T02:48:50.860Z]  A12.1        setperms  /local/domain/1 n0 r1
> [20160516T02:48:50.860Z]  A12.1        rm
>  /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac
> [20160516T02:48:50.861Z]  A12.1        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac
> [20160516T02:48:50.861Z]  A12.1        setperms
>  /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac n0 r1
> [20160516T02:48:50.861Z]  A12.1        rm        /libxl/1
> [20160516T02:48:50.861Z]  A12.1        write     /libxl/1
> [20160516T02:48:50.862Z]  A12.1        setperms  /libxl/1 n0
> [20160516T02:48:50.862Z]  A12.1        write     /local/domain/1/vm
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac
> [20160516T02:48:50.864Z]  A12.1        write     /local/domain/1/name win7
> [20160516T02:48:50.864Z]  A12.1        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac/name win7
> [20160516T02:48:50.864Z]  A12.1        write     /local/domain/1/cpu
> [20160516T02:48:50.865Z]  A12.1        setperms  /local/domain/1/cpu n0 r1
> [20160516T02:48:50.865Z]  A12.1        write     /local/domain/1/memory
> [20160516T02:48:50.865Z]  A12.1        setperms  /local/domain/1/memory n0
> r1
> [20160516T02:48:50.865Z]  A12.1        write     /local/domain/1/device
> [20160516T02:48:50.866Z]  A12.1        setperms  /local/domain/1/device n0
> r1
> [20160516T02:48:50.866Z]  A12.1        write     /local/domain/1/control
> [20160516T02:48:50.866Z]  A12.1        setperms  /local/domain/1/control
> n0 r1
> [20160516T02:48:50.866Z]  A12.1        write     /local/domain/1/hvmloader
> [20160516T02:48:50.866Z]  A12.1        setperms  /local/domain/1/hvmloader
> n0 r1
> [20160516T02:48:50.867Z]  A12.1        write
> /local/domain/1/control/shutdown
> [20160516T02:48:50.867Z]  A12.1        setperms
>  /local/domain/1/control/shutdown n1
> [20160516T02:48:50.867Z]  A12.1        write
> /local/domain/1/device/suspend/event-channel
> [20160516T02:48:50.868Z]  A12.1        setperms
>  /local/domain/1/device/suspend/event-channel n1
> [20160516T02:48:50.868Z]  A12.1        write     /local/domain/1/data
> [20160516T02:48:50.869Z]  A12.1        setperms  /local/domain/1/data n1
> [20160516T02:48:50.869Z]  A12.1        write     /local/domain/1/drivers
> [20160516T02:48:50.869Z]  A12.1        setperms  /local/domain/1/drivers n1
> [20160516T02:48:50.869Z]  A12.1        write     /local/domain/1/feature
> [20160516T02:48:50.869Z]  A12.1        setperms  /local/domain/1/feature n1
> [20160516T02:48:50.870Z]  A12.1        write     /local/domain/1/attr
> [20160516T02:48:50.870Z]  A12.1        setperms  /local/domain/1/attr n1
> [20160516T02:48:50.871Z]  A12.1        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac/uuid
> b3084abf-0b69-45cb-9128-ad3ea4ff00ac
> [20160516T02:48:50.871Z]  A12.1        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac/name win7
> [20160516T02:48:50.872Z]  A12.1        write
> /local/domain/1/control/platform-feature-multiprocessor-suspend 1
> [20160516T02:48:50.872Z]  A12.1        write
> /local/domain/1/control/platform-feature-xs_reset_watches 1
> [20160516T02:48:50.872Z]  A12.1        commit
> [20160516T02:48:50.872Z]  A12          write     /libxl/1/dm-version
> qemu_xen
> [20160516T02:48:51.561Z]  A12.2        write
> /local/domain/1/memory/static-max 1048576
> [20160516T02:48:51.561Z]  A12.2        write
> /local/domain/1/memory/target 1040384
> [20160516T02:48:51.561Z]  A12.2        write
> /local/domain/1/memory/videoram 8192
> [20160516T02:48:51.561Z]  A12.2        write     /local/domain/1/domid 1
> [20160516T02:48:51.561Z]  A12.2        write
> /local/domain/1/store/port 1
> [20160516T02:48:51.562Z]  A12.2        write
> /local/domain/1/store/ring-ref 1044476
> [20160516T02:48:51.562Z]  A12.2        write
> /local/domain/1/cpu/0/availability online
> [20160516T02:48:51.562Z]  A12.2        write
> /local/domain/1/platform/acpi 1
> [20160516T02:48:51.562Z]  A12.2        write
> /local/domain/1/platform/acpi_s3 1
> [20160516T02:48:51.563Z]  A12.2        write
> /local/domain/1/platform/acpi_s4 1
> [20160516T02:48:51.563Z]  A12.2        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac/rtc/timeoffset
> [20160516T02:48:51.563Z]  A12.2        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac/image/ostype hvm
> [20160516T02:48:51.563Z]  A12.2        write
> /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac/start_time 1463366930.87
> [20160516T02:48:51.563Z]  A12.2        commit
> [20160516T02:48:51.564Z]  D1           newconn
> [20160516T02:48:51.564Z]  A4           w event   @introduceDomain domlist
> [20160516T02:48:51.564Z]  A4           watch     /local/domain/1/console
> dom1
> [20160516T02:48:51.565Z]  A4           w event   /local/domain/1/console
> dom1
> [20160516T02:48:51.565Z]  A12          write     /libxl/1/dm-version
> qemu_xen
> [20160516T02:48:51.566Z]  A12.3        rm
>  /local/domain/1/device/vbd/51712
> [20160516T02:48:51.566Z]  A12.3        mkdir
> /local/domain/1/device/vbd/51712
> [20160516T02:48:51.566Z]  A12.3        setperms
>  /local/domain/1/device/vbd/51712 n1 r0
> [20160516T02:48:51.567Z]  A12.3        write
> /local/domain/1/device/vbd/51712/backend /local/domain/0/backend/vbd/1/51712
> [20160516T02:48:51.567Z]  A12.3        write
> /local/domain/1/device/vbd/51712/backend-id 0
> [20160516T02:48:51.567Z]  A12.3        setperms
>  /local/domain/1/device/vbd/51712/backend-id n1 r0
> [20160516T02:48:51.567Z]  A12.3        write
> /local/domain/1/device/vbd/51712/state 1
> [20160516T02:48:51.567Z]  A12.3        setperms
>  /local/domain/1/device/vbd/51712/state n1 r0
> [20160516T02:48:51.568Z]  A12.3        write
> /local/domain/1/device/vbd/51712/virtual-device 51712
> [20160516T02:48:51.568Z]  A12.3        setperms
>  /local/domain/1/device/vbd/51712/virtual-device n1 r0
> [20160516T02:48:51.568Z]  A12.3        write
> /local/domain/1/device/vbd/51712/device-type disk
> [20160516T02:48:51.568Z]  A12.3        setperms
>  /local/domain/1/device/vbd/51712/device-type n1 r0
> [20160516T02:48:51.568Z]  A12.3        rm
>  /local/domain/0/backend/vbd/1/51712
> [20160516T02:48:51.568Z]  A12.3        mkdir
> /local/domain/0/backend/vbd/1/51712
> [20160516T02:48:51.569Z]  A12.3        setperms
>  /local/domain/0/backend/vbd/1/51712 n0 r1
> [20160516T02:48:51.569Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/frontend
> /local/domain/1/device/vbd/51712
> [20160516T02:48:51.569Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/params /dev/storage-vg/win7
> [20160516T02:48:51.569Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/script /etc/xen/scripts/block
> [20160516T02:48:51.569Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/frontend-id 1
> [20160516T02:48:51.570Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/online 1
> [20160516T02:48:51.570Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/removable 0
> [20160516T02:48:51.570Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/bootable 1
> [20160516T02:48:51.570Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/state 1
> [20160516T02:48:51.570Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/dev xvda
> [20160516T02:48:51.571Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/type phy
> [20160516T02:48:51.571Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/mode w
> [20160516T02:48:51.571Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/device-type disk
> [20160516T02:48:51.571Z]  A12.3        write
> /local/domain/0/backend/vbd/1/51712/discard-enable 1
> [20160516T02:48:51.571Z]  A12.3        commit
> [20160516T02:48:51.572Z]  D0           w event   backend/vbd/1/51712
> FFFFFFFF81CA73E0
> [20160516T02:48:51.572Z]  D0           w event   backend/vbd/1/51712
> FFFFFFFF81CA73E0
> [20160516T02:48:51.572Z]  D0           w event
> backend/vbd/1/51712/frontend FFFFFFFF81CA73E0
> [20160516T02:48:51.572Z]  D0           w event
> backend/vbd/1/51712/params FFFFFFFF81CA73E0
> [20160516T02:48:51.572Z]  D0           w event
> backend/vbd/1/51712/script FFFFFFFF81CA73E0
> [20160516T02:48:51.572Z]  A12          watch
> /local/domain/0/backend/vbd/1/51712/state 3/0
> [20160516T02:48:51.572Z]  D0           w event
> backend/vbd/1/51712/frontend-id FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event
> backend/vbd/1/51712/online FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  A12          w event
> /local/domain/0/backend/vbd/1/51712/state 3/0
> [20160516T02:48:51.573Z]  D0           w event
> backend/vbd/1/51712/removable FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event
> backend/vbd/1/51712/bootable FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event   backend/vbd/1/51712/state
> FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event   backend/vbd/1/51712/dev
> FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event   backend/vbd/1/51712/type
> FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event   backend/vbd/1/51712/mode
> FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event
> backend/vbd/1/51712/device-type FFFFFFFF81CA73E0
> [20160516T02:48:51.573Z]  D0           w event
> backend/vbd/1/51712/discard-enable FFFFFFFF81CA73E0
> [20160516T02:49:01.581Z]  A12          unwatch
> /local/domain/0/backend/vbd/1/51712/state 3/0
> [20160516T02:49:01.585Z]  A12.4        rm
>  /local/domain/1/device/vbd/51712
> [20160516T02:49:01.585Z]  A12.4        rm        /local/domain/1/device/vbd
> [20160516T02:49:01.586Z]  A12.4        write
> /local/domain/0/backend/vbd/1/51712/online 0
> [20160516T02:49:01.586Z]  A12.4        write
> /local/domain/0/backend/vbd/1/51712/state 5
> [20160516T02:49:01.586Z]  A12.4        commit
> [20160516T02:49:01.586Z]  D0           w event
> backend/vbd/1/51712/online FFFFFFFF81CA73E0
> [20160516T02:49:01.586Z]  D0           w event   backend/vbd/1/51712/state
> FFFFFFFF81CA73E0
> [20160516T02:49:01.587Z]  A12          watch
> /local/domain/0/backend/vbd/1/51712/state 3/1
> [20160516T02:49:01.587Z]  A12          w event
> /local/domain/0/backend/vbd/1/51712/state 3/1
> [20160516T02:49:11.596Z]  A12          unwatch
> /local/domain/0/backend/vbd/1/51712/state 3/1
> [20160516T02:49:11.598Z]  A12.5        rm
>  /local/domain/1/device/vbd/51712
> [20160516T02:49:11.598Z]  A12.5        rm
>  /local/domain/0/backend/vbd/1/51712
> [20160516T02:49:11.599Z]  A12.5        rm
>  /local/domain/0/backend/vbd/1
> [20160516T02:49:11.599Z]  A12.5        rm
>  /local/domain/0/backend/vbd
> [20160516T02:49:11.600Z]  A12.5        rm        /local/domain/0/backend
> [20160516T02:49:11.600Z]  A12.5        commit
> [20160516T02:49:11.600Z]  A5           w event   backend/qnic/0
> be:0x7fea03f3bc24:0:0x7fea04383ba0
> [20160516T02:49:11.600Z]  D0           w event   backend/vbd/1/51712
> FFFFFFFF81CA73E0
> [20160516T02:49:11.600Z]  A5           w event   backend/qdisk/0
> be:0x7fea03f3bc1e:0:0x7fea04377780
> [20160516T02:49:11.601Z]  A5           w event   backend/vfb/0
> be:0x7fea03f3bc1a:0:0x7fea0437bb20
> [20160516T02:49:11.601Z]  A5           w event   backend/vkbd/0
> be:0x7fea03f3bc15:0:0x7fea0437bac0
> [20160516T02:49:11.601Z]  A5           w event   backend/console/0
> be:0x7fea03f3bc0d:0:0x7fea0437a580
> [20160516T02:49:11.602Z]  A12          rm
>  /vm/b3084abf-0b69-45cb-9128-ad3ea4ff00ac
> [20160516T02:49:11.602Z]  A12          rm        /local/domain/1
> [20160516T02:49:11.602Z]  A4           w event   /local/domain/1/console
> dom1
> [20160516T02:49:11.603Z]  A12          rm        /libxl/1
> [20160516T02:49:11.603Z]  A12          rm        /local/domain/1/hvmloader
> [20160516T02:49:11.992Z]  D1           endconn
> [20160516T02:49:11.992Z]  A4           w event   @releaseDomain domlist
> [20160516T02:49:11.992Z]  A4           unwatch   /local/domain/1/console
> dom1
> [20160516T02:49:11.995Z]  A12          endconn
> [20160516T02:49:28.875Z]  A13          newconn
> [20160516T02:49:28.880Z]  A13          endconn
> [20160516T02:49:43.894Z]  D0           w event   backend/vbd/1
> FFFFFFFF81CA73E0
> [20160516T02:50:13.918Z]  D0           w event   backend/vbd/1
> FFFFFFFF81CA73E0
> [20160516T02:50:43.942Z]  D0           w event   backend/vbd/1
> FFFFFFFF81CA73E0
> [20160516T02:51:13.967Z]  D0           w event   backend/vbd/1
> FFFFFFFF81CA73E0
> [20160516T02:51:43.992Z]  D0           w event   backend/vbd/1
> FFFFFFFF81CA73E0


If you need any further information, please feel free to ask. Any
suggestions will be appreciated.

2016-05-15 22:36 GMT+08:00 Andrew Cooper <andrew.coop...@citrix.com>:

> On 15/05/16 15:25, Big Strong wrote:
>
> Hi,
>
> I've configured xen 4.6.0 with xsm enabled and use the default flask
> policy to boot the dom0.
>
>
> For issues like this, please always use the latest stable branch, in this
> case making that Xen 4.6.1+.  It is entirely possible that bugfixes have
> been backported.
>
> In this case, can you try current master (or 4.7.0-rc2)? Some of these
> errors have definitely been fixed in the 4.7 dev period.
>
> ~Andrew
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to