Создаём пул адресов, из которых будет выдаваться IP-адреса клиентам:
ip local pool vpnn_access 10.0.1.2-10.0.1.254 mask 255.255.255.0
Добавляем aaa-сервер, чтобы пользователи могли авторизовываться в Active Directory:
aaa-server kerberos_server protocol kerberos
aaa-server kerberos_server (inside) host 10.0.0.10
kerberos-realm MYDOMAIN
Разрешаем протокол IKEv1 на внешнем интерфейсе асы:
crypto ikev1 enable outside
Добавляем политику шифрования:
crypto ikev1 policy 100
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
Добавляем трансформ-сет. Так как по умолчанию используется туннельный режим, принудительно указываем транспорт:
crypto ipsec ikev1 transform-set ESP-3DES-SHA-TRANS esp-3des esp-sha-hmac
crypto ipsec ikev1 transform-set ESP-3DES-SHA-TRANS mode transport
Создаём динамическую крипто-карту с нашим трансформ-сетом…
crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set ikev1 transform-set ESP-3DES-SHA-TRANS
… и привязываем её к внешнему интерфейсу:
crypto map outside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP
crypto map outside_map interface outside
Создаём access-list с сетями, доступ к которым будет через наш туннель (вообще, split-tunnel — это не безопасно, но тем не менее):
access-list split-tunnel standard permit 10.0.0.0 255.255.0.0
Указываем в политике группы имя домена, DNS-сервер и тип подключения:
group-policy l2tp_ra_gp attributes
dns-server value 10.0.0.10 10.0.0.11
vpn-tunnel-protocol l2tp-ipsec
split-tunnel-policy tunnelspecified
split-tunnel-network-list value split-tunnel
default-domain value mydomain
intercept-dhcp enable
Есть 3 пути задания имени туннельной группы:
- 1) Задать произвольное имя в параметрах подключения клиента (tunnel-group MY_TUNNEL general-attributes);
- 2) Если параметр не указан, то используется IP-адрес клиента (tunnel-group 10.10.10.10 general-attributes);
- 3) Ну и если туннельной группы для IP-адреса нет, то используется группа DefaultRAGroup.
Т.к. клиенты будут использовать динамические IP-адреса и в VPN-клиенте Windows нельзя указать имя группы, то 3-й вариант — как раз наш случай.
tunnel-group DefaultRAGroup general-attributes
address-pool vpnn_access
authentication-server-group kerberos_server
default-group-policy l2tp_ra_gp
tunnel-group DefaultRAGroup ipsec-attributes
ikev1 pre-shared-key $tr0NgPr3$@r3D(!KeY)
isakmp keepalive threshold 60 retry 3
tunnel-group DefaultRAGroup ppp-attributes
authentication pap
no authentication chap
no authentication ms-chap-v1
Переходим к настройке Windows
Идем в «Параметры» -> «Сеть и Интернет» -> «VPN»
Нажимаем на «Добавление VPN-подключения»
Идем в «Панель управления» -> «Сеть и Интернет» -> «Центр управления сетями и общим доступом» -> «Изменение параметров адаптера», открываем свойства нашего подключения.
На вкладке «Безопасность» выставляем тип подключения «Протокол L2TP с IPSec», выбираем обязательное шифрование и разрешаем протоколы проверки подлинности PAP (для аутентификации через AD) и/или MS CHAPv2 (для локальной аутентификации)
В окне «Дополнительные свойства», вызываемом кнопкой «Дополнительные параметры», вводим общий ключ.
На вкладке «Сеть» отключаем IPv6, вызываем свойства IPv4 где нажимаем кнопку «Дополнительно». На вкладке «Параметры IP», необходимо снять галочку «Использовать шлюз в удаленной сети», чтобы клиент пользовался Интернетом минуя наш VPN, соответственно если в организации действует соответствующая политика информационной безопасности, то делать этого не нужно, но придется настроить на клиенте NAT/Proxy. Если же мы все-таки пускаем траффик в обход, то нужно снять галку «Отключить добавление маршрута, основанное на классе», иначе в таблице маршрутизации добавится запись заворачивающая сеть 10.0.0.0/8 в VPN, что может породить проблемы с доступом через сети мобильных операторов, использующих десятую сеть.
На этом все, нажимаем «Подключиться».
Если что-то пошло не так, включаем на асе дебаг и внимательно читаем.
В итоге имеем VPN-подключение без стороннего софта, такого как Cisco VPN Client (устарел, ставит драйвер) или Cisco AnyConnect (ставит драйвер).
P.S: Под найтивный клиент Android тоже работает.
Годная статья. Детально!
ПРивет, ошибку пишет (CISCO ASA 5505)
crypto ikev1 enable outside ERROR INVALID INPUT DETECTED at MARKER
Ругается на ikev2
Привет.
А на что указывает маркер? Это при вводе команды в режиме глобальеой конфигурации?