суббота, 2 августа 2014 г.

Настройка SSL VPN (WebVPN) на cisco ASA. Часть 2

Схема, которую мы будем реализовывать, такая же, как и в прошлом посте. Выглядит она вот так:


Имеется корпоративная сеть, состоящая из двух подсетей: Management Net (192.168.1.0/24), в которой находится Console PC (192.168.1.12), и DMZ Net (10.10.10.0/24), в которой находится Web_Server (10.10.10.201). Имеется сеть «Internet» (2.2.2.0/30) и удаленная сеть Net (3.3.3.0/24), в которой находится Remote_User (3.3.3.10). Необходимо организовать SSL VPN между Remote_User и cisco ASA и предоставить доступ к Web_Server-у посредством метода SSL VPN Client (SVC-Tunnel Mode).
Итак, задачи поставлены, приступаем к настройкам. Заходим на Router и настраиваем:
  • R1>en
    R1#conf t
    R1(config)#hostname Router
    Router(config)#int fa 0/0
    Router(config-if)#ip address 2.2.2.1 255.255.255.252
    Router(config-if)#ip nat outside
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 0/1
    Router(config-if)# ip address 3.3.3.1 255.255.255.0
    Router(config-if)# ip nat inside
    Router(config-if)# no shutdown
    Router(config-if)# exit
    Router(config)# ip access-list extended FOR_NAT
    Router(config-ext-nacl)# permit ip 3.3.3.0 0.0.0.255 any
    Router(config-ext-nacl)# exit
    Router(config)# ip nat inside source list FOR_NAT interface fa 0/0
    Router(config)# exit
    Router# wr
    Router#
Роутер настроили, теперь пройдем на cisco ASA и сделаем необходимые начальные сетевые настройки (как запустить ASA в GNS3 я описывал вот тут).
  • ASA> en
    Password:
    ASA#conf t
    ASA(config)# command-alias exec wr copy run disk0:/.private/startup-config
    ASA(config)# hostname ASA
    ASA(config)# enable password cisco
    ASA(config)# username admin password ciscocisco privilege 15
    ASA(config)# int ethernet 0/0
    ASA(config-if)# ip address 2.2.2.2 255.255.255.252
    ASA(config-if)# nameif outside
    ASA(config-if)# no shutdown
    ASA(config-if)# exit
    ASA(config)# int ethernet 0/1
    ASA(config-if)# ip address 192.168.1.1 255.255.255.0
    ASA(config-if)# nameif inside
    ASA(config-if)# no shutdown
    ASA(config-if)# exit
    ASA(config)# int ethernet 0/2
    ASA(config-if)# nameif dmz
    ASA(config-if)# security-level 50
    ASA(config-if)# ip address 10.10.10.1 255.255.255.0
    ASA(config-if)# no shutdown
    ASA(config-if)# exit
    ASA(config)# http server enable
    ASA(config)# http 192.168.1.0 255.255.255.0 inside
    ASA(config)# route outside 0.0.0.0 0.0.0.0 2.2.2.1
    ASA(config)# access-list ADMIN extended permit ip 192.168.1.0 255.255.255.0 any
    ASA(config)# access-group ADMIN in interface inside
    ASA(config)# access-list FOR_NAT extended permit ip 192.168.1.0 255.255.255.0 any
    ASA(config)# access-list NO_NAT extended permit ip 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0
    ASA(config)# nat (inside) 0 access-list NO_NAT
    ASA(config)# nat (inside) 1 access-list FOR_NAT
    ASA(config)# global (outside) 1 interface
    INFO: outside interface address added to PAT pool
    ASA(config)#wr
    ASA(config)#exit
    ASA#
По традиции, остановимся и проверим сетевую доступность.
Заходим на Console:


    где:
  • 1 – inside интерфейс cisco ASA;
  • 2 – IP-адрес внешнего интерфейса Router-а;
  • 3 – IP-адрес Web_Server-a.
Заходим на Remote_User:


    где:
  • 1 – IP-адрес внутреннего интерфейса Router-а;
  • 2 – outside интерфейс cisco ASA.
Теперь загружаем и запускаем ASDM (как это делать описано вот тут). Как всегда должно открыться основное окно: 


Здесь выбираем «Wizard»---«SSL VPN Wizard».


В открывшемся окне выбираем пункт «Cisco SSL VPN Client (AnyConnect VPN Client)» и нажимаем «Next»:


Здесь прописываем имя нашего profile (автоматически будет создан), как и в прошлом посте. Проверяем, чтобы для соединений стоял интерфейс outside и запоминаем IP – адрес для подключений. Нажимаем «Next»:


