Сборка и установка accel-ppp

В этой статье я приведу пример сборки и установки accel-ppp в Ubuntu Server.

Требования accel-ppp такие:
Современный дистрибутив Linux
Ядро версии 2.6.25 или старше
cmake не младше версии 2.6
libcrypto-0.9.8 или старше (openssl-0.9.8)
libpcre
net-snmp-5.x (Для snmp)
liblua5.1 (для IPoE c DHCP option 82)

Читать далее Сборка и установка accel-ppp

Установка и настройка PPTPd сервера

Ниже опишу как устанавливается и настраивается pptpd.

Команда установки в Ubuntu:

sudo apt-get install ppp pptpd

Откроем к примеру в текстовом редакторе nano файл конфигурации (ctrl+x для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/pptpd.conf

Добавим в конце файла строки которые указывают IP сервера в локальной сети и диапазон для клиентов:

localip 192.168.5.1
remoteip 192.168.5.100-254

Включим авторизацию, шифрование и укажем DNS адреса добавив строки в файл:

sudo nano /etc/ppp/pptpd-options
auth
require-mppe
ms-dns 8.8.8.8
ms-dns 8.8.4.4

Добавим пользователей (* означает что пользователь получит IP автоматически из диапазона):

sudo nano /etc/ppp/chap-secrets
ПОЛЬЗОВАТЕЛЬ1	pptpd	ПАРОЛЬ	"*"
ПОЛЬЗОВАТЕЛЬ2	pptpd	ПАРОЛЬ	"192.168.5.250"

Перезапустим pptpd чтобы изменения в файлах конфигурации применились:

sudo /etc/init.d/pptpd restart

Пример правил iptables для pptpd:

sudo iptables -A INPUT -p gre -j ACCEPT
sudo iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT

Правила ниже нужны если используется форвардинг пакетов.
Командой ifconfig можно посмотреть не отличается ли eth0 от имени сетевой.

sudo iptables -A INPUT -i ppp+ -j ACCEPT
sudo iptables -A OUTPUT -o ppp+ -j ACCEPT
sudo iptables -F FORWARD
sudo iptables -A FORWARD -j ACCEPT
sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
sudo iptables -A POSTROUTING -t nat -o ppp+ -j MASQUERADE

Обязательно сохраним добавленные правила, иначе после перезапуска системы их не будет:

sudo service iptables save

Для включения форвардинга пакетов добавим одну строку в файл:

sudo nano /etc/sysctl.d/99-sysctl.conf
net.ipv4.ip_forward=1

Применим изменения:

sudo sysctl --system

Все, к серверу можно подключаться.

Настройка PPTP (VPN) сервера на Mikrotik

Сначала опишу первый простой вариант настройки PPTP (VPN) сервера на Mikrotik через web-интерфейс или Winbox. В этом варианте к серверу может подключаться только один клиент.
1) Активируем сервер открыв меню «PPP» -> «PPTP Server» -> где поставим галочку «Enabled«.
2) Добавим параметры подключения к серверу, для этого откроем «PPP» -> «Secrets» и добавим:
Name: логин
Password: пароль
Service: pptp
Local Address: внутренний IP роутера, например 192.168.88.1
Remote Address: IP который будет назначен клиенту, например 192.168.88.2
жмем OK.
3) Добавим правило в фаервол чтобы можно было подключатся к серверу из вне, для этого откроем меню «IP» -> «Firewall» и во вкладке «Filter Rules» добавим правило:
Chain: input
Dst. Address: внешний IP роутера
Protocol: tcp
Dst. Port: 1723
In. Interface: WAN порт роутера, например ether1-gateway
Action: accept
жмем OK, на этом простая настройки завершена.

 

Теперь опишу вариант настройки из командной строки. К серверу может подключатся много клиентов и они будут получать IP по DHCP.

Включение pptp сервера:

interface pptp-server server set enabled=yes

Просмотр параметров pptp сервера:

interface pptp-server server print

Добавление интерфейса pptp сервера:

interface pptp-server server add add name=pptpserver user=пользователь

Установка пула адресов которые будут выдаваться подключившимся пользователям:

ip pool add name="pptp-pool" ranges=172.20.1.10/28

Добавление профиля для pptp сервера:

ppp profile add name="pptp" local-address=172.20.1.11 remote-address=pptp-pool use-compression=no use-vj-compression=no use-encryption=default only-one=default change-tcp-mss=yes

Добавление данных для аутентификации:

ppp secret add name="пользователь" service=pptp caller-id="" password="пароль" profile=pptp

Также необходимо разрешить трафик по протоколу TCP на порт 1723 из вне и разрешить протокол GRE.
Для этого добавляем первое правило, chain = input, protocol = tcp, Dst.Port = 1723, action = accept.
И второе, chain = input, protocol = gre, action = accept.
Эти два правила необходимо разметить перед стандартными запрещающими правилами, иначе они не будут работать.

В параметрах созданного VPN соединения в Windows необходимо выбрать тип PPTP и шифрование «необязательно, подключатся даже без шифрования».

Немного полезной информации:
PAP (Password Authentication Protocol) — протокол проверки подлинности, проверяет имя и пароль.
CHAP (Challenge Handshake Authentication Protocol) — широко распространённый протокол, в котором серверу передается не пароль пользователя, а косвенные сведения о нём.
MS-CHAP (Microsoft Challenge Handshake Authentication Protocol) — протокол от Microsoft для проверки подлинности удалённых компьютеров.