ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] непривелегированный контейнер lxc - как создать и запустить?
@ 2016-09-24 19:51 Alexander
  2016-09-24 23:42 ` Dmitry V. Levin
  2016-09-30 10:41 ` Alexander
  0 siblings, 2 replies; 11+ messages in thread
From: Alexander @ 2016-09-24 19:51 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Доброй ночи!

Пытаюсь запустить непривилегированный lxc-контейнер (root контейнера - 
обычный пользователь хоста).
Руководствовался вот этой статьей - 
http://programming086.blogspot.ru/2014/01/lxc-1-0-unprivileged-containers.html

Под-диапазоны пользователю добавил:

$ cat /etc/subuid
user:100000:50001
$ cat /etc/subuid
user:100000:50001


В конфигурации lxc их  указал:

user@localhost ~ $ cat  /home/user/.config/lxc/default.conf
lxc.include = /etc/lxc/default.conf
lxc.id_map = u 0 100000 50001
lxc.id_map = g 0 100000 50001

При попытке создать контейнер или просто получить список доступных 
вариантов для загрузки получаю ошибку:

user@localhost ~ $ lxc-create -t download -n alt2 -- -l
unshare: Operation not permitted
read pipe: Permission denied
lxc-create: lxccontainer.c: do_create_container_dir: 978 Failed to chown 
container dir
lxc-create: tools/lxc_create.c: main: 318 Error creating container alt2


Что я делаю не так?

Это актуальный обновленный P8 х64, (свеже-установленный осенний стартеркит).

Попробовал все тоже самое под ubuntu.
там контейнер такая последовательность действий успешно создает...


-- 
С уважением, Александр


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-09-24 19:51 [Comm] непривелегированный контейнер lxc - как создать и запустить? Alexander
@ 2016-09-24 23:42 ` Dmitry V. Levin
  2016-09-25  6:29   ` Alexander
  2016-09-30 10:41 ` Alexander
  1 sibling, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2016-09-24 23:42 UTC (permalink / raw)
  To: ALT Linux Community general discussions

[-- Attachment #1: Type: text/plain, Size: 395 bytes --]

Hi,

On Sat, Sep 24, 2016 at 10:51:47PM +0300, Alexander wrote:
> Доброй ночи!
> 
> Пытаюсь запустить непривилегированный 
> lxc-контейнер (root контейнера - обычный 
> пользователь хоста).

По умолчанию это не разрешено.  Параметр ядра, который этим управляет,
называется /proc/sys/kernel/userns_restrict; при необходимости ослабить
ограничение вы можете это сделать.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-09-24 23:42 ` Dmitry V. Levin
@ 2016-09-25  6:29   ` Alexander
  2016-09-25 21:13     ` Mikhail Efremov
  0 siblings, 1 reply; 11+ messages in thread
From: Alexander @ 2016-09-25  6:29 UTC (permalink / raw)
  To: ALT Linux Community general discussions

25.09.2016 02:42, Dmitry V. Levin пишет:
> Hi,
>
> On Sat, Sep 24, 2016 at 10:51:47PM +0300, Alexander wrote:
>> Доброй ночи!
>>
>> Пытаюсь запустить непривилегированный
>> lxc-контейнер (root контейнера - обычный
>> пользователь хоста).
>
> По умолчанию это не разрешено.  Параметр ядра, который этим управляет,
> называется /proc/sys/kernel/userns_restrict; при необходимости ослабить
> ограничение вы можете это сделать.
>
Спасибо. С той ошибкой помогло. Но теперь появилась другая ошибка:
$ lxc-create -t download -n p1 -- -l
newuidmap: write to uid_map failed: Operation not permitted
error mapping child
setgid: Invalid argument

Подскажите пожалуйста что и где еще нужно разрешить?


-- 
С уважением, Александр


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-09-25  6:29   ` Alexander
@ 2016-09-25 21:13     ` Mikhail Efremov
  2016-09-26  6:29       ` Alexander
  2016-10-07 20:14       ` Alexander
  0 siblings, 2 replies; 11+ messages in thread
