Установка pptpd-server на Debian 8 с автоматическим прописыванием маршрутов

Материал из wiki.mohax.kh.ua
Перейти к: навигация, поиск

===Устанавливаем и настраиваем pptpd===
apt-get install ppp pptpd
В следующих файлах проверяем\дописываем строки:
/etc/pptpd.conf
option /etc/ppp/pptpd-options
logwtmp
localip 172.16.77.254 - внутренний адрес сервера
remoteip 172.16.77.100-253 - адреса, выдаваемые клиентам
/etc/ppp/pptpd-options
name pptpd - имя сервера
refuse-eap - запрещаем авторизацию по старым протоколам
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2 - аутентификация по самому защищенному протоколу
require-mppe-128 - максимально возможный механизм шифрования
ms-dns 8.8.8.8 - передача клиенту DNS серверов
ms-dns 8.8.4.4
#proxyarp - комментируем, что-бы клиенты могли работать с внутренней сетью
lock - блокировка соединений
nobsdcomp - отключаем BSD компрессию
novj - отключаем компрессию, используемую в старых windows
novjccomp
nologfd - блокируеv запись в системный журнал через системную функцию stderr
auth
require-mppe
Создаем лог\пасс для клиентов в файле /etc/ppp/chap-secrets
user pptpd password 172.16.77.1 - для выдачи конкретного адреса
user pptpd password * - для выдачи свободного адреса из диапазона, прописанного в /etc/pptpd.conf
перезапускаем pptpd командой
/etc/init.d/pptpd restart
Для добавления pptpd в автозагрузку надо выполнить следующие команды:
cd /etc/systemd/system/multi-user.target.wants/
ln -s /lib/systemd/system/pptpd.service
Для того, чтобы клиенты смогли выходить в интернет через наш сервер:
Создадим файл /etc/nat, и запишем в него строки:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t filter -A INPUT -p gre -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -t filter -A FORWARD -i ppp+ -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source [IP сервера]

Сделаем файл исполняемым:
chmod +x /etc/nat
Добавим в конец файла /etc/network/interfaces строку:
post-up /etc/nat
Для прописывания маршрутов после подключения клиентов создадим файл /etc/ppp/ip-up.local и запишем след. строки
#!/bin/bash

if [ "$5" = "172.16.77.1" ]; then
route add -net 172.16.7.0 netmask 255.255.255.0 gw $5 $1
- $5 это адрес, выданный pptp клиенту, $1 это имя интерфейса
chmod +x /etc/ppp/ip-up.local - Делаем файл исполняемым
/etc/init.d/pptpd restart - перезагружаем pptpd