Ставим аутентификацию с использованием локальной базы и создаем нового пользователя (задаем имя и пароль, нажимаем «Add»). Затем нажимаем «Next»:


Здесь создадим отдельную групповую политику для SSL клиентов. Указываем название группы и нажимаем «Next»:


Здесь, для начала, создадим набор IP-адресов (pool), из которого будут выдаваться адреса для SSL VPN клиентов. Задаем название pool-а, начальный и конечный адреса и маску подсети. Нажимаем «OK».


На этой же странице нужно загрузить клиентскую программу, которую должны будут подгружать и устанавливать себе пользователи. Я использовал anyconnect-win-2.5.2019-k9.pkg. Его можно найти в интернете (если не найдете, обращайтесь, поделюсь :)). Для того, чтобы его загрузить во flash cisco ASA необходимо нажать в соответствующем пункте «Browse», в следующем появившемся окошке «Upload», затем в следующем окошке «Browse local files» и указать нужный файл из списка. Далее нажимаем по порядку «Select»---«Upload File»---«OK» (после нажатий будут всплывать информационные окошки об успешном выполнении). В итоге, у вас должно получиться вот такое окно:


Нажимаем «Next»:


Скорее всего, появится вот такое маленькое окно. В нем присутствует рекомендация, чтобы мы проверили исключение в политике NAT, если она у нас есть. То есть, чтобы трафик, идущий к адресам из созданного pool-а (в нашем случае 192.168.2.10/24 – 192.168.2.20/24) не подпадал под политики NAT. Проверим и настроим это позже, а сейчас нажимаем «OK»:


Мы добрались до последнего окна «Wizard-a». Здесь показаны все наши настройки, которые будут сконфигурированы. Нажимаем «Finish».
Все, настройка через ASDM пока закончена. Теперь перейдем в CLI и подправим политику для NAT. Заходим на cisco ASA и проделываем следующее (это же можно проделать, конечно, и в ASDM, но мне как то удобнее через CLI):
  • ASA> en
    Password: *****
    ASA# conf t
    ASA(config)# sh access-list NO_NAT
    access-list NO_NAT; 1 elements
    access-list NO_NAT line 1 extended permit ip 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0 (hitcnt=0) 0x783b0b02 – видно, что нужного исключения нет;
    ASA(config)# access-list NO_NAT extended permit ip any 192.168.2.0 255.255.255.0 –добавляем новое правило в список;
    ASA(config)# sh access-list NO_NAT – проверяем добавилось ли;
    access-list NO_NAT; 2 elements
    access-list NO_NAT line 1 extended permit ip 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0 (hitcnt=0) 0x783b0b02
    access-list NO_NAT line 2 extended permit ip any 192.168.2.0 255.255.255.0 (hitcnt=0) 0xb151e661
    ASA(config)# wr
    ASA(config)#
Все, исключение добавлено. Теперь можно переходить к испытаниям :). Переходим на Remote_User, запускаем браузер и пробуем подключиться на внешний интерфейс cisco ASA (http://2.2.2.2):


Подтверждаем все исключения безопасности, появится следующее окно:


Здесь вводим логин и пароль созданного ранее пользователя. Нажимаем «Logon»:


Начнется запуск java аплета. Потребуется согласие на установку неизвестного сертификата (https), нажимаем «Yes»:


Тут снова попросят нас подтвердить запуск незнакомого приложения. Нажимаем «Run»:


Снова подтверждаем, что мы в курсе происходящего :). Нажимаем «Да»:


Здесь видно, что процесс скачки cisco AnyConnect Client-а начался. После скачивания пройдет процесс установки клиента на локальный PC. Затем автоматически последует попытка подключения к cisco ASA:


Ждем немного и получаем:


На этой картинке мы видим, что cisco AnyConnect Client запущен, но появилась какая то ошибка. Эта ошибка означает, что связь с ASA есть, но при установлении SSL VPN клиенту (Remote_User) не был присвоен IP – адрес из нашего pool-а. Для устранения этой проблемы перейдем в ASDM и проделаем действия, показанные ниже:


Идем во вкладку «Configuration», затем находим параметр «Group Policies» (1). Находим в списке нашу созданную групповую политику SSL_VPN (2). Выбрав её, нажимаем «Edit». В появившемся окне выбираем «General» (3). Находим параметр «Address pools» и снимаем отметку с «Inherit» (4), далее нажимаем «Select…» (5). В появившемся окне находим наш pool (6) и нажимаем кнопку «Assign» (7). Затем нажимаем кнопку «OK» (8). После этих действий, pool должен появиться в списке:


Теперь переходим снова на Remote_User (3.3.3.10), запускаем cisco AnyConnect VPN Client (он уже будет у нас установлен «Пуск»--«Программы» и так далее): 


