Лучший VPS сервер, который мне удалось найти: https://justhost.ru

  • Больше 30 стран локаций
  • Возможность 50 раз сменить страну и ip адрес вашего сервера
  • Все тарифы подходят для VPN и Proxy
  • Установка Mikrotik routerOS и linux из коробки
  • Оплата Российскими картами
  • Стоимость от 79 рублей в месяц за промо тариф

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

Загрузка необходимых модулей

Добавьте следующие модули в файл /etc/modules:

sudo nano /etc/modules
ppp-compress-18
ppp_mppe
ppp_deflate
ppp_async
pppoatm
ppp_generic
ip_gre
nf_nat_pptp

Включение IP Forwarding

В файле /etc/sysctl.conf раскомментируйте строку:

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1

Примените изменения:

sudo sysctl -p

Проброс GRE и PPTP (если сервер за NAT)

Необходимо пробросить протокол GRE и порт 1723/TCP на IP-адрес LXC-контейнера.

Добавьте правила в конфигурацию ferm:

sudo nano /etc/ferm/ferm.conf
# REAL IP
@def $myip = (XXX.XXX.XXX.XXX/32);

# LXC PPTP IP
@def $pptpip = (XXX.XXX.XXX.XXX/32);

@def &FORWARD($proto, $dstaddr, $port, $dest, $dport) = {
 table filter chain FORWARD daddr $dest proto $proto dport $port ACCEPT;
 table nat chain PREROUTING daddr $dstaddr proto $proto dport $port DNAT to "$dest:$dport";
}

@def &FORWARD_PROT($proto, $dstaddr, $dest) = {
 table filter chain FORWARD daddr $dest proto $proto ACCEPT;
 table nat chain PREROUTING daddr $dstaddr proto $proto DNAT to "$dest";
}

# PPTP redirect
&FORWARD(tcp, $myip,1723, $pptpip,1723);
&FORWARD(udp, $myip,47, $pptpip,47);
&FORWARD_PROT(gre, $myip, $pptpip);

Примените правила:

sudo service ferm reload

Добавление устройства в LXC-контейнер

Определение параметров устройства

sudo ls -ls /dev/ppp

Пример вывода:

crw------- 1 root root 108, 0 /dev/ppp

Разрешение доступа к устройству

sudo nano /var/lib/lxc/[container_name]/config
lxc.cgroup.devices.allow = c 108:0 rwm

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

Установка пакетов

apt-get install wget nano iptables

Настройка rc.local

nano /etc/rc.local
#!/bin/sh -e
exit 0

Создание systemd-сервиса

nano /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Активация сервиса

touch /etc/rc.local
chmod +x /etc/rc.local
systemctl enable rc-local
systemctl start rc-local.service
systemctl status rc-local.service

Инициализация устройства PPP

nano /etc/rc.local
mknod /dev/ppp c 108 0
chmod 0666 /dev/ppp
service pptpd restart

Установка PPTP-сервера

wget https://ruii.ru/scripts/pptp.sh

Ответьте на вопросы скрипта, затем перезагрузите контейнер.


Включение отладки

nano /etc/ppp/options
debug

Перезапуск сервисов:

service rsyslog restart
service pptpd restart

TAGS: PPTP, LXC, VPN, Linux, PPP, GRE, iptables