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.