D-Link DVG-2102S & PPTP

А вот захотелось мне подключить пару телефонов в удаленном офисе к Asterisk.
И чтобы не мучаться с NAT через который SIP крайне плохо ходит,
будем подключать через VPN.

Настройка на ubuntu-server крайне простая:
устанавливаем pptpd:
$ sudo apt-get install pptpd
дописываем в /etc/pptp.conf

localip 192.168.10.1
remoteip 192.168.10.2-254

localip — адрес который будет назначен серверу
remoteip — диапазон адресов в который попадут клиенты
приводим /etc/ppp/pptpd-options к виду
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
mppe-stateful
proxyarp
nodefaultroute
lock
nobsdcomp

Hint: это почти дефолтный конфиг, за исключением добавленной опции включение MPPE Statefull mode, которую очень хотят устройства D-Link

в /etc/ppp/chap-secrets указываем пользователей и их пароли
user1 pptpd password1 "*"
где первый столбик — имя пользователя, второй должен совпадать с параметром name из pptpd-options, третий — пароль, четвертый IP адрес (или «*» для выдачи динамичного)
после чего перезагружаем pptpd
$ sudo service pptpd restart
Опять жеHint: если производится перенастройка и соединения ppp* уже подняты, то еще необходимо прибить все процессы pppd сделать это можно страшной командой:
$ for pid in `ps aux | grep pppd | grep pptpd-options | awk '{print $2;}'`; do sudo kill $pid; done

…и разрешаем на фаерволе протокол GRE и соответствующий порт:
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT

На это настройка сервера закончена и переходим к шлюзу:

В шлюзе, прописать тип соединения PPTP, адрес сервера, имя пользователя, пароль. Second Access IP Type настроить по вкусу, это адрес в удаленной локальной сети. В настройках VoIP Setup адрес сервера Asterisk будет тот самый, который указан в строке localip файла pptp.conf (в примере 192.168.10.1), остальное как обычно.

В чем фишка: подключаем шлюз в любую сетку с выходом в интернет и не обрезанным GRE-протоколом и он сам подключится к нашему астериску.