Le 15/06/2015 17:17, Serge Hallyn a écrit :
Quoting Xavier Gendre ([email protected]):
Hi,

i wanted to run a container in an unpriviledged container and i am
glad to succes in doing it. The point is that i am not sure if what
i did is acceptable from the security point of view or not...

Here are the steps i did:

1) create an unpriviledged container (lxc.id_map, ...) called 'test'.

2) mount a tmpfs to /sys/fs/cgroup in 'test' by adding this line in
its config file:

lxc.mount.auto = cgroup:mixed

3) create a basic container called 'p1' with the download template
as root in 'test'.

4) in the host, i chown the cgroup hierarchy of 'test' to give it to
the user id mapped to the id 0 in 'test' (this id is 362144 in my
example),

for T in `ls /sys/fs/cgroup`; do
   chown -R 362144:362144 /sys/fs/cgroup/$T/lxc/test
done

5) succesfully start the container 'p1' in 'test' :-)

I am not an expert with cgroups and i am wondering if i am letting
the devil enters in my home with that...

So, what is your opinion: is it a possible security break or is it safe?

Two things to make this safer

1. only chown the actual directory /sys/fs/cgroup/$T/lxc/test and maybe
its 'tasks' and 'cgroup.procs' files.  That way the container can create
sub-cgroups but cannot raise its own limits.

2. Only do this for the controllers you definately need.  Freezer and
memory for example.  Then set lxc.cgroup.use in /etc/lxc/lxc.conf
(see lxc.system.conf(5)).

-serge

Hello Serge,

thank you for your advices. Indeed, chowning only the directories is sufficient to start the nested container. I did not have to chown 'tasks' and 'cgroup.procs' in order to simply start it.

Your second point is more obscur for me... For now, i have to chown all the controllers:

'blkio' 'cpu,cpuacct' 'cpuset' 'devices' 'freezer' 'net_cls,net_prio' 'perf_event'

When you say 'need', it applies to the container 'test' or to 'p1' in my example? If i plan to allow quite general containers to run in my unpriviledged container, all the controllers should be chowned or is there some that are definitely not needed?

Thanks,
Xavier
_______________________________________________
lxc-users mailing list
[email protected]
http://lists.linuxcontainers.org/listinfo/lxc-users

Reply via email to