Понадобилось как-то поднять ВПН туннель между рутером и Астериск. В-первую очередь, для обхода 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», она поможет удалить/создать/вывести информацию.