From: Mikhail Efremov @ 2016-09-25 21:13 UTC (permalink / raw)
  To: ALT Linux Community general discussions

On Sun, 25 Sep 2016 09:29:36 +0300 Alexander wrote:
> 25.09.2016 02:42, Dmitry V. Levin пишет:
> > Hi,
> >
> > On Sat, Sep 24, 2016 at 10:51:47PM +0300, Alexander wrote:  
> >> Доброй ночи!
> >>
> >> Пытаюсь запустить непривилегированный
> >> lxc-контейнер (root контейнера - обычный
> >> пользователь хоста).  
> >
> > По умолчанию это не разрешено.  Параметр ядра, который этим
> > управляет, называется /proc/sys/kernel/userns_restrict; при
> > необходимости ослабить ограничение вы можете это сделать.
> >  
> Спасибо. С той ошибкой помогло. Но теперь появилась другая ошибка:
> $ lxc-create -t download -n p1 -- -l
> newuidmap: write to uid_map failed: Operation not permitted
> error mapping child
> setgid: Invalid argument
> 
> Подскажите пожалуйста что и где еще нужно разрешить?

Подозреваю, что lxc-create хочет suid'ный newuidmap. У нас же все эти
утилиты не suid'ные. Наверно нужно добавить соответствующий control в
пакет. Причем мне помнится, что где-то в этих утилитах была уязвимость
в случае их suid'ности.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-09-25 21:13     ` Mikhail Efremov
@ 2016-09-26  6:29       ` Alexander
  2016-10-07 20:14       ` Alexander
  1 sibling, 0 replies; 11+ messages in thread
From: Alexander @ 2016-09-26  6:29 UTC (permalink / raw)
  To: ALT Linux Community general discussions

26.09.2016 00:13, Mikhail Efremov пишет:
> On Sun, 25 Sep 2016 09:29:36 +0300 Alexander wrote:
>> 25.09.2016 02:42, Dmitry V. Levin пишет:
>>> Hi,
>>>
>>> On Sat, Sep 24, 2016 at 10:51:47PM +0300, Alexander wrote:
>>>> Доброй ночи!
>>>>
>>>> Пытаюсь запустить непривилегированный
>>>> lxc-контейнер (root контейнера - обычный
>>>> пользователь хоста).
>>> .....
>>> По умолчанию это не разрешено.
>> setgid: Invalid argument
>> .....
>> Подскажите пожалуйста что и где еще нужно разрешить?
> ......
> Подозреваю, что lxc-create хочет suid'ный newuidmap. У нас же все эти
> утилиты не suid'ные. Наверно нужно добавить соответствующий control в
> пакет. Причем мне помнится, что где-то в этих утилитах была уязвимость
> в случае их suid'ности.
>

Да, похоже так и есть - в ubuntu утилита с suid битом, у нас -  без 
него. После установки suid бита на  эти утилиты это место удалось 
проскочить.

Теперь ругается так:

$ lxc-create -t download -n p1 -- -l
mktemp: не удалось создать каталог по шаблону 
«/tmp/.private/user/tmp.XXXXXXXXXX»: Отказано в доступе

Хотя  вот так проходит вполне себе успешно:
$ mktemp -d
/tmp/.private/user/tmp.CCqmQm9Iz5


Похоже,  что непривилегированные lxc-контейнеры у нас никто не запускал 
и не настраивал?
Вроде же везде пишут что они более безопасные чем привилегированные? Или 
нет?


-- 
С уважением, Александр


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-09-24 19:51 [Comm] непривелегированный контейнер lxc - как создать и запустить? Alexander
  2016-09-24 23:42 ` Dmitry V. Levin
@ 2016-09-30 10:41 ` Alexander
  1 sibling, 0 replies; 11+ messages in thread
From: Alexander @ 2016-09-30 10:41 UTC (permalink / raw)
  To: ALT Linux Community general discussions

