четверг, 6 октября 2011 г.

SSLVPN-клиент на телефонах Cisco

Задача: пробросить SCCP-телефон Cisco поверх общественной сети на удаленный ротуер с CUCME через зашифрованный SSL-туннель.
На данный момент заявлена поддержка SSLVPN клиента у телефонов: 7942/7962/7945/7965/7975/8961/9951/9971 с версией прошивки не ниже 9.0(2)SR1S.
Версия CUCME: не ниже 8.6 (сверямся с документом).

Стенд выглядит так:

Настройка для каждого телефона происходит в 2 этапа:
1. внутри сети с роутером CUCME - во время этого этапа телефон регистрируется как обычный внутренний телефон, скидывая себе все необходимые настройки для удаленного соединения.
2. удаленный доступ - поднятие туннеля SSL с телефона во внутреннюю сеть и регистрация на CUCME.

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

На момент начала настройки имеем на роутере CUCME-SSL имеем следующие настройки:
простейший NAT для внутренних пользователей
ip access-list standard LOCAL_LAN
permit 192.168.0.0 0.0.0.255
!
interface FastEthernet0/0
 ip address 192.168.0.1 255.255.255.0
 ip nat inside
!
interface FastEthernet0/1
 ip address 172.20.0.2 255.255.255.0
 ip nat outside
!
ip nat inside source list LOCAL_LAN interface FastEthernet0/1 overload
DHCP-сервер и TFTP-сервер для внутренних телефонов:
ip dhcp excluded-address 192.168.0.1
!
ip dhcp pool LOCAL_PHONE_POOL
 network 192.168.0.0 255.255.255.0
 default-router 192.168.0.1
 option 150 ip 192.168.0.1
!
tftp-server usbflash0:TMP/apps42.9-1-1TH1-16.sbn
tftp-server usbflash0:TMP/cnu42.9-1-1TH1-16.sbn
tftp-server usbflash0:TMP/cvm42sccp.9-1-1TH1-16.sbn
tftp-server usbflash0:TMP/dsp42.9-1-1TH1-16.sbn
tftp-server usbflash0:TMP/jar42sccp.9-1-1TH1-16.sbn
tftp-server usbflash0:TMP/SCCP42.9-1-1SR1S.loads
tftp-server usbflash0:TMP/term42.default.loads
tftp-server usbflash0:TMP/term62.default.loads
call manager, висящий на внутреннем интерфейсе:
telephony-service
 max-ephones 42
 max-dn 144
 ip source-address 192.168.0.1 port 2000
 load 7962 SCCP42.9-1-1SR1S
 max-conferences 8 gain -6
 transfer-system full-consult
AAA и пара пользователей:
aaa authentication login default local
aaa authorization exec default local
!
username admin privilege 15 password 0 admin
username test privilege 0 password 0 test
Для регистрации телефона потребуется инфраструктура Certificate Authority:
CUCME-SSL(config)#ip http server
CUCME-SSL(config)#crypto pki server LOCAL_CA
CUCME-SSL(cs-server)#lifetime certificate 7305
CUCME-SSL(cs-server)#lifetime ca-certificate 7305
CUCME-SSL(cs-server)#database level complete
CUCME-SSL(cs-server)#grant auto
CUCME-SSL(cs-server)#no shut
%Some server settings cannot be changed after CA certificate generation.
% Please enter a passphrase to protect the private key
% or type Return to exit
Password:**********
Re-enter password:**********
% Generating 1024 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 2 seconds)
% Exporting Certificate Server signing certificate and keys...
Создадим trustpoint и получим сертификат:
CUCME-SSL(config)#crypto pki trustpoint CERT_TP
CUCME-SSL(ca-trustpoint)#enrollment url http://192.168.0.1:80
CUCME-SSL(ca-trustpoint)#serial-number
CUCME-SSL(ca-trustpoint)#revocation-check none
CUCME-SSL(ca-trustpoint)#exi
CUCME-SSL(config)#crypto pki authenticate CERT_TP
Certificate has the following attributes:
       Fingerprint MD5: A3DDB82F A70A0924 65524CC1 D056BB70
      Fingerprint SHA1: 6486C30A 5773ED63 87456F44 85469A3C 80D7275A

% Do you accept this certificate? [yes/no]: y
Trustpoint CA certificate accepted.

CUCME-SSL(config)#crypto pki enroll CERT_TP
%
% Start certificate enrollment ..
% Create a challenge password. You will need to verbally provide this
   password to the CA Administrator in order to revoke your certificate.
   For security reasons your password will not be saved in the configuration.
   Please make a note of it.

Password:
Re-enter password:

% The subject name in the certificate will include: CUCME-SSL
% The serial number in the certificate will be: ABCABCABC
% Include an IP address in the subject name? [no]: n
Request certificate from CA? [yes/no]: y
% Certificate request sent to Certificate Authority
% The 'show crypto pki certificate verbose CERT_TP' commandwill show the fingerprint.

%PKI-6-CERTRET: Certificate received from Certificate Authority
Эту trustpoint будем использовать для аутентификации телефонов.

