IPSec VPN – IPSec Virtual Private Network, виртуальная частная сеть (ВЧС). ВЧС позволяет создать безопасный канал связи между двумя и более точками поверх незащищенной сети, например Интернет. Протоколы, которые использует ВЧС для передачи данных, описаны в статье IPSec. В данной статье мы сосредоточим внимание на тонкостях настройки IPSec VPN.
Чтобы создать VPN связь с удаленным устройством необходимо пройти два этапа:
- Безопасный обмен ключами и установка соединения. На данном этапе осуществляются функции протокола IKE.
- Передача зашифрованных данных через установленное соединение благодаря комплексу протоколов ESP.
Для удобства будем использовать следующую схему:
Сеть А (IP: 192.168.1.0 255.255.255.0) | | (Fa0/0 IP: 192.168.1.254) Router1 (Fa0/1 IP: 3.4.4.2) | | (INTERNET) | | (Fa0/1 IP: 1.2.2.3) Router2 (Fa0/0 IP: 192.168.2.254) | | Сеть B (192.168.2.0/24)
Очень важно! Настройки параметров безопасности, протоколы (DES, 3DES, AES, AH, ESP, MD5, SHA, DH и пр.), на всех устройствах ВЧС (Router1 и Router2) должны быть идентичными. Если хоть один из этих параметров будет отличным на одном устройстве, то ВЧС между этими устройствами работать не будет.
Этап 1.
Для установки сессии IKE использует протокол ISAKMP. Протокол ISAKMP (Internet Security Association and Key Management Protocol) обеспечивает установку безопасного соединения в котором учитываются: протокол шифрования данных (DES, 3DES, AES), протокол проверки подлинности переданных данных (MD5, SHA) и алгоритм обмена ключами (DH group 1, DH group 2, DH group 5, DH group 7).
Допустим мы находимся на локальном устройстве Router1. Из режима глобальной конфигурации, командой crypto isakmp policy 10, необходимо зайти в режим настройки ISAKMP, где 10 – порядковый номер. Далее нужно указать тип аутентификации командой authentication pre-share, где pre-share означает, что будет использоваться заранее заданный ключ, который должен быть идентичным как на удаленном устройстве, так и на локальном. Команда encryption aes задает протокол шифрования, в нашем случае AES. В качестве альтернативы можно использовать DES или 3DES, главное, чтобы удаленное устройство поддерживало заданный протокол. Для более безопасного обмена ключами воспользуемся второй группой алгоритма DH командой group 2, длина ключа которого составляет 1024 бит. Укажем алгоритм хэширования командой hash sha. На удаленном устройстве Router2 необходимо ввести абсолютно такие же команды.
Pre-share ключ, о котором шла речь ранее, устанавливается в режиме глобальной конфигурации командой crypto isakmp key 0 cisco address 1.2.2.3 no-xauth, где cisco – сам ключ, 1.2.2.3 – IP адрес удаленного устройства Router2, no-xauth – параметр, указывающий на то, чтобы устройство не использовало функцию расширенной аутентификации с запросом имени пользователя и пароля, т.к. удаленное устройство не имеет имени пользователя в принципе. Подобную команду необходимо повторить на удаленном устройстве с учетом того, что вместо 1.2.2.3, необходимо будет указать IP адрес локального устройства Router1, допустим 3.4.4.2, и выглядеть это будет так: crypto isakmp key 0 cisco address 3.4.4.2 no-xauth.
Этап 2.
На данном этапе устанавливаются параметры шифрования данных IPSec, передаваемых через ВЧС. Здесь фактически используются те же протоколы, что в ISAKMP для установки сессии. Их необходимо задать командой crypto ipsec transform-set VPN_SET esp-aes esp-sha-hmac, где VPN_SET – название комплекса протоколов (можно задать любое имя), esp-aes – протокол шифрования данных (вместо AES, можно выбрать DES или 3DES, кому что нравится), esp-sha-hmac – протокол проверки подлинности данных (в качестве альтернативы, можно выбрать MD5), но главное, чтобы эти параметры совпадали на обоих усторйствах.
Далее предстоит выбрать интересующий нас трафик, а именно сети, между которыми мы хотим установить ВЧС. Согласно схеме, нам необходимо передавать данные из Сети А в Сеть В и из Сети B в Сеть А. Для этого на Router1 необходимо прописать список доступа, указывающий откуда и куда мы хотим доставлять трафик. Воспользуемся командами ip access-list extended VPN_TRAFFIC, permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255. На Router2 также, только с точки зрения той локальной сети, которой он принадлежит — permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255.
Далее необходимо создать своего рода тэг или ярлык для ВЧС, который можно прикрепить на внешний интерфейс. Создать его можно командой crypto map AES_SHA_VPN 10 ipsec-isakmp, где AES_SHA_VPN – название ярлыка, 10 – порядковый номер ВЧС сессии (в нашем случае у нас одно удаленное устройство, следовательно, будет всего один номер), ipsec-isakmp – тип связи. Далее необходимо указать адрес удаленного устройства командой set peer 1.2.2.3 и сослаться на ранее созданные схемы интересующего нас трафика и протоколов шифрования командами match address VPN_TRAFFIC, set transform-set VPN_SET. Команда set peer на Router2, соответственно, будет выглядеть так: set peer 3.4.4.2. Прикрепим ярлык к внешнему интерфейсу, допустим FastEthernet 0/1, командой crypto map AES_SHA_VPN.
Для успешной передачи данных через ВЧС необходимо закрыть NAT трансляции на устройстве Router1 из Сети А в Сеть В и на Router2 из Сети B в Сеть А. Для этого запретим обработку трафика NAT на Router1 командой deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255, которую необходимо прописать первой в списке NAT трансляции. На Router2 нужно прописать ту же команду, только наоборот. Более подробно о настройке NAT можно прочитать в статье NAT.
Для проверки ВЧС связи необходимо запустить пинг с любого внутреннего устройства Сети А в Сеть В или наоборот.
Пример конфигурации Router1:
crypto isakmp policy 10 authentication pre-share encryption aes group 2 hash sha crypto isakmp key 0 cisco address 1.2.2.3 no-xauth crypto ipsec transform-set VPN_SET esp-aes esp-sha-hmac ip access-list extended VPN_TRAFFIC permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 crypto map AES_SHA_VPN 10 ipsec-isakmp set peer 1.2.2.3 match address VPN_TRAFFIC set transform-set VPN_SET interface fastethernet0/1 crypto map AES_SHA_VPN
Не забудьте правильно транслировать адреса с помощью NAT.