С момента написания этой статьи прошло довольно много времени, произошло миллион изменений всего и вся. Поэтому, когда мне самому понадобилось повторить то, о чем в ней написано, я с удивлением обнаружил, что ничего не работает. Довольно забавная ситуация, и довольно обидная. А все потому, что с момента написания статьи изменились версии ОС, ушла поддержка PPTP, все стало безопасно, но ничего не работает.
Пришло время обновить инструкцию по настройке более новых протоколов и устройств для создания возможности удаленного доступа к сети организации. В этом случае пробуем создать на базе маршрутизатора Cisco ISR4000 series L2TP/IPsec сервер, к которому без каких-либо проблем можно будет подключиться с ОС Windows 10.
За основу взята инструкция из предыдущей статьи. Она все так же
актуальна, если вы не стремитесь обновить все подряд до максимума, и в
вашей инфраструктуре все так же присутствуют старые Cisco и Windows XP,
"семерки" и им подобные.
Ну а теперь перейдем к обновлениям.
Если в прошлом случае нам достаточно было иметь образ IOS k9, то в случае с IOS 15, 16 и выше необходимо, чтобы нужные лицензии были также активированы. В частности, необходимо проследить, чтобы были активны технологические пакеты appxk9 и securityk9. Проверить это можно с помощью команды show version. Активировать технологические пакеты можно командами:
GW(config)#license boot level appxk9
GW(config)#license boot level securityk9
GW(config)#license boot level securityk9
Активация лицензий требует перезагрузки устройства, поэтому обязательно выделите сервисное окно для этого. 4000е в целом перезагружаются довольно быстро, в пределах 10 минут. Закладывайте минут 20 на перерыв связи.
После успешной активации лицензий приступаем к настройкам. Для начала создаем пул адресов, которые будут назначаться удаленным пользователям:
GW(config)#ip local pool L2TP_ADDR_POOL 172.16.16.130 172.16.16.139
Адресное пространство будет содержать 10 адресов, т.е. 10 потенциально возможных клиентов смогут подключиться к VPN. Диапазон адресов можно выделить как из существующих сетей, так и никак не связанных с внутренней адресацией. Второй вариант предпочтительнее просто потому, что проще визуально понять, где VPN, а где внутренние ресурсы, проще назначать различные разрешения для удаленных пользователей. В данном случае внутренние сети - из диапазона 192.168, сделано для большей наглядности.
Далее включаем AAA и разрешаем аутентифицироваться с использованием локальной базы данных пользователей. Здесь покажу именно этот вариант, но необходимо помнить, что можно прикрутить и RADIUS, и LDAP, и другие внешние источники.
GW(config)#aaa new-model
GW(config)#aaa authentication login default local
GW(config)#aaa authentication ppp default local
GW(config)#aaa authentication login default local
GW(config)#aaa authentication ppp default local
При включении aaa new-model не забываем включить локальную аутентификацию для доступа к устройству - aaa authentication login default local. Иначе есть риск потерять доступ к интерфейсу управления. Пока эта команда не выполнена, не рекомендую отключаться от текущей сессии SSH. А перед тем, как продолжить, обязательно откройте вторую сессию SSH для проверки доступности устройства. Только после этого продолжаем.
Создаем пользователя для VPN-доступа. Во-первых, указываем ему минимальные привилегии, чтобы это был пользователь, который не может залогиниться для управления. Во-вторых, как и ранее, пароль должен быть нешифрованным, т.е. используется не secret, а password.
username user100 priviledge 0 password cisco
Приступаем к настройке IPSec. Ниже перечень необходимых команд с пояснениями.
===Настройка ключевой цепочки для подключения по PSK===
crypto keyring KEYRING_L2TP
pre-shared-key address 0.0.0.0 0.0.0.0 key SECRETKEY
!
pre-shared-key address 0.0.0.0 0.0.0.0 key SECRETKEY
!
===Создаем политику ISAKMP===
!
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
!
encr 3des
authentication pre-share
group 2
!
===Создаем профиль ISAKMP, в котором ссылаемся на ключевую цепочку с PSK===
!
crypto isakmp profile L2TP
keyring KEYRING_L2TP
match identity address 0.0.0.0
!
keyring KEYRING_L2TP
match identity address 0.0.0.0
!
===Создаем набор шифрования для фазы 2 IPSec===
!
crypto ipsec transform-set L2TP_TSET2 esp-aes esp-sha-hmac
mode transport
!
mode transport
!
===Настраиваем динамическую крипто-карту===
!
crypto dynamic-map L2TP_DMAP 1000
set nat demux
set transform-set L2TP_TSET2
set isakmp-profile L2TP
reverse-route
!
set nat demux
set transform-set L2TP_TSET2
set isakmp-profile L2TP
reverse-route
!
===Привязываем предыдущие настройки к крипто-карте, назначаемой на интерфейс===
!
crypto map CRYPTO_MAP 100 ipsec-isakmp dynamic L2TP_DMAP
!
Немного комментариев к предыдущим настройкам не помешает. В данном случае используется туннель с PSK (pre-shared key), который указывается при создании keyring. В качестве адреса партнера используется диапазон 0/0, что говорит о том, что подключиться можно будет с любого адреса, ведь мы настраиваем данную конструкцию для RA VPN. После создания разных стандартных вещей, вроде transform-set и isakmp profile, все эти параметры привязываются к динамической крипто-карте L2TP_DMAP, в которой разрешена связка L2TP-IPSec (команда set nat demux). Динамическая крипто-карта является частью общей крипто-карты CRYPTO_MAP, которая вешается на интерфейсе (далее).
Переходим к настройкам VPDN и L2TP.
===Включаем функцию VPDN===
!
vpdn enable
!
===Создаем интерфейс loopback с адресом из диапазона RA VPN===
!
interface Loopback1
ip address 172.16.16.1 255.255.255.0
ip address 172.16.16.1 255.255.255.0
!
===Создаем интерфейс VT, к которому привязываем пул адресов VPN===
!
interface Virtual-Template1
description L2TP_VIF
ip unnumbered Loopback1
peer default ip address pool L2TP_ADDR_POOL
keepalive 5
ppp authentication ms-chap-v2
ppp ipcp dns 8.8.8.8
ip virtual-reassembly
description L2TP_VIF
ip unnumbered Loopback1
peer default ip address pool L2TP_ADDR_POOL
keepalive 5
ppp authentication ms-chap-v2
ppp ipcp dns 8.8.8.8
ip virtual-reassembly
!
===Добавляем исключения в NAT как для прямого, так для обратного трафика===
!
ip access-list extended NAT_LIST
==> deny ip 172.16.16.0 0.0.0.255 192.168.1.0 0.0.0.255
==> deny ip 192.168.1.0 0.0.0.255 172.16.16.0 0.0.0.255
==> deny ip 172.16.16.0 0.0.0.255 192.168.1.0 0.0.0.255
==> deny ip 192.168.1.0 0.0.0.255 172.16.16.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 any //не забываем выпустить внутренний трафик в интернет
!
===Создаем правило для NAT во внешний интерфейс===
!
ip nat inside source list NAT_LIST interface GigabitEthernet0/0/0 overload
!
===Вешаем крипто-карту на внешний интерфейс и делаем его внешним для NAT===
!
interface GigabitEthernet0/0/0
ip nat outside
crypto map CRYPTO_MAP
ip nat outside
crypto map CRYPTO_MAP
!
После создания петлевого интерфейса Loopback1 приступаем к созданию виртуального интерфейса, к которому мы привяжем подсеть для удаленного доступа. В качестве IP адреса самого интерфейса будем использовать адрес, взятый с Loopback (ip unnumbered Loopback1). Используем PPP аутентификацию MS-CHAP-V2, а также указываем DNS адрес для туннельного интерфейса, чтобы пользователи могли использовать его для разрешения имен. В данном случае указан внешний DNS, но если есть корпоративный - лучше указать его. Остальные настройки стандартны для обычной работы маршрутизатора: добавляем исключения в правила NAT, назначаем правила NAT, вешаем крипто-карту на исходящий интерфейс.
На этом настройка завершена. Для подключения с Windows-машины необходимо перейти в параметры сети - VPN - Добавить VPN-подключение. В открывшемся окне ввести данные в соответствующие поля, сохранить подключение.
Комментариев нет:
Отправить комментарий