24.09.2016 22:51, Alexander пишет:
> Доброй ночи!
>
> Пытаюсь запустить непривилегированный lxc-контейнер (root контейнера -
> обычный пользователь хоста).
> Руководствовался вот этой статьей -

-- 

Создать контейнер удалось. Но при попытке запустить контейнер ругается:

lxc-start  -n u2 --logfile=u21.log
lxc-start: tools/lxc_start.c: main: 344 The container failed to start.
lxc-start: tools/lxc_start.c: main: 346 To get more details, run the 
container in foreground mode.
lxc-start: tools/lxc_start.c: main: 348 Additional information can be 
obtained by setting the --logfile and --logpriority options.
bash-3.2$ cat u21.log
lxc-start 20160930132944.079 ERROR    lxc_cgfs - 
cgroups/cgfs.c:lxc_cgroupfs_create:897 - Could not set clone_children to 
1 for cpuset hierarchy in parent cgroup.
lxc-start 20160930132944.079 ERROR    lxc_cgfs - 
cgroups/cgfs.c:cgroup_rmdir:209 - Read-only file system - cgroup_rmdir: 
failed to delete /sys/fs/cgroup/hugetlb/



С уважением, Александр


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-09-25 21:13     ` Mikhail Efremov
  2016-09-26  6:29       ` Alexander
@ 2016-10-07 20:14       ` Alexander
  2016-10-07 20:38         ` Anton Gorlov
  2016-10-07 23:19         ` Mikhail Efremov
  1 sibling, 2 replies; 11+ messages in thread
From: Alexander @ 2016-10-07 20:14 UTC (permalink / raw)
  To: community

26.09.2016 00:13, Mikhail Efremov пишет:
> Подозреваю, что lxc-create хочет suid'ный newuidmap. У нас же все эти
> утилиты не suid'ные. Наверно нужно добавить соответствующий control в
> пакет. Причем мне помнится, что где-то в этих утилитах была уязвимость
> в случае их suid'ности.
>
А не помните что там за уязвимости были?
Пользовательский контейнер запустил,но хотелось бы понять чем рискую  в 
случае suid-ного newuidmap.

-- 
С уважением, Александр


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-10-07 20:14       ` Alexander
@ 2016-10-07 20:38         ` Anton Gorlov
  2016-10-07 21:22           ` Alexander
  2016-10-07 23:19         ` Mikhail Efremov
  1 sibling, 1 reply; 11+ messages in thread
From: Anton Gorlov @ 2016-10-07 20:38 UTC (permalink / raw)
  To: ALT Linux Community general discussions

07.10.2016 23:14, Alexander пишет:
> А не помните что там за уязвимости были?
> Пользовательский контейнер запустил,но хотелось бы понять чем рискую  в
> случае suid-ного newuidmap.
А как именно запустили поделитесь секретом


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-10-07 20:38         ` Anton Gorlov
@ 2016-10-07 21:22           ` Alexander
  0 siblings, 0 replies; 11+ messages in thread
From: Alexander @ 2016-10-07 21:22 UTC (permalink / raw)
  To: ALT Linux Community general discussions

07.10.2016 23:38, Anton Gorlov пишет:

> А как именно запустили поделитесь секретом
> _______________________________________________
> community mailing list
> community@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/community
>
Процесс был несколько растянут во времени, поэтому не уверен что сейчас 
вспомню все сразу. Я думаю на днях повторить процесс на чистой системе и 
после того напишу подробную шпаргалку на форуме.

1.За основу берем вот эту инструкцию:
https://programming086.blogspot.ru/2014/01/lxc-1-0-unprivileged-containers.html
2.в параметрах ядра /proc/sys/kernel/userns_restrict ставим в 0
3.делаем suid-ными  newuidmap и newgidmap. Если их в системе нет, то 
ставим пакет shadow-submap.
4.устанавливаем пакет cgmanager и стартуем его сервис.
5.не забываем также стартовать сервис lxc-net - он по умолчанию отключен.
6.вот эта последовательность действий найдена где-то на просторах инета 
(без нее ЕМНИП контейнер создается но отказывается стартовать):
sudo service cgmanager start
sudo cgm create all $USER
sudo cgm chown all $USER $(id -u $USER) $(id -g $USER)
sudo cgm movepid all $USER $$
7.после всего этого (если я ничего не забыл), контейнер должен успешно 
создаваться командами типа:
lxc-create -t download -n p1 -- -d ubuntu -r trusty -a amd64
и стартовать по
lxc-start -n p1

если вылезет при создании контейнера что-то подобное: mktemp: не удалось 
создать каталог по шаблону «/tmp/.private/user/tmp.XXXXXXXXXX» - значит 
ошиблись где-то в subuid-х

Как-тот так...


-- 
С уважением, Александр


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-10-07 20:14       ` Alexander
  2016-10-07 20:38         ` Anton Gorlov
@ 2016-10-07 23:19         ` Mikhail Efremov
  2017-03-07 19:30           ` Mikhail Efremov
  1 sibling, 1 reply; 11+ messages in thread
From: Mikhail Efremov @ 2016-10-07 23:19 UTC (permalink / raw)
  To: ALT Linux Community general discussions

On Fri, 7 Oct 2016 23:14:34 +0300 Alexander wrote:
> 26.09.2016 00:13, Mikhail Efremov пишет:
> > Подозреваю, что lxc-create хочет suid'ный newuidmap. У нас же все
> > эти утилиты не suid'ные. Наверно нужно добавить соответствующий
> > control в пакет. Причем мне помнится, что где-то в этих утилитах
> > была уязвимость в случае их suid'ности.
> >  
> А не помните что там за уязвимости были?
> Пользовательский контейнер запустил,но хотелось бы понять чем рискую
> в случае suid-ного newuidmap.

https://github.com/shadow-maint/shadow/issues/28
Я уже не помню детали, было некоторое обсуждение в oss-security.
В ближайшее время постараюсь все это вспомнить и приложить у нас патчи.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] непривелегированный контейнер lxc - как создать и запустить?
  2016-10-07 23:19         ` Mikhail Efremov
