====== Установка 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}}