Сразу оговорюсь, что для того, чтоб не замарачиваться на сторонних проблемах я буду использовать ядро с уже включённым в него модулем ppp_mppe, тобишь ядро 2.6.15 или старше... Сами процессы сборки в данной статье описаны не будут, ввиду разных вкусов сборки, единственное что быдет описываться, так это какие параметры при сборке пакетов просто обязаны присутствовать...
Вобщем начнём.
Нам понадобятся: ядро, ppp, pptpd
Собираем ядро с поддержкой mppe шифрования. Далее собираем ppp, также с потдержкой mppe(параметр включен по умолчанию), и только после этого собираем pptpd :)...
После сборки и установки переходим к редактированию конфигов...
pptpd.conf:
debug #очень полезная опция на стадии отладки
option /etc/ppp/options.pptpd # путь до следующего конфига
localip 192.168.2.254 #адрес сервера внутри VPN
remoteip 192.168.2.2-252 #диапазон адресов для удалённых машин
options.pptpd:
auth
debug #полезная опция на стадии отладки
require-chap
require-mschap
require-mschap-v2
local
defaultroute
192.168.2.254:
ms-dns XX.XX.XX.XX #адрес локального, либо глобального DNS сервера
require-mppe #включаем потдержку шифрования
require-mppe-40
require-mppe-128
chap-secrets:
# имя юзера - сервер - пароль - адресс по умолчанию
test * test *
стартуем сервис pptpd и проверяем возможность подключения: под хрёй создаём подключение на рабочем столе и смотрим на результат, при первой попытке конекта может вылезти ошибка 800, не обращая на неё внимания закрываем все окна, открываем заново окно подключения и пробуем снова... Если не получилось подключиться смотрим логи...
Далее надо перерулять трафик...
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
iptables -A INPUT -p ALL -j ACCEPT
iptables -A FORWARD -p ALL -j ACCEPT
iptables -A OUTPUT -p ALL -j ACCEPT
iptables -t NAT -A POSTROUTING -o eth0 -j MASQUERADE # куда перенаправляем трафик
iptables -I POSTROUTING 1 -t NAT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1024 # для большей совместимости с хрёй
Вот вроде и всё... Конечно сюда не мешало бы прикрутить какой нить биллинг, но это уже как нить в следующий раз...
PS: Данная статья не притендует на полноту описания и его коректность, но, на данный момент, у меня нет возможности всё это расписать более подробно и коректно... :( Со временем эта статья будет подправляться и дополняться, а сейчас... просто рабочие конфиги...