Понадобилось как-то поднять ВПН туннель между рутером и Астериск. В-первую очередь, для обхода NAT и немного поднять секьюрность. Так как в качестве рутера была Cisco, то решили поднимать IPSec. Кошку настраивал не я, так что не смогу показать ее конфиги. Для тех, кому интересно как настроить на CentOS 6, прошу под кат.Итак, мы имее  — VDS  под управление CentOS 6, на котором поднят Asterisk + FreePBX 2.11. Сервер с одним реальным адресом.

Вначале установим пакеты для Ipsec

yum install openswan

Затем нужно создать виртуальную подсеть на сервере. Типа, как будто сервер является Линукс рутером. Эту сетку нужно будет указать на циске.

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:1

Здесь я скопировал loopback интерфейс. Именно он будет являться LAN адресом для нашей виртуальной сети, таким себе шлюзом.

Настройки сетевушки ifcfg-lo:1

DEVICE=lo:1
IPADDR=172.16.255.1
NETMASK=255.255.255.0
NETWORK=172.16.255.0
BROADCAST=172.16.255.255
ONBOOT=yes

За Centos есть виртуальная локальная сеть — 172.16.255.0./24

Поднимаем ее

ifconfig lo:1 up

Настраиваем перенаправление пакетов в ядре. Редактируем  файл — /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 1
#disable ICP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

Применяем правила

sysctl -p

Теперь переходим к настройке OpenSwan. Редактируем файл — /etc/ipsec.conf. Привожу свой конфиг.

config setup
        interfaces=%defaultroute
        klipsdebug=all                 #enable debugging
        plutodebug=all
        protostack=netkey
        nat_traversal=yes
        virtual_private=%v4:172.16.255.1/24
        oe=off #opportunistic encryption is off
        protostack=netkey #use netkey over klips(old version)
        plutostderrlog=/var/log/pluto.log

conn remoteOffice
        auto=start
        type=tunnel

        #local - centos
        left=4.4.4.4 # WAN адрес CentOS
        leftsubnet=172.16.255.1/24 # Виртуальная сетка, которую создали 
        leftsourceip=172.16.255.1 # this is needed so Openswan knows what IP to source from when packets originate on this side of the tunnel.

        #remote - cisco
        right=5.5.5.5    # WAN адрес циски
        rightsubnet=192.168.1.0/24 # локальная подсетка за циской. В ней телефоны.

        keyexchange=ike
        ike=3des-md5-modp1024,aes256-sha1-modp1024
        ikelifetime=86400s
        authby=secret #use presharedkey
        rekey=yes  #should we rekey when key lifetime is about to expire

        #Настройик для Фазы 2, я закоментировал, с ними не работало, видать на циске они были другие
        #phase 2 encryption-pfsgroup
        #phase2=esp #esp for encryption | ah for authentication only
        #phase2alg=3des-md5;modp1024
        #pfs=no
        #forceencaps=yes

Далее настраиваем presharedkey. Создаем файл  /etc/ipsec.d/remoteOffice.secrets c таким содержанием.

5.5.5.5 4.4.4.4: PSK "тут Ваш прешаред ключ"

В этом файле, обязательно должна быть пустая строчка, иначе Ipsec будет ругаться.

Добавляем сервис ipsec в автозагрузку и стартуем его.

chkconfig ispec --level 235 on
service ipsec start

Проверяем статус ipsec

ipsec auto --status

Если вы увидели в логе — ISAKMP SA established, значит тунель поднялся

000 #2367: "remoteOffice":500 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 27333s; newest IPSEC; eroute owner; isakmp#2366; idle; import:admin initiate
000 #2367: "remoteOffice" esp.df0b43fd@XXX.XXX.XXX.XXX esp.d0f7bb9f@XXX.XXX.XXX.XXX tun.0@YYY.YYY.YYY.YYY tun.0@XXX.XXX.XXX.XXXref=0 refhim=4294901761
000 #2366: "remoteOffice":500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 85079s; newest ISAKMP; lastdpd=-1s(seq in:0 out:0); idle; import:admin initiate

Используйте команду — «ipsec auto —help», она поможет удалить/создать/вывести информацию.