====== Установка PPTP сервера в CentOS 7 ======
Это копия статьи из моей wiki в Rootwelt. Информация могла устареть. Статья в скором времени будет удалена или перенесена в архив.
Всё настраивается [[linux:centos:vpn_pptp_centos6|также, как в CentOS 6]]. Различие только в настройках firewall (в CentOS 7 используется firewalld вместо привычного iptables).
Устанавливаем 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/Google
ms-dns 77.88.8.8
ms-dns 8.8.8.8
nodefaultroute
proxyarp
lock
nobsdcomp # Отключить сжатие BSD-Compress
novj # Отключить сжатие Вана Якобсона для заголовков
novjccomp # Отключить сжатие идентификатора соединения
nologfd
noipx
Далее нужно включить пересылку пакетов между интерфейсами ([[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
Чтобы изменения не потерялись после перезагрузки сервера необходимо добавить настройку ''net.ipv4.ip_forward = 1'' в файл ''/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 можно двумя способами.
**Способ первый.**
# firewall-cmd --permanent --zone=public --add-port=1723/tcp
**Способ второй (рекомендуемый для firewalld)**
Добавляем новый сервис PPTP
# firewall-cmd --permanent --new-service=pptp
Отредактируем файл ''/etc/firewalld/services/pptp.xml''
Добавляем сервис в firewalld
# firewall-cmd --permanent --zone=public --add-service=pptp
Осталось включить NAT, разрешить GRE и [[https://www.opennet.ru/docs/RUS/LARTC/x2657.html|исправить размер MTU]]
# firewall-cmd --permanent --zone=public --add-masquerade
# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT
# firewall-cmd --permanent --direct --add-passthrough ipv4 -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# firewall-cmd --reload
Добавляем сервис в автозагрузку и запускаем его
# systemctl enable pptpd.service
# systemctl start pptpd
При необходимости можно удалить **firewalld** и вернуть привычный **iptables**
EOM
{{tag>linux centos vpn pptp}}