Установка PPTP сервера на OpenVZ контейнер
# modprobe ppp_deflate
# modprobe ppp_mppe
# vzctl set 001 --features ppp:on --save
# vzctl set 001 --devices c:108:0:rw --save# modprobe ppp_async
Где 001 номер контейнера. Запускаем контейнер и внутри него выполняем:
# chmod 600 /dev/ppp# mknod /dev/ppp c 108 0
Мы включили модуль ppp. Теперь нам надо включить модули натирования. Стопим контейнер снова и на ноде выполняем:
# vzctl set 001 --save --iptables "ip_conntrack iptable_filter iptable_mangle ipt_state iptable_nat ip_nat_ftp ip_conntrack_ftp"
Запускаем контейнер. Затем настройка будет происходить в самом контейнере. Установим pptpd
# apt-get install pptpd
Приводим файл /etc/ppp/pptpd-options примерно к такому содержанию:
name pptpd #имя сервера
refuse-pap #отключаем аутентификацию pap, chap, mschap
refuse-chap
refuse-mschap
require-mschap-v2 #включаем аутентификацию mschap v2
require-mppe-128 #включаем 128 битное шифрование
ms-dns 8.8.8.8 #DNS-сервер
logfile /var/log/pptpd.log #куда писать логи
nodefaultroute
lock
nobsdcomp
Приводим файл /etc/pptpd.conf примерно к такому виду:
option /etc/ppp/pptpd-options
logwtmp
localip 192.168.0.1 #локальный ip сервера
remoteip 192.168.0.2-254 #ip клиентов
bcrelay venet0:0
Создаём логины и пароли пользователей в файле /etc/ppp/chap-secrets:
# Secrets for authentication using CHAP
# client server secret IP addresses
user pptpd password *
Перезапускаем сервер:
# /etc/init.d/pptpd restart
Теперь пропишем в файле /etc/rc.local команду натирования, чтобы разрешить нашим клиентам доступ в интернет. Перед exit 0 пишем:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o venet0 -j SNAT —to-source внешний ip контейнера
А в /etc/sysctl.conf разрешим ip-форвардинг, раскомментировав строку:
net.ipv4.ip_forward=1
Пробуем подключиться. Если не удалось, то смотрим лог-файл, который мы указали выше и разбираемся с ошибками.
P.S. Иногда требуется включить модуль nat на ноде, хотя по умолчанию он обычно включен. Для этого выполняем:
# modprobe iptable_nat