Создаем группу и профайл для телефонов:
CUCME-SSL(config)#voice service voip
CUCME-SSL(conf-voi-serv)#vpn-group 1
Any change made to a VPN group requires "create cnf-file" command issued under 
"telephony-servionfiguration mode AND Resetting all phones using this vpn-group.
CUCME-SSL(conf-vpn-group)#vpn-gateway 1 https://172.20.0.2/phone
CUCME-SSL(conf-vpn-group)#vpn-trustpoint 1 trustpoint CERT_TP leaf
CUCME-SSL(conf-vpn-group)#exi
CUCME-SSL(conf-voi-serv)#vpn-profile 1
Any change made to a VPN profile requires "create cnf-file" command issued under 
"telephony-ser configuration mode AND Resetting all phones using this vpn-profile.
CUCME-SSL(conf-vpn-profile)#host-id-check disable
Добавляем опцию (если ее еще нет) в настройках callmanager:
telephony-service
 cnf-file perphone
Без этой опции в настройках ephone не появится выбора vpn-group и vpn-profile.
Добавляем телефон:
ephone-dn  1
 number 1002
 label 7962
 name 7962
ephone  1
 device-security-mode none
 mac-address XXXX.XXXX.XXXX
 type 7962
 vpn-group 1
 vpn-profile 1
 button  1:1
Создаем для него настройки:
CUCME-SSL(config)#telephony-service
CUCME-SSL(config-telephony)#create cnf-files
Creating CNF files
Включаем телефон в локальную сеть и дожидаемся регистрации:
%IPPHONE-6-REGISTER: ephone-1:SEPXXXXXXXXXXXX IP:192.168.0.2 Socket:1 Devie:Phone 
has registered.
Теперь в меню телефона стала активной опция VPN, в списке VPN-концентраторов появился https://172.20.0.2/phone.

Теперь надо добавить функционал VPN-концентратора на роутер CUCME-SSL:
ip local pool SSL_PHONE_POOL 192.168.0.50 192.168.0.100
!
webvpn gateway SSL_GW
 ip address 172.20.0.2 port 443
 ssl trustpoint CERT_TP
 inservice
 !
webvpn context SSL_PHONE
 ssl encryption 3des-sha1 aes-sha1
 ssl authenticate verify all
 !
 !
 policy group SSL_PHONE_POLICY
   functions svc-enabled
   hide-url-bar
   svc address-pool "SSL_PHONE_POOL"
 default-group-policy SSL_PHONE_POLICY
 gateway SSL_GW domain phone
 authentication certificate
 ca trustpoint CERT_TP
 inservice
При необходимости можно добавить контекст для обычных пользователей.

Теперь все готово для удаленной регистрации телефона.

Маршрутизатор ISP для чистоты эксперимента блокирует внутренние запросы на все, кроме http/https + блокирует запросы во внутреннюю сеть 192.168.0.0/24. Также на нем настроен NAT для внутренних пользователей:
ip access-list standard LAN
 permit 10.10.10.0 0.0.0.255
!
ip access-list extended FW
 deny   ip any 192.168.0.0 0.0.0.255
 permit tcp any any eq www
 permit tcp any any eq 443
!
ip nat inside source list LAN interface FastEthernet0/1 overload
!
interface FastEthernet0/0
 ip address 10.10.10.1 255.255.255.0
 ip access-group FW in
 ip nat inside
!
interface FastEthernet0/1
 ip address 172.20.0.1 255.255.255.0
 ip nat outside
Подключаем телефон в сеть ISP. В меню телефона отключаем DHCP, прописываем настройки сети ISP.
Включаем SSL VPN: Settings -> Security Configurations -> VPN Configuration -> VPN Enabled.
Телефон спросит имя пользователя и пароль и подключится к внутренней сети. После этого пройдет регистрацию как обычный внутренний телефон.
CUCME-SSL#sh webvpn session context SSL_PHONE
WebVPN context name: SSL_PHONE
Client_Login_Name  Client_IP_Address  No_of_Connections  Created  Last_Used
test               172.20.0.1                 1         22:09:30  00:00:06
CUCME-SSL#sh ephone registered detail


ephone-1[0] Mac:XXXX.XXXX.XXXX TCP socket:[1] activeLine:0 whisperLine:0 REGISTERED in SCCP ver 20/17 max_streams=5
mediaActive:0 whisper_mediaActive:0 startMedia:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0 caps:9
IP:192.168.0.50 * 51654 7962  keepalive 2658 max_line 6 available_line 6
using default button layout
button-layout 1: line button 1: cw:1 ccw:(0)
  dn 1  number 1002 CH1   IDLE
Preferred Codec: g711ulaw
Lpcor Type: none
Маршрутизатор ISP видит обычный HTTPS трафик:
ISP#sh ip access-lists FW
Extended IP access list FW
    5 deny ip any 192.168.0.0 0.0.0.255
    10 permit tcp any any eq www
    20 permit tcp any any eq 443 (14632 matches)

Комментариев нет:

Отправить комментарий