====== Установка PPTP сервера в CentOS 6 ======
Это копия статьи из моей wiki в Rootwelt. Информация могла устареть. Статья в скором времени будет удалена или перенесена в архив.
Тестовое окружение: CentOS 6 x64
Перед установкой очистим таблицу postrouting в iptables и удалим пакеты и настройки PPTP
# iptables --flush POSTROUTING --table nat
# iptables --flush FORWARD
# yum remove -y pptpd ppp
# rm -rf /etc/pptpd.conf
# rm -rf /etc/ppp
Пакет ''pptpd'' доступен в репозитории ''[[https://fedoraproject.org/wiki/EPEL|EPEL]]''.
Сначала подключаем репозиторий
# yum -y install epel-release
Устанавливаем PPTP сервер
# yum -y install pptpd
Редактируем файл ''/etc/pptpd.conf''
# Файл опций, который будет загружен вместо стандартного /etc/ppp/options
option /etc/ppp/options.pptpd
# IP адрес сервера, НЕ НУЖНО указывать внешний IP VPS
localip 172.16.1.1
# Диапазон адресов для клиентов
remoteip 172.16.1.50-99,172.16.1.253
Пример файла ''/etc/ppp/options.pptpd''
name pptpd
# Запрещаем совсем небезопасные протоколы
# Включаем условно безопасные
refuse-pap # Незашифрованный пароль PAP
refuse-chap # Протокол проверки пароля CHAP
refuse-mschap # Протокол проверки пароля MS-CHAP
require-mschap-v2 # Протокол проверки пароля MS-CHAP v2
require-mppe-128 # Использоавть MPPE128 шифрование при проверке пароля
# Первичный и вторичный адрес DNS для Windows клиентов
# DNS от Yandex
ms-dns 77.88.8.8
ms-dns 8.8.8.8
nodefaultroute
proxyarp
lock
nobsdcomp # Отключить сжатие BSD-Compress
novj # Отключить сжатие Вана Якобсона для заголовков
novjccomp # Отключить сжатие идентификатора соединения
nologfd
noipx
Описание опций частично позаимствовано на сайте FIXME
Далее нужно включить пересылку пакетов между интерфейсами ([[https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt|IP forwading]])
echo 1 > /proc/sys/net/ipv4/ip_forward
# либо так sysctl -w net.ipv4.ip_forward=1
/etc/sysctl.conf
Чтобы изменения не потерялись после перезагрузки сервера необходимо добавить настройку в файл ''/etc/sysctl.conf''
Для применения изменений в файле нужно выполнить команду (не требуется если выполнена команда выше)
# sysctl -p /etc/sysctl.conf
Теперь добавим пользователей для подключения к PPTP серверу (файл ''/etc/ppp/chap-secrets'')
# Secrets for authentication using CHAP
# client server secret IP addresses
Joker pptpd H4h4h4FUN *
Batman pptpd GothamLegend *
Настройки для firewall'а
# Разрешаем входящие соединения на порт 1723
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
# Разрешить GRE протокол
iptables -A INPUT -i eth0 -p gre -j ACCEPT
# NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Волшебный MTU
iptables -A FORWARD -p tcp -s 172.16.1.0/24 -j TCPMSS --syn --set-mss 1356
# Подразумевается, что для цепочек FORWARD и OUTPUT установлена политика ACCEPT
# Если это не так, то нужно добавить разрешающие правила
# iptables -A FORWARD -j ACCEPT
# iptables -A OUTPUT -p gre -j ACCEPT
Сохраняем правила и перезапускаем iptables
# service iptables save
# service iptables restart
Добавляем сервисы в автозагрузку
# chkconfig iptables on
# chkconfig pptpd on
Перезапускаем iptables и pptpd
# service iptables start
# service pptpd start
Настройка завершена.
{{tag>linux centos vpn pptp}}