@ 2017-03-07 19:30           ` Mikhail Efremov
  0 siblings, 0 replies; 11+ messages in thread
From: Mikhail Efremov @ 2017-03-07 19:30 UTC (permalink / raw)
  To: ALT Linux Community general discussions

On Sat, 8 Oct 2016 02:19:44 +0300 Mikhail Efremov wrote:
> On Fri, 7 Oct 2016 23:14:34 +0300 Alexander wrote:
> > 26.09.2016 00:13, Mikhail Efremov пишет:  
> > > Подозреваю, что lxc-create хочет suid'ный newuidmap. У нас же все
> > > эти утилиты не suid'ные. Наверно нужно добавить соответствующий
> > > control в пакет. Причем мне помнится, что где-то в этих утилитах
> > > была уязвимость в случае их suid'ности.
> > >    
> > А не помните что там за уязвимости были?
> > Пользовательский контейнер запустил,но хотелось бы понять чем рискую
> > в случае suid-ного newuidmap.  
> 
> https://github.com/shadow-maint/shadow/issues/28
> Я уже не помню детали, было некоторое обсуждение в oss-security.
> В ближайшее время постараюсь все это вспомнить и приложить у нас
> патчи.

Ближайшее время наступило, в Сизифе уже, в p8 - пока test-only таск
#179286.
Теперь для newuidmap/newgidmap есть соответствующие control'ы.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-03-07 19:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-24 19:51 [Comm] непривелегированный контейнер lxc - как создать и запустить? Alexander
2016-09-24 23:42 ` Dmitry V. Levin
2016-09-25  6:29   ` Alexander
2016-09-25 21:13     ` Mikhail Efremov
2016-09-26  6:29       ` Alexander
2016-10-07 20:14       ` Alexander
2016-10-07 20:38         ` Anton Gorlov
2016-10-07 21:22           ` Alexander
2016-10-07 23:19         ` Mikhail Efremov
2017-03-07 19:30           ` Mikhail Efremov
2016-09-30 10:41 ` Alexander

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git