На хосте Ubuntu 16.04 с LXC развернут контейнер c Ubuntu 16.04.

Настройка хоста

На хосте прописываем загрузку модулей в /etc/modules:

tun
ppp-compress-18
ppp_mppe
ppp_deflate
ppp_async
pppoatm
ppp_generic
ip_gre

Также нужно на хосте разрешить форвардинг пакетов в iptables. Для этого раскомментируем в файлике /etc/sysctl.conf строку:

net.ipv4.ip_forward=1

и применим изменения:

sudo sysctl -p

Добавляем устройство в контейнер LXC

Это акутально для старых версий lxc - Ubuntu 16.04 и более старых.
В более новых - LXC\LXD. О них ниже.
В конфигурации контейнера /var/lib/lxc/[container_name]/config прописываем разрешения на работу с устройством /dev/ppp.
Сначала на хосте смотрим параметры этого устройства:

ls -ls /dev/ppp
0 crw------- 1 root root 108, 0 Jun  8 21:19 /dev/ppp

Отсюда берем значения 108 и 0 и прописываем их в /var/lib/lxc/[container_name]/config:

lxc.cgroup.devices.allow = c 108:0 rwm

Настройка контейнера

Устанавливаем то что нужно:

sudo apt-get install wget nano iptables

Заходим в контейнер и прописываем в /etc/rc.local следующее:

 iptables -t nat -A POSTROUTING -j SNAT --to `ifconfig eth0 | grep 'inet addr' | awk {'print $2'} | sed s/.*://`
 mknod /dev/ppp c 108 0
 chmod 0666 /dev/ppp
 service pptpd restart

Скачиваем скрипт для быстрой настройки PopTop:

wget https://raw.github.com/cwaffles/ezpptp/master/ezpptp.sh

В скрипте упоминается адаптер venet, однако в lxc он перeименовывается в eth0, поэтому:

sed -i 's/venet0:0/eth0/g' ezpptp.sh
chmod +x ezpptp.sh & sudo ./ezpptp.sh

Отвечаем на вопросы скрипта, перезагружаем контейнер и проверяем. Если ваш PPTP VPN аходится за NAT, то пробрасываем к нему GRE и PPTP - порты 47 UDP и 1723 TCP

Poptop сыпет логи в syslogd в daemon.debug. Поэтому в Ubuntu 16.04 нужно отредактировать файлик /etc/rsyslog.d/50-default.conf или добавить новый в этой же диреткории и дописать туда:

daemon.debug /var/log/pptpd.log

В файлик /etc/ppp/options нужно добавить

debug

А затем перезапустить rsyslogd и pptpd:

sudo service rsyslog restart
sudo service pptpd restart
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/pptp_vpn_server_in_lxc_container_on_ubutnu_16.04_host.txt
  • Last modified: 2019/02/11 09:13
  • by 127.0.0.1