Эта статья - результат адаптации вот этой - PPTP VPN сервер в контейнере LXC на Ubuntu 16.04

Добавляем устройство ppp в профиль или контейнер LXD

Добавление профиля и устройства в него:

sudo lxc profile create device_ppp
sudo lxc profile device add device_ppp dev_ppp unix-char path=/dev/ppp

И назначаем профиль контейнеру:

sudo lxc profile assign pptp device_ppp,default

Тут важно, что нужно перечислить все профили, назначаемые контейнеру.

В этом случае профиль можно не создавать.

sudo lxc config device add <ctname> dev_ppp unix-char path=/dev/ppp

В /etc/sysctl.conf включать net.ipv4.ip_forward=1 не обязательно.
У меня все заработало и с закомментированной строкой net.ipv4.ip_forward=1 на хосте.

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

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

sudo apt-get install wget nano iptables iptables-persistent

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

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
Включаем сервис:

 sudo systemctl enable pptpd

В файлике /etc/pptpd.conf нужно прописать localip. В результате он будет выглядеть так:

option /etc/ppp/pptpd-options
logwtmp
localip 192.168.77.133
remoteip 10.1.0.1-100

Без iptables клиенту будет доступен только сам контейнер. Для того, чтобы работала сеть нужно создать правило iptables.

sudo iptables -t nat -A POSTROUTING -j SNAT --to **VPNServer-IP-Address**
sudo iptables-save | sudo tee /etc/iptables/rules.v4

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-lxd_container_on_ubutnu_18.04_host.txt
  • Last modified: 2019/02/11 09:13
  • by 127.0.0.1