Установка PPTPD-сервера
Debian8
1 |
# apt-get install pptpd |
Centos7
1 |
# yum install pptpd |
Настройка PPTPD-сервера
1 |
# cp /etc/pptpd.conf /etc/pptpd.conf~ |
1 |
# nano /etc/pptpd.conf |
1 2 3 4 5 6 7 8 9 10 11 |
# Указывает демону pptpd на путь к файлу с остальными настройками PPTP-соединения, такими как используемое шифрование канала и способ авторизации PPTP-пользователей option /etc/ppp/pptpd-options # Передача PPTP-серверу лог аутентификации пользователей через стандартную функцию logwtmp, что даст возможность автоматизировать процесс сбора информации по заходам клиентов logwtmp # Данная опция позволяет явным образом указать диапазон IP-адресов или отдельный IP-адрес, который будет использоваться в качестве адреса PPTP-сервера в виртуальной сети. Если указан один IP-адрес, то он применяется для всех PPTP-клиентов, в противном случае (если указан диапазон адресов) каждому клиенту назначается свой виртуальный адрес сервера, поэтому их количество должно совпадать со значением, описанным в опции remoteip. Задавать несколько IP-адресов сервера необходимо в тех случаях, когда для каждого клиента указывается персональный IP-адрес (например, в файле chap-secrets), благодаря чему можно ограничить доступ каждого клиента в определенный участок локальной сети на основании правил iptables. Параметр ip-address может выглядеть следующим образом: 10.0.0.1, когда указан один адрес для всех клиентов, либо 10.0.0.2-254, когда указывается диапазон адресов. localip 10.0.0.1 # Диапазон адресов для клиентов PPTP-сервера remoteip 10.0.0.100-200 |
Настройка файла с опциями pptp-сервера
Debian8
1 |
# cp /etc/ppp/pptpd-options /etc/ppp/pptpd-options~ |
1 |
# nano /etc/ppp/pptpd-options |
Centos7
1 |
# cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd~ |
1 |
# nano /etc/ppp/options.pptpd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# Название сервиса(имя) для аутентификации. Должно совпадать с именем во втором поле файла аутентификации /etc/ppp/chap-secrets entries name pptpd # Запрет авторизации по старым протоколам аутентификации refuse-pap refuse-chap refuse-mschap # Аутентификация пользователей по самому защищенному протоколу MS CHAP v2 require-mschap-v2 # Максимально возможный для PPTP механизм шифрования require-mppe-128 # Всего в конфигурационном файле может существовать две записи этой опции. С ее помощью можно указать первичный и вторичный DNS сервера для PPTP-клиентов ms-dns 8.8.8.8 ms-dns 8.8.4.4 #Включение этого параметра позволяет PPTP-клиентам работать с локальной сетью без добавления правил маскарадинга (NAT) в цепочки брандмауэра iptables. #Данная функция действует через средства ARP (Address Resolution Protocol) и его таблицы. #Однако таким образом нельзя регулировать доступ в разные подсети клиентов и доступ конкретных клиентов. #Чтобы эта функция работала, необходимо, чтобы осуществлялось перенаправление пакетов ядром (чтобы функция ip_forward была равна единице). #Если используются цепочки iptables, этот параметр следует закомментировать. #По умолчанию данная опция включена. #proxyarp #Выполняем блокировку соединения lock #Отключаем компрессию nobsdcomp #Параметры запрещают компрессию, которая используется в ранних клиентах Windows 9x/Mе. По # умолчанию опция включена. novj novjccomp #Данная опция блокирует запись в системный журнал через системную функцию stderr. По умолчанию она активна. Для получения отладочной информации ее необходимо закомментировать nologfd |
Настройка файла для аутентификации пользователей
1 |
# nano /etc/ppp/chap-secrets |
1 2 3 4 |
# Если пользователь должен динамически получать IP-адрес из диапазона remoteip user1 pptpd mypassword1 * # Если мы хотим привязать определённый IP к логину: user2 pptpd mypassword2 10.0.0.120 |
1 |
# chmod 600 /etc/ppp/chap-secrets &&a chown root:root /etc/ppp/chap-secrets |
Более детальное описание настроек всех файлов доступно здесь
http://open-life.org/blog/1288.html
http://compress.ru/article.aspx?id=18183
Перезапуск PPTPD-сервера
Debian8
1 |
# /etc/init.d/pptpd restart |
Centos7
1 |
# systemctl restart pptpd.service |
Проверка запущен ли pptp-сервер
1 |
# ps ax | grep [p]ptpd |
1 |
2007 ? Ss 0:00 /usr/sbin/pptpd --fg |
1 |
# netstat -nlptu | grep [p]ptp |
1 |
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 2007/pptpd |
Добавляем PPTPD-сервис в автозагрузку
1 |
# systemctl enable pptpd.service |
Настройка Iptables для корректной работы PPTP-подключения клиентов
Установим iptables-persistent
1 |
# apt-get install iptables-persistent |
Разрешить входящее подключения на порт PPTP-сервера(1723) по протоколу TCP
1 |
# iptables -A INPUT -p tcp --dport 1723 -j ACCEPT |
Разрешить входящее подключения по протоколу GRE, который используется для PPTP-туннеля
1 |
# iptables -A INPUT -p gre -j ACCEPT |
Сохраним изменения и перезапустим iptables для проверки того, что изменения сохраняются после рестарта iptables.
Debian8
1 |
# service netfilter-persistent save && service netfilter-persistent restart |
Centos7
1 |
# service iptables save && systemctl restart iptables |
Настройка pptp-клиента под Windows(например, Windows 7)
1 2 |
Пуск->Панель управления->Центр управления сетями и общим доступом->Настройка нового подключения или сети->Подключение к рабочему месту->Использовать мое подключение к Интернету(VPN)->В поле Интернет-адрес указать внешний IP-адрес PPTP-сервера В поле Имя местозначения – произвольное имя |
Установить checkbox — Не подключать сейчас,только выполнить установку для подключения в будущем
Далее ввести логин и пароль пользователя, указанного в файле /etc/ppp/chap-secrets
Также следует учитывать, что по умолчанию в настройках VPN-клиентов Windows указано автоматическое изменение основного шлюза на новый, который соответствует IP-адресу, выдаваемому PPTP-сервером. Поэтому если подключиться, то весь трафик будет идти через PPTP-сервер. Для отключения этой функции необходимо зайти во вкладку Сеть, выбрать Интернет-протокол TCP/IP, нажать кнопку Свойства, а затем в новом окне — кнопку Дополнительно. Именно в этом окне следует убрать флажок Использовать шлюз по умолчанию.
Debian8
В логах pptp-сервера ( по умолчанию в Debian в /var/log/syslog)
1 2 3 4 5 6 7 8 9 10 |
Jul 5 11:09:46 debian8 pptpd[2132]: CTRL: Client 159.224.XXX.YYY control connection started Jul 5 11:09:46 debian8 pptpd[2132]: CTRL: Starting call (launching pppd, opening GRE) Jul 5 11:09:46 debian8 pppd[2133]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded. Jul 5 11:09:46 debian8 pppd[2133]: pppd 2.4.6 started by root, uid 0 Jul 5 11:09:46 debian8 pppd[2133]: Using interface ppp0 Jul 5 11:09:46 debian8 pppd[2133]: Connect: ppp0 /dev/pts/1 Jul 5 11:09:47 debian8 pppd[2133]: peer from calling number 159.224.XXX.YYY authorized Jul 5 11:09:47 debian8 pppd[2133]: MPPE 128-bit stateless compression enabled Jul 5 11:09:49 debian8 pppd[2133]: local IP address 10.0.0.1 Jul 5 11:09:49 debian8 pppd[2133]: remote IP address 10.0.0.100 |
Centos7
По умолчанию в Centos /var/log/messages
1 |
# tail -f /var/log/messages |
Для того, чтобы PPTP-клиенты смогли общаться между собой дополнительно настраиваем iptables – цепочку FORWARD в таблице filter (если политика по умолчанию для цепочки FORWARD установлена в DROP)
1 |
# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT |
1 |
# iptables -A FORWARD -s 10.0.0.0/24 -i ppp+ -j ACCEPT |
Debian8
1 |
# service netfilter-persistent save && service netfilter-persistent restart |
Centos7
1 |
# service iptables save && systemctl restart iptables |
Настройка PPTP-сервера как default-шлюз для клиентов:
1.Проверяем,что УСТАНОВЛЕН/АКТИВИРОВАН checkbox в настройках по умолчанию для Windows-клиентов как показано выше
2.Настраиваем маршрутизацию и NAT для внутренней сети на PPTP-сервере
1 |
# nano /etc/sysctl.conf |
1 |
net.ipv4.ip_forward=1 |
1 |
# sysctl -p |
1 |
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
Debian8
1 |
# service netfilter-persistent save && service netfilter-persistent restart |
Centos7
1 |
# service iptables save && systemctl restart iptables |
1 |
# iptables -t nat –L |
После подключения к PPTP-серверу шлюз по умолчанию, через который клиент будет выходить в Интернет, соответствует IP-адресу, который PPTP-сервер выдал клиенту при подключении
(10.0.0.100)
Источник:
https://www.digitalocean.com/community/tutorials/vpn-pptp-ru
http://wiki.enchtex.info/howto/ubuntu/pptpd-ubuntu-8.04
http://kaplunenko.name/setup-pptp%E2%80%93vpn-server-ubuntu-10-04/
http://open-life.org/blog/1288.html
http://compress.ru/article.aspx?id=18183