8(499)-709-97-83
Работаем с 8:00 до 19:00

Подключение Asterisk по VPN к оператору связи

  • 17 июля 2015

Сейчас все чаще и чаще пользователи стараются подключать свои АТС к операторам связи через VPN канал, это чуть более безопасно, чем подключение через публичную сеть, а у некоторых сидящих в бизнес-центрах компаний просто нет выхода, так как местный интернет провайдер блокирует определенные порты, и навязывает свои услуги связи. Из всех возможных вариантов наиболее оптимальным является выбор между PPTP и OpenVPN. Point-To-Point Tunneling Protocol (PPTP) совместим с большинством мобильных устройств и позволяет поднять свой VPN очень быстро. И хотя PPTP менее безопасен, чем OpenVPN, он быстрее и использует меньше ресурсов процессора.

В сегодняшней статье мы расскажем как установить и настроить PPTP клиента, маршруты и Asterisk для подключения к оператору связи через VPN.

  

Установка PPTP

Добавляем репозиорий EPEL и устанавливаем нужные нам пакеты:

CentOS 6 32-Bit

rpm –Uvh  http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmyum -y install ppp pptpd pptp-setup pptp

CentOS 6 64-Bit

rpm –Uvh  http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyum -y install ppp pptpd pptp-setup pptp

CentOS 7

rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpmyum -y install ppp pptpd pptp-setup pptp

Перезагружаем PPTP

CentOS 6:service pptpd restart
CentOS 7:systemctl restart pptpd.service

Проверяем, работает ли и принимает соединения:

netstat -alpn | grep pptpd
 

Настройка PPTP

Теперь создадим новый файл /etc/ppp/peers/pptpoperator и добавим туда следующие строчки, заменяя логин, пароль и IP-адрес-VPN-сервера Вашими значениями:

pty "pptp  IP-адрес-VPN-сервера  --nolaunchpppd"
name Логин
password Пароль
remotename PPTP
refuse-chap
nodeflate
mtu 1492
nobsdcomp
noauth
persist
nodefaultroute
maxfail 0
unit 0

На VPN-сервере могут поддерживаться различные протоколы аутентификации, вот некоторые из них:

refuse-pap                    # Незашифрованный пароль PAP
refuse-chap # Протокол проверки пароля CHAP
refuse-mschap # Протокол проверки пароля MS-CHAP
require-mschap-v2 # Протокол проверки пароля MS-CHAP v2
require-mppe-128 # Использоавть MPPE128 шифрование при проверке пароля

Настройки Iptables

iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT

service iptables save
service iptables restart
service pptpd restart

Настройки firewalld

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT 
firewall-cmd --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT

firewall-cmd -reload
systemctl restart pptpd.service

Теперь мы можем “поднять” туннель с PPTP-сервером. В команде pppd call необходимо использовать имя, которое Вы дали файлу с пирами (peers) в директории /etc/ppp/peers/. В нашем примере мы назвали pptpoperator, так что команда будет следующая :

pppd call pptpoperator

Теперь командой ifconfig проверяем, поднялся наш туннель или нет. Если все сделано правильно, то Вы должны увидеть следующее:

ppp0: flags=4305  mtu 1492
inet 10.81.26.14 netmask 255.255.255.255 destination 109.234.34.68
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 9 bytes 66 (66.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10 bytes 76 (76.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Если PPTP не поднялся, советуем перезагрузить сервер и попробовать еще раз pppd call pptpoperator

 

Теперь необходимо настроить маршрутизацию на Вашу приватную сеть через интерфейс ppp0. В нашем примере АТС оператора имеет внутренний IP-адрес 192.168.20.0. Так что добавим маршрут к нему через интерфейс ppp0 :

ip route add 192.168.20.0 dev ppp0

Теперь переходим к настройкам Asterisk. В зависимости от типа подключения (с привязкой по ip адресу, или с использованием схемы регистрации логином паролем), конфигурация транков будет отличаться:

nano /etc/asterisk/sip.conf

С регистрацией:

[general]
register => login:pass@192.168.20.52:5060/Номер_телефона_если_есть


[Operator]
type=friend
host=192.168.20.52
defaultuser=*******
secret=******
insecure=port,invite
canreinvite=no
nat=force_rport,comedia
qualify=no
context=incoming_calls
dtmfmode=rfc2833
disallow=all
allow=alaw,ulaw,g729

Без регистрации:

[Operator]
type=friend
host=192.168.20.52
insecure=port, invite
disallow=all
allow=g729
canreinvite=no
context=from-trunk
dtmfmode=rfc2833
qualify=no

Теперь делаем sip reload в консоли Asterisk и проверяем регистрацию и прохождение вызовов, все должно работать.

  

Все настройки PPTP, сделанные выше после перезагрузки сервера, работать не будут, пока вы заново не пропишите маршрут и не сделаете pppd call pptpoperator. Для того, чтобы сделать маршрут постоянным и PPTP туннель поднимался автоматически, сделаем следующие настройки.

Создаем файл  /etc/sysconfig/network-scripts/ifcfg-pptp со следующим содержанием:

DEVICE=ppp0
TYPE=Modem
ONBOOT=yes
USERCTL=yes
PEERDNS=no
PROVIDER=pptpoperator
PERSIST=yes
DEMAND=no
DEFROUTE=no

Для маршрута создаем файл /etc/sysconfig/network-scripts/route-pptp со следующим содержанием:

192.168.20.0/25 via 0.0.0.0 dev ppp0

Поднимаем сетевой интерфейс

ifup pptpoperator

Теперь даже после перезагрузки сервера маршруты ppp0 останутся, и PPTP туннель поднимется автоматически.

На этом наша настройка закончена. Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: Asterisk, VPN