OpenVPN, Grandstream, FusionPBX, FreeSWITCH, Centos 7

Настроим телефон, чтобы при подключении к интернет он по OpenVPN соединялся с АТС

Установка openvpn:

yum install epel-release
yum install openvpn openssl
yum update

Генерируем сертификаты сервера

CA.CRT:

openssl dhparam -out /etc/openvpn/dh.pem 1024

openssl genrsa -out /etc/openvpn/ca.key 2048

chmod 600 /etc/openvpn/ca.key

openssl req -new -key /etc/openvpn/ca.key -out /etc/openvpn/ca.csr -subj /CN=OpenVPN-CA/

openssl x509 -req -in /etc/openvpn/ca.csr -out /etc/openvpn/ca.crt -signkey /etc/openvpn/ca.key -days 3650

echo 01 > /etc/openvpn/ca.srl

SERVER.CRT:

openssl genrsa -out /etc/openvpn/server.key 2048

chmod 600 /etc/openvpn/server.key

openssl req -new -key /etc/openvpn/server.key -out /etc/openvpn/server.csr -subj /CN=OpenVPN/

openssl x509 -req -in /etc/openvpn/server.csr -out /etc/openvpn/server.crt -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key -days 3650

Создаем /etc/openvpn/server.conf на порт UDP_PORT

proto udp
port UDP_PORT
dev tun

key /etc/openvpn/server.key
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
dh /etc/openvpn/dh.pem

server 10.10.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
client-to-client
cipher BF-CBC
comp-lzo
duplicate-cn
keepalive 10 120
status openvpn-status.log
log openvpn.log
verb 7

Запускаем службу

systemctl enable openvpn@server
systemctl start openvpn@server

Создаем сертификаты клиентов

openssl genrsa -out /etc/openvpn/client1.key 2048

chmod 600 /etc/openvpn/client1.key

openssl req -new -key /etc/openvpn/client1.key -out /etc/openvpn/client1.csr -subj /CN=OpenVPN-Client1/

openssl x509 -req -in /etc/openvpn/client1.csr -out /etc/openvpn/client1.crt -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key -days 3650

Загружаем сертификаты в телефон

/etc/openvpn/ca.crt
/etc/openvpn/client1.crt
/etc/openvpn/client1.key

Для проверки работы — можно запустить клиент со следующим конфигом

client
dev tun
tls-client
remote IP_SERVER UDP_PORT
resolv-retry infinite
proto udp
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
cipher BF-CBC
comp-lzo
reneg-sec 0
ns-cert-type server
verb 3
mute 20