PPTPD на непривилегированном контейнере lxd
На Ubuntu-18.04 (amd64) есть непривилегированная версия lxd-3.0.3 (контейнеры со смещением uid, запускаемые пользователем root). В контейнере есть Ubuntu-16.04.5 (amd64). Как настроить pptpd на это? Кажется, что есть проблема с интерфейсом ppp0. Это не доступно.
Вот если фрагмент журнала:
13 февраля 19:21:22 blabla100 pppd[25943]: загружен плагин /usr/lib/pptpd/pptpd-logwtmp.so.
13 февраля 19:21:22 blabla100 pppd[25943]: не удалось открыть устройство /dev/ppp: такого файла или каталога нет
13 февраля 19:21:22 blabla100 pptpd[25927]: modprobe: ОШИБКА: ../libkmod/libkmod.c:586 kmod_search_moddep() не удалось открыть файл moddep '/lib/modules/
13 февраля 19:21:22 blabla100 pptpd[25927]: modprobe: FATAL: модуль ppp_generic не найден в каталоге / lib / modules
13 февраля 19:21:27 blabla100 pptpd[25927]: /usr/sbin/pppd: Вам необходимо создать узел устройства /dev/ppp с помощью
13 февраля 19:21:27 blabla100 pptpd [25927]: выполнение следующей команды от имени root:
13 февраля 19:21:27 blabla100 pptpd[25927]: mknod /dev/ppp c 108 0
13 февраля 19:21:27 blabla100 pppd[25935]: Вам необходимо создать узел устройства /dev/ppp с помощью
выполняя следующую команду от имени root:
mknod /dev/ppp c 108 0Поэтому я думаю, что я должен создать /dev/ppp на хосте, но как разрешить доступ к нему только в этом контейнере, а не в других контейнерах.
1 ответ
Символьное устройство Unix /dev/ppp на хосте это способ доступа к модулю ядра для ppp.ko, Следовательно, вам нужно получить LXD, чтобы связать это символьное устройство с контейнером LXD. Вот как это делается:
$ lxc config device add mypptpcontainer mypppdevice unix-char source=/dev/ppp uid=0 gid=0 mode=0600
где:
mypptpcontainerэто имя вашего контейнера LXD.mypppdeviceэто просто название для этого устройства LXD. Выберите любое имя.- остальные указывают характеристики символьного устройства unix.