Вводим IP-адрес cisco ASA (outside), прописываем логин и пароль и нажимаем «Connect». После небольшого ожидания установится соединение. 
Все, теперь проверим, что у нас получилось. Напомню, что данный метод соединения обеспечивает полный доступ (по умолчанию) к внутренним ресурсам корпоративной сети, который потом, при необходимости, можно ограничить. Итак, посмотрим, что мы имеем:


Видим, что пакеты летают через SSL туннель, появился сетевой адаптер cisco AnyConnect VPN Client-а, IP-адрес для него получен из нужного pool-а и ping на внутренний сервер присутствует. Проверим, открывается ли внутренняя web-страница на Web_Server-е:


Все работает, даже ftp доступен :). Ну и для конечной проверки, посмотрим наличие VPN соединения на самой cisco ASA:


Ура, все работает! Приведу лишь листинг show run для ориентировки:

: Saved
ASA Version 8.0(2)
command-alias exec wr copy run disk0:/.private/startup-config
hostname ASA
enable password 2KFQnbNIdI.2KYOU encrypted

names
interface Ethernet0/0
nameif outside
security-level 0
ip address 2.2.2.2 255.255.255.252
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
interface Ethernet0/2
nameif dmz
security-level 50
ip address 10.10.10.1 255.255.255.0

interface Ethernet0/3
shutdown
no nameif
no security-level
no ip address
interface Ethernet0/4
shutdown
no nameif
no security-level
no ip address
interface Ethernet0/5
shutdown
no nameif
no security-level
no ip address
passwd 2KFQnbNIdI.2KYOU encrypted
ftp mode passive
dns domain-lookup outside
dns domain-lookup inside
dns domain-lookup dmz
access-list ADMIN extended permit ip 192.168.1.0 255.255.255.0 any
access-list FOR_NAT extended permit ip 192.168.1.0 255.255.255.0 any
access-list NO_NAT extended permit ip 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0
access-list NO_NAT extended permit ip any 192.168.2.0 255.255.255.0

pager lines 24
logging enable
logging asdm informational
mtu outside 1500
mtu inside 1500
mtu dmz 1500
ip local pool SSL_UVPN_User_POOL 192.168.2.10-192.168.2.20 mask 255.255.255.0
no failover
icmp unreachable rate-limit 1 burst-size 1
asdm image disk0:/asdm-625.bin
no asdm history enable
arp timeout 14400
global (outside) 1 interface
nat (inside) 0 access-list NO_NAT
nat (inside) 1 access-list FOR_NAT
access-group ADMIN in interface inside
route outside 0.0.0.0 0.0.0.0 2.2.2.1 1

timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout uauth 0:05:00 absolute
dynamic-access-policy-record DfltAccessPolicy
http server enable
http 192.168.1.0 255.255.255.0 inside

no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
no crypto isakmp nat-traversal
telnet timeout 5
ssh timeout 5
console timeout 0
threat-detection basic-threat
threat-detection statistics access-list
class-map inspection_default
match default-inspection-traffic
policy-map type inspect dns preset_dns_map
parameters
message-length maximum 512
policy-map global_policy
class inspection_default
inspect dns preset_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
inspect esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
inspect xdmcp
inspect sip
inspect netbios
inspect tftp
inspect icmp
service-policy global_policy global
webvpn
enable outside
svc image disk0:/anyconnect-win-2.5.2019-k9.pkg 1
svc enable
group-policy SSL_VPN internal
group-policy SSL_VPN attributes
vpn-tunnel-protocol l2tp-ipsec svc
address-pools value SSL_UVPN_User_POOL
username admin password M5soT6HHRslbuoh3 encrypted privilege 15
username UserVPN password XCZN9e/Ta3N/xJC4 encrypted privilege 0
username UserVPN attributes
vpn-group-policy SSL_VPN
tunnel-group SSL_VPN_Group type remote-access
tunnel-group SSL_VPN_Group general-attributes
address-pool SSL_UVPN_User_POOL
default-group-policy SSL_VPN

prompt hostname context
Cryptochecksum:e6cb95fd5d20787ffbb578b955af912f
: end 


Ну что же, на этом я хочу закончить и этот пост. В предыдущем и этом постах я постарался рассказать вам, как настроить Web VPN на cisco ASA (SSL VPN) двумя способами. Какой из них использовать, выбирать вам :). Надеюсь, вам понравилось, и вы почерпнули для себя что то новое или освежили свои знания.

Источник: go-to-easyit.com/2011/11/ssl-vpn-webvpn-cisco-asa-2.html

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

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