Поднимаем сервер
Подключим репозитарий и установим pptp:
на CentOS
rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum -y install pptpd
на Debian/Ubuntu
apt-get install pptpd
Правим конфиг, указывая локальный IP и сеть для клиентов /etc/pptpd.conf
localip 10.0.0.1
remoteip 10.0.0.100-200
Создадим клиента
vi /etc/ppp/chap-secrets
client1 pptpd n80lf0X5YIVZ *
где:
- client1 - имя клиента;
- n80lf0X5YIVZ - пароль клиента;
- * для подключения с любого айпи. Или же можно указать конкретно.
Создадим файл с днс-серверами
vi /etc/ppp/pptpd-options
ms-dns 8.8.8.8
ms-dns 8.8.4.4
Запускаем службу
service pptpd start
Проверяем что порт 1723 слушается
netstat -lapn |grep :1723 tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 11296/pptpd
Добавляем автостарт сервиса:
update-rc.d pptpd enable
Включаем форвардинг на сервере
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf
sysctl -p
Создаем правило NAT для iptables
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
где eth0 наш интерфейс.
Если нужно разрешить соединения клиентов между собой
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT
На этом настройка сервера завершена.
Поднимаем клиент
Устанавливаем клиента
yum -y install pptp
Активируем модуль ядра
modprobe ppp_mppe
Создаем файл, в который вписываем данные клиента ( те же что вписали на сервере)
vi /etc/ppp/peers/pptpserver
pty "pptp 1.2.3.4 --nolaunchpppd"
name client1
password n80lf0X5YIVZ
remotename PPTP
require-mppe-128
Проверяем соединение, выполнив:
- на клиенте
pppd call pptpserver
- на сервере (для CentOS):
tail -f /var/log/messages
- на сервере (для Ubuntu/Debian):
tail -f /var/log/syslog
В логе должно быть:
Sep 25 11:14:17 srv pptpd[11274]: MGR: connections limit (100) reached, extra IP addresses ignored
Sep 25 11:14:17 srv pptpd[11275]: MGR: Manager process started
Sep 25 11:14:17 srv pptpd[11275]: MGR: Maximum of 100 connections available
Sep 25 11:14:27 srv pptpd[11295]: MGR: connections limit (100) reached, extra IP addresses ignored
Sep 25 11:14:27 srv pptpd[11296]: MGR: Manager process started
Sep 25 11:14:27 srv pptpd[11296]: MGR: Maximum of 100 connections available
Поднимаем интерфейс на клиенте
ip route add 10.0.0.0/8 dev ppp0
Проверяем доступность сервера:
ping -c3 10.0.0.1