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

где:

  1. mypptpcontainer это имя вашего контейнера LXD.
  2. mypppdevice это просто название для этого устройства LXD. Выберите любое имя.
  3. остальные указывают характеристики символьного устройства unix.
Другие вопросы по тегам